kostenloser Webspace werbefrei: lima-city


Password Vergessen Funktion

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    privatecitypage

    Kostenloser Webspace von privatecitypage

    privatecitypage hat kostenlosen Webspace.

    Hallo,

    Ich arbeite an einer Passwort vergessen funktion für limabone!

    Ich habe den fast fertig!

    Aber ich bekomme immer Folgenden Fehler!

    Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /var/www/lima-bone/login/pwforget2.php on line 21
    Benutzername nicht vorhanden!
    
    <<< zurück
    Warning: mysql_close() expects parameter 1 to be resource, null given in /var/www/lima-bone/login/pwforget2.php on line 36


    So viel ich entzifern konnte erwartet er was! Aber nur was?

    Hier ist der Code!

    <?php
    require("connect.inc.php");
    include "config.inc.php";
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html>
    <head>
    <title>My-Shortstory </title>
    </head>
    <body link="#485A8B" vlink="#485A8B" alink="#485A8B">
    <?php
      $benutzer=$_POST['username'];
      if($benutzer!="") {
      $query = @mysql_query("SELECT user FROM user_".$digit." WHERE user = '".$_POST['username']."'");
      $result = @mysql_fetch_array($query);
      $anfrage="SELECT * FROM user  WHERE username LIKE'";
      $anfrage="SELECT * FROM user  WHERE username LIKE'";
      $anfrage.=$benutzer;
      $anfrage.="'";
      $ergebnis=mysql_query($anfrage);
    // Zeile 21   $anz=mysql_num_rows($ergebnis);
      if($anz==1) {
        $zeile=mysql_fetch_row($ergebnis);
        $text="Ihre Benutzerdaten lauten:\n\n";
        $text.="Benutzername: ";
        $text.=$benutzer;
        $text.="\nPasswort: ";
        $text.=$zeile[1];
        mail($zeile[2],"Ihre Daten",$text,"From:****@*****.**");
        echo "Ihre Daten wurden Ihnen zugesand!";
      }
      else {
        echo "Benutzername nicht vorhanden!<br><br>";
        echo "<a href=\"../pwforget.php\">&lt;&lt;&lt; zurück</a>";
      }
    //Zeile 36  mysql_close($db);
      }
      else {
        echo "Bitte geben Sie einen Benutzernamen ein!<br><br>";
        echo "<a href=\"pwforget.php\">&lt;&lt;&lt; zurück</a>";
      }
    ?>
    </body>
    </html>
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Vermutlich steht in der Variable $db nix drin, lass dir die doch mal mit echo ausgeben.
    Der Funktion mysql_close() wird nämlich der Wert "NULL" übergeben, erwartet aber einen Wert!
  4. Autor dieses Themas

    privatecitypage

    Kostenloser Webspace von privatecitypage

    privatecitypage hat kostenlosen Webspace.

    Also der gibt wirklich nichts aus!

    Und was muss ich jetzt machen damit er was ausgibt?

    Problem gefunden!

    Aber Jetzt kommt Folgender Fehler!

    Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in /var/www/lima-bone/login/pwforget2.php on line 29
    Ihre Daten wurden Ihnen zugesand!


    Beitrag zuletzt geändert: 13.10.2009 19:16:09 von privatecitypage
  5. Arbeitest du vielleicht lokal mit zum Beispiel XAMPP? In dem Fall hast du nämlich keinen Mailserver und es kommt zu einer Fehlermeldung.
    mysql_close(); kannst du bei PHP5 eigentlich weglassen.

    styVe (qap2-Team)
  6. Autor dieses Themas

    privatecitypage

    Kostenloser Webspace von privatecitypage

    privatecitypage hat kostenlosen Webspace.

    Ja ich arbeite Lokal!

    Aber ich habe mir die Server Softwaren per Packetverwaltung installiert ;-)!

    Aber Trotzdem Danke!

    Dürfte ich den Code bei Lima kurz antesten?

    Wegen den 50 mails!

    Edit:

    Hilfe!

    Es kommt jetzt zwar kein Fehler aber es wird auch keine Mail Gesendet!


    Weißt jemand wieso?

    Hier ist der Verbesserte Code

    <?php
      require("connect.inc.php");
      include "config.inc.php";
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html>
    <head>
    <title>My-Shortstory </title>
    </head>
    <body link="#485A8B" vlink="#485A8B" alink="#485A8B">
    <?php
      error_reporting(E_ALL);
      ini_set('display_errors', 1);
      $username=$_POST['username'];
      if($username!="") {
      $db=mysql_connect($dbHost,$dbUser,$dbPass);
      mysql_select_db($dbName);
      $anfrage="SELECT * FROM user_".$digit." WHERE user LIKE'";
      $anfrage.=$username;
      $anfrage.="'";
      $ergebnis=mysql_query($anfrage);
      $anz=mysql_num_rows($ergebnis);
      if($anz==1) {
        $zeile=mysql_fetch_row($ergebnis);
        $text="Ihre Benutzerdaten lauten:\n\n";
        $text.="Benutzername: ";
        $text.=$username;
        $text.="\nPasswort: ";
        $text.=$zeile[1];
        mail($zeile[2],"Ihre Daten",$text,"From:support@privatecitypage.de");
        echo "Ihre Daten wurden Ihnen zugesand!";
      }
      else {
        echo "Benutzername nicht vorhanden!<br><br>";
        echo "<a href=\"pwforget.php\">&lt;&lt;&lt; zurück</a>";
      }
      mysql_close($db);
      }
      else {
        echo "Bitte geben Sie einen Benutzernamen ein!<br><br>";
        echo "<a href=\"pwforget.php\">&lt;&lt;&lt; zurück</a>";
      }
    ?>
    </body>
    </html>


    Beitrag zuletzt geändert: 13.10.2009 19:44:40 von privatecitypage
  7. Sicher, dass $zeile[2] der richtige Wert ist? Ich weiß zwar nicht, wie deine Tabelle aufgebaut ist, aber nur so: Arrays beginnen beim Index 0, wenn nicht anders angegeben.
  8. Autor dieses Themas

    privatecitypage

    Kostenloser Webspace von privatecitypage

    privatecitypage hat kostenlosen Webspace.

    Also meine Datenbanken sind in Feldern/Tabellen.

    Also so

    user pass mail.


    So steht es in der Datenbank!

    Was muss ich machen das die mail Gesendet wird?
  9. Wenn alle Daten korrekt sind, müsste es die Mail (wenn du es nicht nur lediglich über deinen Heimserver zu verschicken versuchst) so absenden:

    <?php
    require("connect.inc.php");
    include "config.inc.php";
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html>
    <head>
    <title>My-Shortstory </title>
    </head>
    <body link="#485A8B" vlink="#485A8B" alink="#485A8B">
    <?php
    error_reporting(E_ALL);
    ini_set('display_errors', 1);
    $username=$_POST['username'];
    if(!empty($username)) {
      $db=mysql_connect($dbHost,$dbUser,$dbPass);
      mysql_select_db($dbName);
      $anfrage = "SELECT user,pass,mail FROM user_".$digit." WHERE user = '$username'";
      $ergebnis=mysql_query($anfrage);
      $anz=mysql_num_rows($ergebnis);
      if($anz==1) {
        $zeile=mysql_fetch_assoc($ergebnis);
        $text="Ihre Benutzerdaten lauten:\n\n";
        $text.="Benutzername: $username";
        $text.="\nPasswort: $zeile[1]";
        mail($zeile[2],"Ihre Daten",$text,"From: Support <support@privatecitypage.de>");
        echo "Ihre Daten wurden Ihnen zugesand!";
      }
      else {
        echo "Benutzername nicht vorhanden!<br><br>";
        echo "<a href=\"pwforget.php\">&lt;&lt;&lt; zurück</a>";
      }
      mysql_close($db);
    }
      else {
        echo "Bitte geben Sie einen Benutzernamen ein!<br><br>";
        echo "<a href=\"pwforget.php\">&lt;&lt;&lt; zurück</a>";
      }
    ?>
    </body>
    </html>
  10. Autor dieses Themas

    privatecitypage

    Kostenloser Webspace von privatecitypage

    privatecitypage hat kostenlosen Webspace.


    Notice: Undefined offset: 1 in /home/webpages/lima-city/privatecitypage/html/Tests/login/pwforget2.php on line 25

    Notice: Undefined offset: 2 in /home/webpages/lima-city/privatecitypage/html/Tests/login/pwforget2.php on line 26
    Ihre Daten wurden Ihnen zugesand!

    Mehr sagt er nicht!

    Und die Mail hab ich auch nicht bekommen!
  11. lars-eichhorn

    lars-eichhorn hat kostenlosen Webspace.

    Hio,
    ich nehme an der Fehler liegt bei mir aber, wo kommt die variable "$zeile[1]" bzw. "$zeile[2]" her?
    $text.=$zeile[1];
    mail($zeile[2],"Ihre Daten",$text,"From:support@privatecitypage.de");


    Kommen die von der DB-Abfrage oder aus den Datein 'connect.inc.php', 'config.inc.php'. Ich tippe auf erstes. Auf jedenfall vermute ich das der Fehler daher rüht.

    Ich hoffe ich konnte helfen :)

    [EDIT]: hatte die Zeile:
    $zeile=mysql_fetch_assoc($ergebnis);

    übersehen --> nehme alles zurück :)

    Beitrag zuletzt geändert: 13.10.2009 22:47:35 von lars-eichhorn
  12. Hi, lars-eichhorn^^
    Das Array wird von mysql_fetch_assoc(); zurückgegeben. Index 1 und 2 _sollten_ das Passwort und die E-mail-Adresse sein. :-)

    Zur Problemlösung:
    <?php
    require("connect.inc.php");
    include "config.inc.php";
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html>
    <head>
    <title>My-Shortstory </title>
    </head>
    <body link="#485A8B" vlink="#485A8B" alink="#485A8B">
    <?php
    error_reporting(E_ALL);
    ini_set('display_errors', 1);
    $username=$_POST['username'];
    if(!empty($username)) {
      $db=mysql_connect($dbHost,$dbUser,$dbPass);
      mysql_select_db($dbName);
      
      $query = mysql_query("SELECT user,pass,mail FROM user_".$digit." WHERE user = '$username'");
      if(mysql_num_rows($query) == 1) {
        $fetch = mysql_fetch_object($query);
        
        $mail     = $fetch->mail;
        $headline = "Deine Daten";
        $content  = "Benutzername: $username<br>";
        $content .= "Passwort: $fetch->pass";
        $header   = 'MIME-Version: 1.0' . "\r\n";
        $header  .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
        $header  .= 'From: support@privatecitypage.de' . "\r\n" .
                           'Reply-To: support@privatecitypage.de' . "\r\n" .
                           'X-Mailer: PHP/' . phpversion();
        
        mail($mail,$headline,$content,$header);
        echo "Ihre Daten wurden Ihnen zugesand!";
      }
      else {
        echo "Benutzername nicht vorhanden!<br><br>";
        echo "<a href=\"pwforget.php\">&lt;&lt;&lt; zurück</a>";
      }
      mysql_close($db);
    }
    else {
      echo "Bitte geben Sie einen Benutzernamen ein!<br><br>";
      echo "<a href=\"pwforget.php\">&lt;&lt;&lt; zurück</a>";
    }
    ?>
    </body>
    </html>

    Auf die Art sollte/könnte/müsste es klappen. Bin jetzt mal ganz von dieser Array-Geschichte weg.
    Hoffe ich hab' mich nicht verschrieben. :-)

    styVe (qap2-Team)

    Beitrag zuletzt geändert: 13.10.2009 21:07:11 von qap2
  13. Autor dieses Themas

    privatecitypage

    Kostenloser Webspace von privatecitypage

    privatecitypage hat kostenlosen Webspace.

    WOW Danke!



    Edit: Jetzt kommt das Nächste Problem!

    Die Passwörter werden in md5 geparst!

    Wie kann ich also das Passwort Richtig Anzeigen lassen?


    Beitrag zuletzt geändert: 13.10.2009 22:23:06 von privatecitypage
  14. o******e

    Abend,

    Gar nicht.
    Setze ein neues Pass in der DB und erbitte um sofortige Änderung.


    lg
    Oleander

    PS: Natürlich musst das neue Pass per Mail abschicken oder auf der Webseite anzeigen lassen. Am besten währe es mit der Mail weil sonst nicht bestätigt werden kann wer der User ist der die Daten anfragt. → Missbrauch

    €dit2:
    Die Codes sind unsicher bis zum geht nicht mehr. Wo finde ich die Seite denn? :biggrin:

    Beitrag zuletzt geändert: 13.10.2009 22:44:00 von olearose
  15. Autor dieses Themas

    privatecitypage

    Kostenloser Webspace von privatecitypage

    privatecitypage hat kostenlosen Webspace.

    Stimmt hast recht!

    Ich werde das Problem gleich mal Lösen ;-)!

    Ich bin grade dabei den Code so zu ändern das man die E-Mail Adresse Senden muss damit das Passwort ankommt, nur weiß ich nicht wie!

    Ich habe erst mal das gemacht!

    Was muss ich nocht machen?
    <?php
    require("connect.inc.php");
    include "config.inc.php";
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html>
    <head>
    <title>My-Shortstory </title>
    </head>
    <body link="#485A8B" vlink="#485A8B" alink="#485A8B">
    <?php
    error_reporting(E_ALL);
    ini_set('display_errors', 1);
    $username=$_POST['username'];
    if(!empty($username)) {
      $db=mysql_connect($dbHost,$dbUser,$dbPass);
      mysql_select_db($dbName);
      
      $query = mysql_query("SELECT user,pass,mail FROM user_".$digit." WHERE mail = '$username'");
      if(mysql_num_rows($query) == 1) {
        $fetch = mysql_fetch_object($query);
        
        $mail     = $fetch->mail;
        $headline = "Deine Daten";
        $content  = "Benutzername: $fetch->user<br>";
        $content .= "Passwort: $fetch->pass";
        $header   = 'MIME-Version: 1.0' . "\r\n";
        $header  .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
        $header  .= 'From: support@privatecitypage.de' . "\r\n" .
                           'Reply-To: support@privatecitypage.de' . "\r\n" .
                           'X-Mailer: PHP/' . phpversion();
        
        mail($mail,$headline,$content,$header);
        echo "Ihre Daten wurden Ihnen zugesendet!";
      }
      else {
        echo "Email Adresse ist nicht vorhanden!<br><br>";
        echo "<a href=\"pwforget.php\">&lt;&lt;&lt; zurück</a>";
      }
      mysql_close($db);
    }
    else {
      echo "Bitte geben Sie eine E-Mail Adresse ein!<br><br>";
      echo "<a href=\"pwforget.php\">&lt;&lt;&lt; zurück</a>";
    }
    ?>
    </body>
    </html>


    Beitrag zuletzt geändert: 13.10.2009 23:35:04 von privatecitypage
  16. Eventuell hat es dir noch niemand gesagt. Für einen Hacker ist dein Code sehr einfach zu hacken, da du $_POST['username'] direkt ins SQL Query einbaust. So kann er das SQL Query zu seinen Gunsten erweitern.

    Die Lösung ist dabei relativ einfach.

    Schreibe $username = mysql_real_escape_string($_POST['username']);

    Das sichert dich gegen Hacker ab. Zwar nicht zu 100%, aber die Attacke wird erschwert.
  17. Z.z dauert das versenden von Mails (Vom Skript) länger von dem Webspace
  18. Autor dieses Themas

    privatecitypage

    Kostenloser Webspace von privatecitypage

    privatecitypage hat kostenlosen Webspace.

    Wieso denn?

    @simsobjekts = Danke Ich habe den Code schon eingesetzt!

  19. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!