Ankündigung

Einklappen
Keine Ankündigung bisher.

Passwort vergessen Funktion

Einklappen

Neue Werbung 2019

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

  • Passwort vergessen Funktion

    Hallo,

    ich habe eine Passwort vergessen Funktion. Es funktioniert auch alles super bis auf den Mailtext.

    PHP-Code:
    if ($check != "0") {
    while (
    $row mysql_fetch_object($result)) {
    $mailtext 'Dein Passwort lautet: echo $row["Kennwort"]'
    Wenn der Benutzer die Mail mit des Passwort bekommt, steht dort nicht das PWD sondern Dein Passwort lautet: echo $row["Kennwort"]

    Wo ist dort der Fehler?

  • #2
    PHP Interpretiert in Strings die mit 'xyz' umschlossen sind keine Variablen. Versuche es mal so:

    PHP-Code:
    if ($check != "0") {
    while (
    $row mysql_fetch_object($result)) {
    $mailtext 'Dein Passwort lautet: ' . echo $row["Kennwort"]; 
    Dadurch wird $row["Kennwort"] an den String "Dein Passwort lautet: " angehängt und dann erst $mailtext zugewiesen.

    Kommentar


    • #3
      Noch besser wäre es so:

      PHP-Code:
      if ($check != "0") {
      while (
      $row mysql_fetch_object($result)) {
      $mailtext 'Dein Passwort lautet: ' $row["Kennwort"]; 

      Kommentar


      • #4
        Besser wäre natürlich, dem Benutzer ein neues Passwort zuzuweisen, dass er dann selber wieder ändern kann. Wenn du, wie es sich eigentlich gehört, das Passwort als Hash (md5, sha1 o.ä) speicherst, kannst du es dem Benutzer gar nicht schicken, da du es nicht entschlüsseln kannst.
        Gruss
        L

        Kommentar


        • #5
          Also beide Varianten von stayInside und cetalian funktionieren leider nicht.

          Habt ihr noch eine andere Ideen, womit es funktionieren könnte?

          Kommentar


          • #6
            Zeig mal ein wenig mehr vom Quelltext. Wenn es daran nicht liegt, muss der Fehler woanders sein.

            Außerdem hat lazydog recht.
            [I]Es ist schon alles gesagt! Nur noch nicht von allen! (Karl Valentin)[/I]
            [I]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/I]

            Kommentar


            • #7
              PHP-Code:
              <?
              if ($action == "passwd"){
              mysql_connect("localhost","000","pwd") or die("Verbindung nicht möglich: ".mysql_error());
              mysql_select_db("db")or die ("Datenbankbezeichnung ist falsch oder existiert nicht");
              $sql = "SELECT * FROM tabelle WHERE email = '".$_REQUEST['email']."'";
              $result = mysql_query($sql);
              $check = mysql_num_rows($result);
              if ($check != "0") {
              while ($row = mysql_fetch_object($result)) {
              $mailtext = 'Dein Passwort lautet: echo $row["Kennwort"]';
              mail($_REQUEST['email'], 'Dein Passwort', $mailtext, "FROM: [email]000@000.de[/email]");
              ?>
              Dein Passwort wurde an <?echo $row->email; ?> gesendet
              <?
              }
              }
              }
              ?>
              Bitte

              Kommentar


              • #8
                Also:
                1. mail hat soweit ich weiß keine wirklich zuverlässige Rückgabefunktion. Kann auch sein, dass du true bekommst, der Server die Nachricht aber nicht raus schickt. Wurde hier schon oft diskutiert und es wird immer an Mailer-Klassen verwiesen.
                2. Du nutzt in der mail-Funktion $_REQUEST['email'], sagst aber, dass die E-Mail an $row-email verschickt wurde. Welches stimmt denn da?
                3. Die Absender Adresse für die mail Funktion muss meines Wissens nach gültig und/oder sogar existent sein (bin mir aber nicht so sicher)

                edit:
                4. Du nutzt einmal $_REQUEST, einmal $row->email und einmal $row['Kennwort']... Da der Mailtext nicht klappt, müsste es wohl $row->kennwort heißen.
                [I]Es ist schon alles gesagt! Nur noch nicht von allen! (Karl Valentin)[/I]
                [I]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/I]

                Kommentar


                • #9
                  Zitat von dennis81 Beitrag anzeigen
                  Also:
                  1. mail hat soweit ich weiß keine wirklich zuverlässige Rückgabefunktion. Kann auch sein, dass du true bekommst, der Server die Nachricht aber nicht raus schickt. Wurde hier schon oft diskutiert und es wird immer an Mailer-Klassen verwiesen.
                  2. Du nutzt in der mail-Funktion $_REQUEST['email'], sagst aber, dass die E-Mail an $row-email verschickt wurde. Welches stimmt denn da?
                  3. Die Absender Adresse für die mail Funktion muss meines Wissens nach gültig und/oder sogar existent sein (bin mir aber nicht so sicher)

                  edit:
                  4. Du nutzt einmal $_REQUEST, einmal $row->email und einmal $row['Kennwort']... Da der Mailtext nicht klappt, müsste es wohl $row->kennwort heißen.
                  Also ich habe keine Ahnung von PHP. Ich habe mir das Script zufällig aus dem Internet geholt. $row->Kennwort funktioniert übrigens auch nicht.

                  Ich möchte ja nur wissen, wo der Fehler liegt? Nicht gleich PHP lernen.

                  Kommentar


                  • #10
                    Zitat von Gravenstein Beitrag anzeigen
                    Also ich habe keine Ahnung von PHP. Ich habe mir das Script zufällig aus dem Internet geholt.
                    Und wir sollen es jetzt für dich zusammenbasteln
                    Zitat von Gravenstein Beitrag anzeigen
                    $row->Kennwort funktioniert übrigens auch nicht.
                    Das kommt drauf an, wie du es einsetzst.
                    Zitat von Gravenstein Beitrag anzeigen
                    Ich möchte ja nur wissen, wo der Fehler liegt? Nicht gleich PHP lernen.
                    Den Fehler können wir dir nicht so einfach sagen, da es mehrere davon in deinem Code hat.
                    Aber wie schon vorher vermerkt, ist das Vorgehen an sich schon falsch. Aber natürlich findet man auch im Internet schlechte Scripts.
                    Gruss
                    L

                    Kommentar


                    • #11
                      Zitat von Gravenstein Beitrag anzeigen
                      Ich möchte ja nur wissen, wo der Fehler liegt? Nicht gleich PHP lernen.
                      Ähm... okay. Wie soll das funktionieren?
                      [I]Es ist schon alles gesagt! Nur noch nicht von allen! (Karl Valentin)[/I]
                      [I]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/I]

                      Kommentar


                      • #12
                        Mal abgesehen davon, daß ich auch der Meinung von lazydog bin, sehe ich in Deinem grad geposteten Quelltext
                        keine Veränderung der Zeile
                        PHP-Code:
                        $mailtext 'Dein Passwort lautet: echo $row["Kennwort"]'
                        Die Aussage
                        Zitat von Gravenstein
                        Wenn der Benutzer die Mail mit des Passwort bekommt, steht dort nicht das PWD sondern Dein Passwort lautet: echo $row["Kennwort"]
                        läßt ja darauf schliessen, daß die Mail versendet wird.
                        Wenn Du die Änderungen von stayInside übernimmst, sollte das eigentliche Problem behoben sein...

                        ps: habs grad mit sttischen Vars probiert und da funzt es!
                        Kann also nur an Deinen Variablen liegen, wenns nicht klappt...
                        Competence-Center -> Enjoy the Informatrix
                        PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                        Kommentar


                        • #13
                          Ich habe es allein hin bekommen. Es funktioniert jetzt.

                          Kommentar


                          • #14
                            Erklärst Du auch wie, bitte?!
                            Könnte anderen eine Hilfe sein, die ähnliches mal im Forum suchen...
                            Competence-Center -> Enjoy the Informatrix
                            PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                            Kommentar


                            • #15
                              Wie auch immer, für alle Nachlesenden:

                              Sowohl
                              $mailtext = 'Dein Passwort lautet: echo $row["Kennwort"]';
                              als auch
                              $mailtext = 'Dein Passwort lautet: ' . echo $row["Kennwort"];
                              sind hochgradig Unsinn.

                              Das erste, weil
                              - in Einfachqupotes nicht geparst wird
                              - echo dort nichts zu suchen hat (siehe 2)

                              Das zweite, weil
                              - echo keine Funktion, sondern ein Sprachkonstrukt ist und keine Ausgabe erzeugt, die mit dem String verknüpft werden könnte. Ergo erfolgt allenfalls direkt eine Ausgabe, was wohl nicht die Intention der Zuweisung sein dürfte.

                              Deshalb ist
                              $mailtext = 'Dein Passwort lautet: ' . $row["Kennwort"];
                              nicht besser, sondern einzig richtig. Alternativ wären noch
                              PHP-Code:
                              $mailtext "Dein Passwort lautet: $row[Kennwort]";  
                              $mailtext "Dein Passwort lautet: {$row[Kennwort]}";  
                              $mailtext "Dein Passwort lautet: {$row['Kennwort']}"
                              denkbar. Nichts, was man nicht auch im Manual lesen könnte.
                              [COLOR="#F5F5FF"]--[/COLOR]
                              [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                              „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                              [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                              [COLOR="#F5F5FF"]
                              --[/COLOR]

                              Kommentar

                              Lädt...
                              X