Useranmeldung im login-skript mit "passwort-check"

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

  • Useranmeldung im login-skript mit "passwort-check"

    Hi@all,

    ich habe auch dieses happy-login und habe es um ein "user-add" skript erweitert.

    Das sieht bei mir so aus:

    PHP-Code:
    <?php
    include 'sessionhelpers.inc.php'

                        echo 
    "<form action=\"neu_add2.php\" method=\"post\">\n";

                    echo 
    "<p>Neuen Benutzer hinzuf&uuml;gen</p>\n";
                    echo 
    "<ol><li>\n";
                    echo 
    "      <label for=\"name\">Name</label>\n";
                    echo 
    "      <input type=\"text\" name=\"name\" id=\"name\" /></li><li>\n";
                    echo 
    "      <label for=\"email\">Email</label>\n";
                    echo 
    "      <input type=\"text\" name=\"email\" id=\"email\" /></li><li>\n";
                    echo 
    "      <label for=\"send\">Zugangsdaten per Mail senden?</label>\n";
                    echo 
    "      <input type=\"checkbox\" name=\"send\" id=\"send\" /></li><li>\n";
                    echo 
    "      <input type=\"submit\" name=\"submit\" value=\"Benutzer hinzuf&uuml;gen\" />\n";
                    echo 
    "      <input type=\"reset\" name=\"submit\" value=\"Zur&uuml;cksetzen\" />\n";
     </
    li></ol></form>\n";
                    echo "
    <p><a href=\"index.php?section=admin&amp;".SID."\">\n</a></p>";
                
    ?>
    also ganz normal

    dann gehts weiter zur neu_add2.php:

    PHP-Code:
    <?php
    include 'sessionhelpers.inc.php';

                    if(isset(
    $_POST['submit'])) {

    // hier wird nur gecheckt ob die Felder richtig ausgefüült wurden

                        
    } else {

      
    $password getpass();
       
    //  $mailbody und $header werden definiert

                                
    mail(trim($_POST['email']), "Zugangsdaten"$mailbody$header);
                                    echo 
    "<p>Userdaten wurden per Mail zugesand<br></p>\n";


    connect();
                          
                          
    $sql "INSERT INTO
                                       frei(UserName, UserMail, UserPass)
                                   VALUES
                                      ('"
    .trim($_POST['name'])."',                                                  
                                      '"
    .addslashes(trim($_POST['email']))."',
                                      '"
    .$password."');";
                            
    $result mysql_query($sql) OR die(mysql_error()); 
                         
                    
                       echo 
    "angelegt in frei";

                                
                      }
                 
    echo 
    "Hallo ".$_POST['name'].", wie gehts? Du hast das Passwort: ".$password;


    echo 
    "<form action=\"neu_add3.php\" method=\"post\">\n";
                    echo 
    "<p>Neuen Benutzer freischalten</p>\n";
                    echo 
    "<ol><li>\n";
                    echo 
    "      <label for=\"frei\">Passwort</label>\n";
                    echo 
    "      <input type=\"text\" name=\"frei\" id=\"frei\" /></li><li>\n";
                echo 
    "      <input type=\"hidden\" name=\"password\" value=\"".$password."\" />";

                 echo 
    "      <input type=\"submit\" name=\"submit\" value=\"Freischalten\" />\n";
                    echo 
    "      <input type=\"reset\" name=\"submit\" value=\"Zur&uuml;cksetzen\" />\n";
                    echo 
    "      </li></ol></form>";
       

          } else {
        echo 
    "war nix";       

    }

    ?>
    hier werden die daten in die tabelle frei gespeichert, damit ich diese später nocheinmal benutzen kann. frei ist aber nicht die tabelle für den community login! Erst wenn man das passwort, welches man per mail bekommen hat hier in das feld eingibt, soll der user "richtig" angelegt werden.

    Nun geht es aber irgendwie nicht mehr weiter!

    Nun sollte er das passwort und das eingegebene passwort zu neu_add3.php schicken, wenn ich aber in neu_add3.php versuche diese aufzurufen geht das nicht!

    PHP-Code:
    echo "Passwort: ".$_POST['password']."<br>";
    echo 
    "Frei: ".$_POST['frei']; 
    Diese Felder bleiben leer! Wieso? Die Daten mithilfe von "post" von neu_add.php zu neu_add2.php zu senden ging ohne probleme! Die daten von neu_add2.php zu neu_add3.php zu senden geht nicht mehr !!!!

    in neu_add3.php wollt ich nun das passwort mit dem eingegebenen passwort vergleichen, und erst wenn diese stimmen soll der user in die richtige tabelle geschrieben werden (sollte ich hinbekommen ... wenn er die Variablen anzeigen würde!)

    Weiß jemand wieso das nicht weitergeht?

    Mfg
    Dominikoo
    Zuletzt geändert von Dominikoo; 01.04.2004, 17:08.

  • #2
    PHP-Code:
    cho "      <input type=\"hidden\" name=\"password\" value=\"".$password."\" />"
    wozu soll das gut sein?

    haste mal mit print_r überprüft???

    Kommentar


    • #3
      danke für deine antwort

      ich lasse das $password mitschicken um später die passwörter zu vergleichen um prüfen zu können ob das eingegebene passwort (welches nur per mail verschickt wird) das selbe ist wie das eingegebende

      was meinst du nun mit print_r ?
      Wo soll ich das benutzen?
      Bei der ausgabe der variablen?

      Kommentar


      • #4
        klasse idee! Und was ist, wenn ich einfach in den Quelltext gucke, wo es ja im original steht???

        *RTFM*

        Kommentar


        • #5
          hallo,

          ok nun sehe ich es ein, das es mit dem hidden passwort nicht sehr geschickt war

          Habe mich nun informiert:
          für print_r brauche ich doch ein array:
          PHP-Code:
          $array = array(1234);
          print_r($array); 
          öhm ... wie soll ich damit jetzt meine mittels POST verschickte variablen prüfen?
          Ich kann diese doch nicht mit print_r aufrufen.
          Das Problem ist ja irgendwie das neu_add2.php nicht immer (also eigentlich gar nicht ... ein oder zwei mal hatte er aber doch was gesendet) die Daten an neu_add3.php versendet.

          Hatte eigentlich gedacht, das da etwas im queltext falsch gelaufen ist oder man kann nicht zweimal nacheinander variable "submit" verwenden oder nicht zweimal "POST" oder irgendwie soetwas.

          Teoretisch sollte das doch gehen

          Kommentar


          • #6
            Hö?? Was du da schreibst verstehe ich kein Stück.

            jedenfalls ist prinzt_r doch nur für dich zum testen um dich auf ne lösung zu bringen. prüfen tust du mit if. btw: _POST ist ein Array!!!

            Kommentar


            • #7
              ok, mein fehler. Stimmt _POST ist auch ein array, funktioniert auch.
              Ist aber im grunde das selbe wie echo $_POST['name'].";
              d.h. mein problem besteht weiterhin, das post nicht immer funktioniert, fragt mich nicht wieso!

              Ich habe da jetzt mal alles rausgenommen und nur die entscheidenen POST teile in eine Datei gepackt:

              PHP-Code:
              <?php

                   
              if(isset($_POST['submit'])) {

                      echo 
              "Hallo: <br>\n";
                      echo 
              $_POST['name']."<br>\n";
                      echo 
              $_POST['email']."<br><br><br>\n";


                                  echo 
              "<form action=\"".$PHP_SELF."\" method=\"post\">\n";

                              echo 
              "<p>freischalten</p>\n";
                              echo 
              "      <label for=\"name\">Name</label>\n";
                              echo 
              "      <input type=\"text\" name=\"name\" id=\"name\" value=\"name\" /></li><li>\n";
                              echo 
              "      <label for=\"pass\">pass</label>\n";
                              echo 
              "      <input type=\"text\" name=\"pass\" id=\"pass\" value=\"pass\" /></li><li>\n";
                              echo 
              "      <input type=\"submit\" name=\"frei\" value=\"Benutzer hinzuf&uuml;gen\" />\n";
                              echo 
              "      <input type=\"reset\" name=\"frei\" value=\"Zur&uuml;cksetzen\" />\n";
                      echo 
              "</form>\n";   

                  } elseif(isset(
              $_POST['frei'])) {

                      echo 
              "User freigeschaltet, Passwort:<br>\n";
                      echo 
              $_POST['pass']."<br>\n";

                  } else {

                                  echo 
              "<form action=\"".$PHP_SELF."\" method=\"post\">\n";

                              echo 
              "<p>Daten senden</p>\n";
                              echo 
              "      <label for=\"name\">Name</label>\n";
                              echo 
              "      <input type=\"text\" name=\"name\" id=\"name\" value=\"name\" /></li><li>\n";
                              echo 
              "      <label for=\"email\">Email</label>\n";
                              echo 
              "      <input type=\"text\" name=\"email\" id=\"email\" value=\"email\" /></li><li>\n";
                              echo 
              "      <input type=\"submit\" name=\"submit\" value=\"Benutzer hinzuf&uuml;gen\" />\n";
                              echo 
              "      <input type=\"reset\" name=\"submit\" value=\"Zur&uuml;cksetzen\" />\n";
                      echo 
              "</form>\n";
                  }
                          
                          
              ?>
              Versucht dieses mal bei euch, spielt damit ein bisschen rum und ihr werdet feststellen das das skript so sehr schnell durcheinander kommt ! Und bei mir funktioniert dann irgendwann gar nichts mehr.

              Wieso ist das so ?

              Kommentar


              • #8
                PHP-Code:
                isset($_POST['submit'])) 
                was machst du, wenn der submit-button nicht gedrückt wurde?

                Kommentar


                • #9
                  wenn nichts geklickt wurde ... kommt halt der else teil mit dem formular !
                  Wenn man das nun anklickt kommt der if(isset($_POST['submit'])) teil mit dem formular und wenn man anklickt kommt der elseif(isset($_POST['frei']))

                  wenn man gar nichts macht ... passiert auch nichts

                  Kommentar


                  • #10
                    Hmm, ne seltsame vorgehensweise hast du.

                    aber sollte doch funktionieren.

                    wann und wo bist du der meinung, dass kein POST übergeben wird? Und was ist schlimm daran?

                    Kommentar


                    • #11
                      Hmm, ne seltsame vorgehensweise hast du.
                      was ist daran seltsam? finds ganz gut.

                      Habe den Fehler gefunden, bzw. mir wurde da etwas geholfen ^_^
                      Muss natürlich so aussehen, da ich davor auch Superglobals benutze:

                      <form action="".$_SERVER['PHP_SELF']."\" method=\"post\">\n

                      nun kann ich endlich weiter basteln

                      Kommentar

                      Lädt...
                      X