Ankündigung

Einklappen
Keine Ankündigung bisher.

PW-Vergessung funktioniert nicht!

Einklappen

Neue Werbung 2019

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

  • PW-Vergessung funktioniert nicht!

    Hallo,
    ich habe folgendes Script :

    pwfg.php:
    PHP-Code:
    <?php
                      
        
    include_once "zugriff.inc.php";
    include 
    "fgcheck.inc.php"
    if (!empty(
    $status2)) {
      echo 
    "<p><strong>$status2</strong></p>";

    $user = isset($_POST['user']) ? htmlspecialchars(stripslashes($_POST['user'])) : "";
    $email = isset($_POST['email']) ? htmlspecialchars(stripslashes($_POST['email'])) : "";

    echo <<<FORMULARFG
    <form action="{$_SERVER['PHP_SELF']}" method="post">
    Benutzernamen eingeben:<br>
    <input type="text" name="user" maxlength="15"
    value="
    {$user}"><br>

    E-Mail-Adresse eingeben:<br>
    <input type="text" name="email" value="
    {$email}"><br>
    <input type="submit" value="Abschicken" name="sm"> 
    </form>
    FORMULARFG;
    ?>
    fgcheck.inc.php
    PHP-Code:
    <?php 
    $user 
    trim($_POST['user']);
      
    $email trim($_POST['email']);
    function 
    userchecker ($user$email)
    {
        
    $sql_usercheck "SELECT email FROM users WHERE name='$user'";

        
    $results mysql_query($sql_usercheck);

        while(
    $row mysql_fetch_assoc($results))
        {
            if(
    $row->email == $email)
            {
              return 
    true;
            }
        }
    }

    function 
    fgmail($user$empfaenger)
    {
        
    $chars "abcdefghijkmnopqrstuvwxyz023456789";
        
        
    srand((double)microtime()*1000000);
        
        
    $i 0;
        
        
    $pass '' ;
        
        while (
    $i <= 7)
        {

            
    $num rand() % 33;

            
    $tmp substr($chars$num1);

            
    $pass $pass $tmp;

            
    $i++;
        }
        
      
    $betreff "Dein neues Passwort für bulistar.de";
      
    $absender "info@bulistar.de";
      
    $url "http://bulistar.de/New/login.php";
      
    // Editieren Ende
      
    $anhang str_rot13("$user.Q3x$empfaenger");
      
    $anhang strrev($anhang);
      
    $url .= "?as=$anhang";
      

      
    $mailbody "Hallo $user,

    dein neues Passwort für bulistar.de lautet:
    $pass
    Um dein neues Passwort zu bestätigen, klicke bitte auf den unten stehenden Link!
    Falls du kein neues Passwort beantragt haben solltest, ignoriere bitte diese Mail.
    $url

    Für AOL-Nutzer:
    <a href='www.bulistar.de/New/register.php?as=
    $anhang'>Hier klicken</a>
    (in die Adressleiste des Browsers kopieren)

    Danke, das Team von bulistar.de"
    ;

      if (
    mail($empfaenger$betreff$mailbody"From: $absender"))
      {
          return 
    "<span style='color:green'>erfolg</span>";
      }
      else
      {
        return 
    "<span style='color:#FF0000'>Aktivierungsmail nicht verschickt!</span>";
      } 
    }



    if (!empty(
    $_POST['user']))
    {
      
      
      
      
      
    $muster1 "/^[a-zA-Z0-9-_.@]{4,15}$/";
      
    $muster2 "/^[a-z&auml;&ouml;&uuml;A-Z]{2,17}$/";  
      
      if (
    preg_match($muster1$user) == 0)
      {
        
    $status2 .= "<span style='color:#FF0000'>Das ist kein g&uuml;ltiger Benutzername!</span><br>";
      }

      
      
      
    $muster2 "/^[a-zA-Z0-9-_.]+@[a-zA-Z0-9-_.]+\.[a-zA-Z]{2,4}$/";
      
      if (
    preg_match($muster2$email) == 0)
      {
        
    $status2 .= "<span style='color:#FF0000'>Die E-Mail-Adresse ist ung&uuml;ltig!</span><br>";
      }
      
      
      
      if (empty(
    $status2))
      {
        
            if(
    userchecker($user$email))
            {
                
    fgmail ($user$email);   
            } else {
          
    $status2 "Keine Übereinstimmung";
        }
        }
        
        
      
    }


    ?>
    In der zugriff.inc.php wird nur die Verbindung zur Datenbank hergestellt.

    Wenn man jetzt aber in dem Formular die Richtigen Daten eingibt, kommt nur "Keine Übereinstimmung", das gleiche kommt auch, wenn man falsche Daten eingibt. Die Mail mit dem neuen Passwort wird dabei nie gesendet.

    Ich hoffe ihr könnt mir helfen.

    Greetz


  • #2
    Wie sieht dein Error Reporting aus? Eigentlich sollte dir das Skript hier um die Ohren fliegen:

    PHP-Code:
    if($row->email == $email
    mysql_fetch_assoc holt die Daten schließlich nicht als Objekt sondern als assoziatives Array. Es kann natürlich sein, dass diese Stelle gar nicht erreicht wird, weil du irgendwo anders noch einen Fehler hast, wie wäre es mit Debug-Ausgaben?
    @fschmengler - @fschmengler - @schmengler
    PHP Blog - Magento Entwicklung - CSS Ribbon Generator

    Kommentar


    • #3
      Hast recht..

      ich hab jetz $row['email'] genommen, jetzt geht es

      Kommentar


      • #4
        Hallo,

        ich verzweifle gerade echt.
        Die Datei hat anfangs noch sinen Dienst erfüllt, aber jetzt nicht mehr. Obwohl ich eigentlich gar nichts geändert habe..

        hier die aktuelle fgcheck.inc.php :
        PHP-Code:
        <?php 
        ini_set
        ('display_errors',1);
        error_reporting(E_ALL);

        function 
        userchecker ($user$email)
        {
            
        $sql_usercheck "SELECT email FROM users WHERE name='$user'";

            
        $results mysql_query($sql_usercheck);

            while(
        $row mysql_fetch_assoc($results))
            {
                if(
        $row['email'] == $email)
                {
                  return 
        true;
                }
            }
        }

        function 
        fgmail($user$empfaenger)
        {
            
        $chars "abcdefghijkmnopqrstuvwxyz023456789";
            
            
        srand((double)microtime()*1000000);
            
            
        $i 0;
            
            
        $pass '' ;
            
            while (
        $i <= 7)
            {

                
        $num rand() % 33;

                
        $tmp substr($chars$num1);

                
        $pass $pass $tmp;

                
        $i++;
            }
           
        $user trim($_POST['user']);
          
        $email trim($_POST['email']); 
          
        $betreff "Dein neues Passwort für bulistar.de";
          
        $absender "info@bulistar.de";
          
        $url "http://bulistar.de/New/login.php";
          
        // Editieren Ende
          
        $anhang str_rot13("$user.Q3x$empfaenger");
          
        $anhang strrev($anhang);
          
        $url .= "?as=$anhang";
          

          
        $mailbody "Hallo $user,

        dein neues Passwort für bulistar.de lautet:
        $pass
        Um dein neues Passwort zu bestätigen, klicke bitte auf den unten stehenden Link!
        Falls du kein neues Passwort beantragt haben solltest, ignoriere bitte diese Mail.
        $url

        Für AOL-Nutzer:
        <a href='www.bulistar.de/New/register.php?as=
        $anhang'>Hier klicken</a>
        (in die Adressleiste des Browsers kopieren)

        Danke, das Team von bulistar.de"
        ;

          if (
        mail($empfaenger$betreff$mailbody"From: $absender"))
          {
              return 
        "<span style='color:green'>erfolg</span>";
          }
          else
          {
            return 
        "<span style='color:#FF0000'>Aktivierungsmail nicht verschickt!</span>";
          } 
        }



        if (!empty(
        $_POST['user']))
        {
          
          
          
          
          
        $muster1 "/^[a-zA-Z0-9-_.@]{4,15}$/";
          
        $muster2 "/^[a-z&auml;&ouml;&uuml;A-Z]{2,17}$/";  
          
          if (
        preg_match($muster1$user) == 0)
          {
            
        $status2 .= "<span style='color:#FF0000'>Das ist kein g&uuml;ltiger Benutzername!</span><br>";
          }

          
          
          
        $muster2 "/^[a-zA-Z0-9-_.]+@[a-zA-Z0-9-_.]+\.[a-zA-Z]{2,4}$/";
          
          if (
        preg_match($muster2$email) == 0)
          {
            
        $status2 .= "<span style='color:#FF0000'>Die E-Mail-Adresse ist ung&uuml;ltig!</span><br>";
          }
          
         
          
          if (empty(
        $status2))
          {
            
                if(
        userchecker($user$email))
                {
                    
        fgmail ($user$email);   
                } else {
              
        $status2 "Keine Übereinstimmung";
            }
            }
            
            
          
        }


        ?>

        Kommentar


        • #5
          Und nu? Willst du Mitleid oder Hilfe?

          Meinst du, das:
          Hallo,

          ich verzweifle gerade echt.
          Die Datei hat anfangs noch sinen Dienst erfüllt, aber jetzt nicht mehr. Obwohl ich eigentlich gar nichts geändert habe..
          ist eine sinnvolle Problembeschreibung?
          Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

          Kommentar


          • #6
            Das wirft auf jedem Fall eine E_NOTICE, weil $status2 vorher nicht initialisiert wird, aber mit .= ergänzt wird
            PHP-Code:
             $status2 .= "<..." 
            danach würde ich mal $user und $email ausgeben und schauen was drin steht.

            In der usercheck() reicht eigentlich ein mysql_fetch_row, da es jeden Benutzer nur einmal geben darf.
            "My software never has bugs, it just develops random features."
            "Real programmers don't comment. If it was hard to write, it should be hard to understand!"

            Kommentar

            Lädt...
            X