newbie prob mit if & variabeln

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • newbie prob mit if & variabeln

    Also erstmal ist das mein erster gehversuch mit PHP.
    Es geht darum ein simples LogIn zu programmieren.
    Dabei sollte das Passwort aus dem Username ermittelt werden, sprich das Passwort ist die base64 codierung des Usernames. (somit kann ich einfach für mich passwörter generieren lassen und verteilen)
    Vielleicht funktioniert das ganze Grundprinzip nicht oder ich hab irgend einen anderen Anfängerfehler gemacht.

    Auf jedenfall gibt dieses Script immer
    Keine Zugangsberechtigung!
    Authentifizierung Fehlgeschlagen!
    aus, egal ob ich das richtige Passwort eingebe (welches ich mir vorher mit der base64_encode Funktion habe generieren lassen.

    PHP-Code:
    <?php

    if ($pass ==  base64_encode($name)) 

        {

    ?>

    <a href="blahblah.htm"><b>WEITER</b></a>

     
    <?php
        
    }

      else

        {

        echo 
    "Keine Zugangsberechtigung!<br> Authentifizierung Fehlgeschlagen!";
        
        }

    ?>
    Die ganzen Daten werden übrigens einfach aus einem Formular übermittelt

    PHP-Code:
    <form name="form1" method="post" action="login.php">
    Username: <input type="text" name="name">
    Password: <input type="password" name="pass">
    <
    input type="submit" name="Abschicken" value="Login"
    So jetzt hoffe ich dass mir jemand dabei helfen kann ^^
    (und seid nicht so hart, bin n00b )

  • #2
    na das is ja mal ein super login...
    Naja egal,
    sind register_globals on ???
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      Mach mal ein
      explode($_POST);
      darüber.

      Oder noch besser:

      PHP-Code:
      if ($_POST['pass'] ==  base64_encode($_POST['name'] )) 
      Bei einem Post formular sind die vars im array $_POST gespeichert.
      Möglich ist alles!

      Kommentar


      • #4
        @ MelloPie

        sind register_globals on ???
        kein plan.. wie mache ich dass/wie finde ich dass heraus?

        @ timepoint5

        Hab ich getestet.. funktioniert zwar immernoch, ändert jedoch nichts am Problem

        aja, damit das Problem nicht am Ende bei dem Teil liegt was meine PWDs generiert, dass wäre dies:

        PHP-Code:
        <form name="form1" method="post" action="">
        <input type="text" name="name">
        <input type="submit" name="Abschicken" value="Generieren">
        </form>
        <?php
        $password 
        base64_encode($name); 

        echo 
        $password ;

        ?>
        aja, eine $tring Variable verträgt Sonderzeicheen wie '=' oder? Sonst könnte ja auch das ein problem sein.. (nur so als Anmerkung weil ich wirklich keine Ahnung habe)

        Kommentar


        • #5
          mal verschiedene debuggversuche gestartet?
          so der art
          PHP-Code:
          <?php
          echo $pass;
          echo 
          $name;
          $neu base64_encode($name);
          echo 
          $neu;
          if (
          $pass ==  $neu
              {}
          und mal angeschaut was dann alles ausgegeben wird??

          Kommentar


          • #6
            Danke erstmal an alle die Versucht haben mir zu helfen!
            jochenj's Tipp hat mich schlussendlich auf die Spur gebracht...

            Und zwar habe ich bemerkt, dass hinter der Zeichen kette die eche $pass ausgibt und zwischen der zeichenkette die echo $name ausgibt ein Leerschlag ist.
            Beim genauen hinsehn ist mir aufgefallen dass dort kein Leerschlag sein dürfte.

            Der Leerschlag kam anscheinend daher dass ich die Passwörter die ich 'generiert' habe mit Strg. C / Strg. V ins Passwortfeld übertragen habe und mir die phöse Windows Zwischenablage einen Inexistenten Leerschlag hinzugefügt hat, der da gar nciht sein sollte, jedoch das Passwort verfälscht hat. (Ich habs nun einige male getestet, auch wenn ich genau nur die Zeichenkette mrkiere, ohne irgend einen Leerschlag dahinter, wird dieser immer dazugenommen oO

            Sorry dass das Prob so scheisse war

            Kommentar

            Lädt...
            X