Login-Script - Passwort ändern..?

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

  • Login-Script - Passwort ändern..?

    Hi,

    bin neu hier - genauso wie ich in PHP auch ein Anfänger bin

    Habe das Login-Script ausprobiert. Läuft auch ganz gut und habe auch schon nen Script zum registrieren (Username freiwählbar, automatisch generiertes Passwort wird an die Mail-Adresse vom User gesandt) programmiert. Doch jetzt krieg ich mit den Skript Probleme...
    Wenn man ja ein automatisch generiertes Passwort kriegt, möchte man das ja auch ändern, oder? Klar möchte man es ändern... und deshalb hab ich versucht ein Script fürs Passwort ändern zu programmieren. Doch das klappt nich... ich geb euch mal den Code:
    PHP-Code:
     <?php
    session_start
    ();
    error_reporting(E_ALL);
    include 
    'sessionhelpers.inc.php';
    $_POST['username'] = $username;
    $_POST['oldpass'] = $oldpass;
    $_POST['password'] = $password;
    $_POST['passwordh'] = $passwordh;
    $userid check_user($username$oldpass);
    if(
    check_user($username$oldpass)==false) {
    echo 
    'Deine Daten waren nicht korrekt';
    } else
    {
    if(
    $password==$passwordh) {
    change_pass($userid$password);
    echo 
    'Dein Passwort wurde geändert, du musst dich neueinloggen!';
    logout();
    }
    else {
    echo 
    'Passwort wiederholung falsch!';
    }
    }
    ?>
    Ich weiß, das mit den $_POST-Variablen ist schwachsinn, aber ich wollts mir nen bisschen einfacher machen...
    Das Formular dazu:
    PHP-Code:
    <?php
    session_start
    ();
    include 
    'sessionhelpers.inc.php';
    echo 
    '<form method="post" action="passchange2.php"><br>';
    echo 
    '<label>Username</label><input name="username" type="text" id="username"><br>';
    echo 
    '<label>Altes Passwort: </label><input name="oldpass" type="password" id="oldpass"><br>';
    echo 
    '<label>Neues Passwort: </label><input name="password" type="password" id="password"><br>';
    echo 
    '<label>Neues Passwort (wiederholen): </label><input name="passwordh" type="password" id="passwordh"><br>';
    echo 
    '<input name="passaendern" type="submit" id="passaendern" value="Passwort ändern">';
    ?>
    Dann noch meine Sessionhelpers.inc.php:
    PHP-Code:
    <?
    function connect()
    {
        $con= mysql_connect('Server','User','PASS') or die(mysql_error());
         mysql_select_db('DB',$con) or die(mysql_error());
    }

    function check_user($name, $pass)
    {
        $sql="SELECT UserId
        FROM users
        WHERE UserName='".$name."' AND UserPass=MD5('".$pass."')
        LIMIT 1";
        $result= mysql_query($sql) or die(mysql_error());
        if ( mysql_num_rows($result)==1)
        {
            $user=mysql_fetch_assoc($result);
            return $user['UserId'];
        }
        else
            return false;
    }

    function change_pass($userid, $password)
    {
        $sql="UPDATE users SET UserPass=MD5('".$password."') WHERE UserId='".$userid;
         mysql_query($sql);
    }

    function login($userid)
    {
        $sql="UPDATE users
        SET UserSession='".session_id()."'
        WHERE UserId=".$userid;
         mysql_query($sql);
    }

    function logged_in()
    {
        $sql="SELECT UserId
        FROM users
        WHERE UserSession='".session_id()."'
        LIMIT 1";
        $result= mysql_query($sql);
          return ( mysql_num_rows($result)==1);
    }

    function logout()
    {
        $sql="UPDATE users
        SET UserSession=NULL
        WHERE UserSession='".session_id()."'";
         mysql_query($sql);
    }

    function check_pass($username, $oldpass)
    {
        $sql="SELECT UserId
        FROM users
        WHERE UserName='".$username."' AND UserPass=MD5('".$oldpass."')
        LIMIT 1";
        $result= mysql_query($sql) or die(mysql_error());
        if ( mysql_num_rows($result)==1)
        {
            return true;
        }
        else
            return false;
    }

    connect();
    ?>
    So... Wenn ich das Passwort vom User falsch eingebe, krieg ich als Meldung das meine Daten falsch waren. Wenn die Wiederholung vom Passwort falsch ist, krieg ich auch ne Fehlermeldung. Aber wenn beides richtig ist, kriege ich die Meldung, dass mein Passwort geändert wurde. Doch das wurde es nicht... ist immernoch alles beim alten :-/

    Ach, und bitte seid nicht sooo sauer auf mich, wenn ihr die Codes seht.... ich bin wirklich noch ein totaler Anfänger

    Danke schonmal für eure Hilfe

    Sky

  • #2
    Vergleiche dein mysql_query in deiner Funktion mla mit meinen...

    Du hast da was vergessen, was ich mit voller Absicht hingeschrieben habe; damit bekommst du nämlich hilfreiche Meldungen ausgespuckt...
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      Hmmm...
      Also ich weiß jetzt nicht genau was du meinst.
      Habe mal, so wie du es auch gemacht hast, die MySQL Befehle untereinander geschrieben, also so:
      PHP-Code:
      function change_pass($userid$password)
      {
          
      $sql="UPDATE users
          SET UserPass=MD5'"
      .$password."'
          WHERE UserId="
      .$userid;
           
      mysql_query($sql);

      Doch da krieg ich keine hilfreichen Meldungen?!

      Kommentar


      • #4
        Du verwendest kein mysql_error!
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          Okay okay, hat sich erledigt.
          Habe mal folgendes probiert:
          PHP-Code:
          function change_pass($userid$password)
          {
              
          $sql="UPDATE users
              SET UserPass=MD5('"
          .$password."')
              WHERE UserId="
          .$userid;
               
          mysql_query($sql);

          Und jetzt geht es einwandfrei *g*

          Danke trotzdem

          Sky

          Kommentar


          • #6
            Wenn du mit mysql_error gearbietet hättest, wärst du da früher draufgekommen
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar

            Lädt...
            X