[PHP] if problem

Dieses Thema im Forum "Webentwicklung" wurde erstellt von sft-FTW, 29. Januar 2011 .

  1. 29. Januar 2011
    if problem

    Also, ich bin mich zur Zeit etwas in PHP etc. am einarbeiten....
    Im Moment bin ich mit einem Login dran, und plötzlich taucht folgendes problem auf,

    diese beiden codes habe ich

    #login.php
    Code:
    <form action="check.php" method="post">
     <p>Geben Sie hier Ihren Benutzernamen ein:</p>
     <input type="text" name="Benutzer">
    
     <p>Geben Sie hier Ihr Kennwort ein:</p>
     <input type="password" name="Kennwort">
     <br><br>
     <input type="submit" value="Absenden">
    </form>
    
    #check.php
    Code:
    <?php
    // Passwortschutz mit PHP
    if ($_POST["Benutzer"] == "User1" && $_POST["Kennwort"] == "kennwort1")
    
     {
     echo hallo; 
    }
    
    else {
     echo '<a href="login.php"?>Sorry, bitte noch mal versuchen!</a?>';
    }
    ?>
    
    das klappt auch wirklich wunderbar ! wie ichs mir gewünscht habe, nur würde ich jetzt gerne mehrere "accounts" haben, und damit quasi mehrere sachen abfragen lassen
    ich hab mir das so vorgestellt

    Code:
    if(benutzer == "user1" && kennwort == "kennwort1" || benutzer == "user2" && kennwort == "kennwort2") { ..........}
    
    was ich versucht habe so zu lösen

    Code:
    <?php
    // Passwortschutz mit PHP
    if ($_POST["Benutzer"] == "User1" && $_POST["Kennwort"] == "kennwort1" || $_POST["Benutzer"] == "User2" && $_POST["Kennwort"] == "kennwort2")
    
    was aber nicht klappt , aber ziemlich ärgerlich ist weil ich keine lust habe zwanzigtausendmilliarendenquadrillionen elseifs zu machen , weshalb ich euch frage (was ein satz)

    also?

    danke im vorraus
     
  2. 30. Januar 2011
    AW: if problem

    PHP:
    <? php

    $accounts 
    = array(
        
    'hans'  =>  '1234' ,
        
    'peter'  =>  '5678'
    );

    if(
    array_key_exists ( $_POST [ 'Benutzer' ],  $accounts
    && 
    $accounts [ $_POST [ 'Benutzer' ]] ===  $_POST [ 'Kennwort' ]) {
        
    // login
    } else {
        
    // fehler
    }
     
  3. 30. Januar 2011
    AW: if problem

    Entweder du machst es wie Murdoc es gepostet hat, was das ganze auch übersichtlicher macht..
    Oder du machst es wie in der Mathematik
    Du setzt Klammern in deiner Bedingung!

    PHP:
    <? php
    // Passwortschutz mit PHP
    if ( ( $_POST [ "Benutzer" ] ==  "User1"  &&  $_POST [ "Kennwort" ] ==  "kennwort1" ) || ( $_POST [ "Benutzer" ] ==  "User2"  &&  $_POST [ "Kennwort" ] ==  "kennwort2" ) )
    Dann klappts auch mit mehreren Usern =)
     
  4. 30. Januar 2011
    AW: if problem

    also schonmal danke für eure antworten nur tritt bei beiden ein fehler auf, es kommt nix raus ....

    also weder wenn ich richtige namen und passwörter eingebe, noch falsche, kommt keine fehlermeldung geschweigedenn eine bestätigung .... ?(

    hab beide hochgeladen... nicht funktioniert....

    schaut von mir aus selber

    Murdocs Version:

    http://ulknudel.ohost.de/login.php

    Erazors Version:

    http://ulknudel.ohost.de/login2.php
     
  5. 30. Januar 2011
    AW: if problem

    1. "www." aus den URL´s entfernen, sonst findet er die login.php nicht ;D
    2. hast du Murdoc´s Kommentar (//fehler, //login) auch mit deinem gewünschten Code ersetzt?

    zeig doch mal am Besten, wie du es umgesetzt hast.
     
  6. 30. Januar 2011
    AW: if problem

    Oder lass dir testweise $_POST ausgeben..
    PHP:
    print_r ( $_POST );
    in die check.php
    Dann siehste welche Werte übermittelt wurden..
    Evtl findest du dann den Fehler (zB falsch benanntes input-feld oder so)

    MfG
     
  7. 30. Januar 2011
    AW: if problem

    ok jetz hab ichs,

    2. frage:


    wie schreib ich das am besten dass er bestimmte seiten öffnen soll wenn es falsch oder richtig ist?

    also er soll halt anstatt von echo login; , "open" .../login.php machen..... und dieses "open" such ich gerade, ich habs versucht zu googlen und da hab ich nur fopen gefunden aber das scheints nich wirklich zu sein
     
  8. 30. Januar 2011
    AW: if problem

    schau dir mal die funktionen include() und require() an. ansonsten könntest du das auch mit einer weiterleitung machen (à la: sie haben sich erfolgreich angemeldet und werden in x sekunden weitergeleitet. falls keine weiterleitung unterstützt wird, klicken sie bitte hier)
     
  9. 30. Januar 2011
    AW: if problem

    Also du kannst das über include machen..
    Was allerdings schöner ist, ist es über eine weiterleitung zu machen.. Wie zB auch hier bei RR...
    Entweder du machst es mit HTML:
    HTML:
    <head>
    <meta http-equiv="refresh" content="5; url=http://www.google.de/">
    </head>
    
    Wobei 5 die Anzahl an Sekunden bis zur Weiterleitung ist und Google logischerweise deine Adresse...
    Relative Angaben gehen natürlich auch..
    Oder serverseitig per PHP:
    PHP:
    header ( 'Location: eingeloggt.php' );
    Da musst du allerdings drauf achten, dass vorher keine Ausgabe stattgefunden hat..
    Sonst kommt nen Fehler, da das über den HTTP-Header geleitet wird!

    MfG
     
  10. 30. Januar 2011
    AW: if problem

    und wie sag ich ihm dann das er den html code ausführen soll ?

    also echo bringt dann ja nichts mehr

    also was muss ich anstelle von echo schreiben?

    also

    <?php

    $accounts = array(
    'hans' => '1234',
    'peter' => '5678'
    );

    if(array_key_exists($_POST['Benutzer'], $accounts)
    && $accounts[$_POST['Benutzer']] === $_POST['Kennwort']) {
    gesucht
    <html><head><meta http-equiv="refresh" content="5;url=http://www.google.de/">
    </head><body> Sie werden in 5 sek weitergeleitet</body></html> ;
    }

    else {
    // fehler
    }
     
  11. 30. Januar 2011
    AW: if problem

    PHP:
    <? php

    $accounts 
    = array(
        
    'hans'  =>  '1234' ,
        
    'peter'  =>  '5678'
    );

    if(
    array_key_exists ( $_POST [ 'Benutzer' ],  $accounts
    && 
    $accounts [ $_POST [ 'Benutzer' ]] ===  $_POST [ 'Kennwort' ]) {
        
        echo 
    '<html><head><meta http-equiv="refresh" content="5;url=http://www.google.de/">
           </head><body> Sie werden in 5 sek weitergeleitet</body></html>'
    ;
    } else {
        
    // fehler
    }

    Du brauchst weiterhin dafür echo..

    Du kannst das ganze dann entweder so mit echo ausgeben

    echo "<a href=\"test\">";
    oder aber so
    echo '<a href="test">';

    Der Unterschied ist, dass du im ersten jetzt einfach mit Variablen arbeiten kannst sprich test durch z.B. $test ersetzen kannst, was mit ' nicht direkt so geht.

    Edit:// °EraZoR° okay die möglichkeit gibt es auch noch. Die dachte ich ist aber selbstverständlich. ^^
     
  12. 30. Januar 2011
    AW: if problem

    Weiß nicht wie das bei PHP-Profis (Murdoc ) angesehen ist, aber was du auch machen kannst ist folgendes:
    PHP:
    <? php

    $accounts 
    = array(
        
    'hans'  =>  '1234' ,
        
    'peter'  =>  '5678'
    );

    if(
    array_key_exists ( $_POST [ 'Benutzer' ],  $accounts
    && 
    $accounts [ $_POST [ 'Benutzer' ]] ===  $_POST [ 'Kennwort' ]) {
    ?>
    <html><head><meta http-equiv="refresh" content="5;url=http://www.google.de/">
           </head><body> Sie werden in 5 sek weitergeleitet</body></html>
    <?php
    } else {
        
    // fehler

    Hat den Vorteil, dass du nicht mit dem auskommtieren von " oder ' rumhantieren musst..
    Bei dem bisschen HTML-Code ist es vllt noch nicht so nützlich, aber wenn du mehr hast (speziell JavaScript-Code, wo nochmal genug ' und " vorkommen), dann erleichtert das schon die Arbeit um einiges!
     
  13. 30. Januar 2011
    AW: if problem

    ich hab jetzt diese variante benutzt

    Code:
    <?php
    
    $accounts = array(
     'User1' => 'kennwort1',
     'User2' => 'kennwort2'
    );
    
    if(array_key_exists($_POST['Benutzer'], $accounts) 
    && $accounts[$_POST['Benutzer']] === $_POST['Kennwort']) {
     
     
     echo "<a href=\"index.php\">";
    } 
    
    else {
     echo fehler;
    } 
    ?>
    dieser php code und index.php befinden sich im selbern verzeichnis, aber es will nicht klappen ?(

    also es kommt nur eine blanke seite

    das selber passiert bei der anderen variante, und bei erazors funktioniert garnichts mehr, also selbst die fehlermeldung bei falschen eingaben wird nicht mehr angezeigt
     
  14. 30. Januar 2011
    AW: if problem

    -.-

    PHP:
    <? php

    $accounts 
    = array(
        
    'User1'  =>  'kennwort1' ,
        
    'User2'  =>  'kennwort2'
    );

    if(!empty(
    $_POST )) {
        
    $user  $_POST [ 'Benutzer' ];
        
    $pass  $_POST [ 'Kennwort' ];
        
        if(isset(
    $accounts [ $user ]) &&  $accounts [ $user ] ==  $pass ) {
            
    // login erfolgreich
            
    print  'login erfolgreich' ;
        } else {
            
    // login fehlerhaft
            
    print  'login fehlerhaft' ;
        }
    } else {
        
    // kein login
        
    print  'bitte einloggen' ;


    ?>
     
  15. 30. Januar 2011
    AW: if problem

    öh du hast dir aber schon mein jetziges problem angeschaut oder? ich seh da irgendwie keine velrinkung zu ner anderen php datei?
     
  16. 30. Januar 2011
    AW: if problem

    das schaffst du auch alleine, ich glaub an dich

    wenn einem ständig gesagt wird was man machen soll (und das ggf. nicht versteht) verliert man doch die lust und den überblick. mit ein wenig eigeninitiative und google sollte das gut von der hand gehen.
     
  17. 30. Januar 2011
    AW: if problem

    Ich geb dir nen Tipp..
    Deine Seite ist leer, weil du auch nix ausgibst....
    SELFHTML: HTML/XHTML / Verweise (Links) / Verweise definieren und gestalten
    Der Link den du erzeugst ist leer...

    Außerdem macht nen einfacher Link noch lange keine Weiterleitung..
     
  18. 31. Januar 2011
    AW: if problem

    yai, murdoc glaubt an mich , es funktioniert jetzt sogar !

    jetzt gibt es nur noch die kleinigkeiten zu klären und dann kommt warscheinlich ( nachdem ich mich zunächst selbst versuchen werde, wieder so ne bomben frage )

    aber zunächst das kleinvieh ^^

    wie kann ich jetzt auf der seite für den true wert sowas schreiben lassen :

    Vielen Dank für deine Anmeldung """"Benutzer""""

    also das er quasi anstatt Benutzer , den für $user eigegebenen namen schreibt, das sollte nicht so schwer sein oder?
     
  19. 31. Januar 2011
    AW: if problem

    Printe dir die $user. Solangsam solltest du bisschen 1+1 zusammen rechnen lernen ^^

    PHP:
    echo  "Vielen Dank für deine Anmeldung,  $user " ;
     
  20. 31. Januar 2011
    AW: if problem

    am besten du lernst zunächst mal die grundlagen.

    über google findest du nen haufen tutorials usw.
     
  21. 31. Januar 2011
    AW: if problem

    Jaja ich bin noch ziemlich am Anfang, aber ich les mir schon im Internet selber was durch bevor ich hier Nachfrage nur jetzt brauch ich das was ich Frage "jetzt" ...

    Und es ist ja nicht so das ich Hackers nicht vorher schon probiert kann,
    So weit kann ich auch noch denken, nur was wenn das nicht klappt?

    watch it:

    PHP:
    <? php

    $accounts 
    = array(
        
    'User1'  =>  'kennwort1' ,
        
    'User2'  =>  'kennwort2'
    );

    if(!empty(
    $_POST )) {
        
    $user  $_POST [ 'Benutzer' ];
        
    $pass  $_POST [ 'Kennwort' ];
        
        if(isset(
    $accounts [ $user ]) &&  $accounts [ $user ] ==  $pass ) {
            
    // login erfolgreich
            
    echo  '<html><head><meta http-equiv="refresh" content="3;url=index28.php">
           </head><body>Danke für ihre Anmeldung, $user !</a></body></html>'
    ;
        } 

        else {
            
    // login fehlerhaft
            
    print  'login fehlerhaft' ;
        }


    else {
        
    // kein login
        
    print  'bitte einloggen' ;


    ?> 
    http://ulknudel.ohost.de/login.php
     
  22. 31. Januar 2011
    AW: if problem

    Denk an die unterschiede zwischen " und ' Ich zitiere:

    PHP:
    echo  '<html><head><meta http-equiv="refresh" content="3;url=index28.php">
           </head><body>Danke für ihre Anmeldung, '
    . $user . ' !</a></body></html>'
     
  23. 1. Februar 2011
    AW: if problem

    Anders gesagt:
    PHP:
    $user = "unselbststaendig.."
    echo  $user // gibt _unselbststaendig.._ aus
    echo  "Benutzer:  $user " // gibt _Benutzer: unselbststaendig.._ aus
    echo  'Benutzer: $user' // gibt _Benutzer: $user_ aus
    echo  'Benutzer: ' . $user // gibt _Benutzer: unselbststaendig.._ aus
     
  24. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.