Variable (mailadresse) in Empfänger übergeben

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

  • Variable (mailadresse) in Empfänger übergeben

    Hallo ich sitze seit einiger Zeit vor einem Problem:


    Wenn einem User das Passwort verlorengegangen ist, soll er sich ein neu generiertes zusenden lassen können. Dazu ist es notwendig

    1. über den Benutzernamen die Emailadresse aus der Datenbank zu lesen (forg_pw.html) und diese Variable dann an eine zweite Datei zu übergeben (forg_pw.php).

    forg_pw.html
    PHP-Code:
    <p>
             <form action="index.php?site=./home/php/forg_pw.php" method="post" name="neu">
             <table>
            <tr>
                   <td align="right">Benutzername: </td>
                   <td><input class="wst_input" type="text" name="var_bname"
                            value="<?php echo htmlspecialchars($_REQUEST['var_bname']); ?>"/></td>
                   <td>&nbsp;</td>
            </tr>
            <tr>
                   <td colspan="2">&nbsp;</td>
                </tr>
            <tr>
                <td>&nbsp;</td>
                <td align=left><input class="button" type=submit value=Senden ></td>
                </tr>
             </table>
             </form>
          </p>
    So weit so gut. Die Variable wird zwar übergeben, aber die Email wird nicht versendet, trotzdem die registrierte Email-Adresse im feedback angezeigt wird. Woran liegt es?

    forg_pw.php:
    PHP-Code:
    <?
    include('./config.php');
    ?>

    <!-- CONTENT -->
    <div id='content'>
    <?

    function getpass() {
        $newpass = "";
        $laenge=10;
        $string="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";

        mt_srand((double)microtime()*1000000);

        for ($i=1; $i <= $laenge; $i++) {
            $newpass .= substr($string, mt_rand(0,strlen($string)-1), 1);
        }
        return $newpass;
    }



    $sql = "select EMAIL from userdaten WHERE BNAME='".$_POST['var_bname']."'";
    $result = mysql_query($sql);
    echo mysql_error();

    $items = mysql_fetch_array($result);
     echo '
        <div align="left"> Ihr Passwort wurde an Ihre hinterlegte Email-Adresse gesendet.<br>Ihre angegebene Email-Adresse lautet:
        '.$items['EMAIL'].'<br><br>Vielen Dank<br>
        Ihr ...</div><br>
        <div align="right"><form> <input class="button" type=button value="Zurück" onClick="JavaScript:history.back()"> </form>
        </div> ';


    /*eMail--Empfänger (user)*/
    $wm = '$items'; /*'$bname'*/

    /*eMail--Absender (von...)*/
    $from = "bla@bla.de";


    /*eMail--outfit $webmaster*/

    /*Betreff*/
    $betreffwm = "Ihr neues Kenntwort";
    /*Rumpf*/
    $rumpfwm = "";

    /*eMail--outfit $feedback?*/
    /*Betreff*/
    $betrefffrom = "Passwortanfrage ";
     /*Rumpf*/
    $rumpffrom = "Vielen Dank für Ihre Passwortanfrage. \n Ihr neues Passwort lautet: echo getpass(); . \n
                 Bitte notieren Sie sich Ihr neues Passwort und schützen Sie es vor Missbrauch.\n\n Ihr...";
    Das zweite Problem: Wie bekomme ich das neu generierte PAsswort in die Email und in die Datenbank (an die Stelle des alten Passworts)? Muss ich das alte erst löschen und dann das neue an dieselbe Stelle schreiben?

    Ich hoffe es hilft mir jemand. Vielen Dank schon mal im Voraus.

    Andreas

  • #2
    Re: Variable (mailadresse) in Empfänger übergeben

    Und wo in deinem Script versendest du die Mail ...?
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      PHP-Code:
      //diese Zeile macht für mich keinen Sinn
      $wm '$items';
      //soll der wert von $wm tatsächlich string($items) sein. Meinst du nicht eher
      $wm $items['EMAIL']; 
      Zu deine zweiten Frage: Schau dir mal update im Mysql Manual an.

      Gruss

      tobi
      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

      Kommentar


      • #4
        Code:
        $new_password = getpass();
        Dann das ganze in die DB:

        Code:
        UPDATE userdaten SET Passwort='$new_password' WHERE EMAIL='$emailadresse'
        Wo verschickst Du denn die Mail?
        Du baust DIr zwar alle Parameter zusammen, aber wo schickst Du sie denn los?
        www.vino.la
        www.any-where.de
        www.gospical.de

        Kommentar


        • #5
          Vielen Dank für die Antwort.

          Muss ich da noch ein Formular erstellen und mittels method="post" versenden?

          Ich bin leider nicht fit in php. Wie sähe das dann in etwa aus?

          Andreas

          Kommentar


          • #6
            Zum Beispiel so:

            http://www.php-resource.de/manual.php?p=function.mail
            www.vino.la
            www.any-where.de
            www.gospical.de

            Kommentar


            • #7
              Danke für den Link, ich schau da mal rein. Ich hatte zwar vorher schon gesucht, aber keine entsprechenden Beiträge gefunden.

              Andreas

              Kommentar


              • #8
                Übrigens hat method="post" nichts mit Post oder Emails zu tun
                www.vino.la
                www.any-where.de
                www.gospical.de

                Kommentar


                • #9
                  Naja, ich hatte nicht die gesamte Datei gepostet. Mit allen Hilfen sähe sie dann so aus:

                  PHP-Code:
                  <!-- CONTENT -->
                  <div id='content'>
                  <?

                  function getpass() {
                      $newpass = "";
                      $laenge=10;
                      $string="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";

                      mt_srand((double)microtime()*1000000);

                      for ($i=1; $i <= $laenge; $i++) {
                          $newpass .= substr($string, mt_rand(0,strlen($string)-1), 1);
                      }
                      return $newpass;
                  }



                  $sql = "select EMAIL from userdaten WHERE BNAME='".$_POST['var_bname']."'";
                  $result = mysql_query($sql);
                  echo mysql_error();

                  $items = mysql_fetch_array($result);
                   echo '
                      <div align="left"> Ihr Passwort wurde an Ihre hinterlegte Email-Adresse gesendet.<br>Ihre angegebene Email-Adresse lautet:
                      '.$items['EMAIL'].'<br><br>Vielen Dank<br>
                      Ihre ...</div><br>
                      <div align="right"><form> <input class="button" type=button value="Zurück" onClick="JavaScript:history.back()"> </form>
                      </div> ';


                  /*eMail--Empfänger (user)*/
                  $$wm = $items['EMAIL']; /*'$var_bname'*/

                  /*eMail--Absender (von...)*/
                  $from = "bla@bla.de";


                  /*eMail--outfit $webmaster*/

                  /*Betreff*/
                  $betreffwm = "Ihr neues Kenntwort";
                  /*Rumpf*/
                  $rumpfwm = "";

                  /*eMail--outfit $feedback?*/
                  /*Betreff*/
                  $betrefffrom = "Passwortanfrage";
                   /*Rumpf*/
                  $rumpffrom = "Vielen Dank für Ihre Passwortanfrage. \n Ihr neues Passwort lautet: $new_password = getpass(); . \n
                               Bitte notieren Sie sich Ihr neues Passwort und schützen Sie es vor Missbrauch.\n\n Ihre...";

                  /*error-message--$wrongemail*/
                  $wrongemail = "<p id=fehler>Fehler</p><p>Leider ist die von Ihnen eingegebene Email-Adresse falsch.</p><p>Bitte korrigieren Sie Ihre Eingabe und versuchen Sie es erneut.";

                  /*sent-message--$sent*/
                  $sent = "<p id=fehler>Danke,</p><p>Ihr Passwort wurde an die von Ihnen eingegebene Adresse geschickt. Bitte sehen Sie in Ihrem Postfach nach..</p>";

                  /*Abfrage: sind alle Felder ausgefüllt?*/
                  if ($email == "")
                      {
                      /*falls nicht:*/
                      echo "$fieldempty";
                      }
                          else
                              {
                              /*ja*/
                              /*korrekte Verwendung aller Zeichen in eMail?*/
                              if (ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,3})$", $email))
                                  {
                                  /*email-schreibweise korrekt!*/
                                  mail("$wm","$betreffwm","$rumpfwm\n","FROM: $from\n");

                                  /*feedback an Besteller?*/
                                  if ($copy == "ja")
                                      {
                                      mail("$email","$betrefffrom","$rumpffrom","FROM: $absender\n");
                                      echo "$sent";
                                      }
                                  else
                                      {
                                      echo "$sent";
                                      }
                                  }
                                  else
                                  {
                                      /*falls nicht:*/
                                      echo "$wrongemail";
                                  }
                          }

                  ?>
                  Nur wohin kommt die update-funktion:

                  PHP-Code:
                  UPDATE userdaten SET Passwort='$new_password' WHERE EMAIL='$emailadresse' 
                  ?

                  Kommentar


                  • #10
                    Lies bitte die Regeln, und passe die Breite deiner Code-Beispiele an.
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar


                    • #11
                      Erst einmal: Tschuldigung für das vertikale Scrollen (Informatiker sind faul!).

                      Wer kann mir das mit dem Mail versenden nochmals erklären?

                      Ich benutze das Script schon recht lange und die Mails wurden und
                      werden immer versand. Warum hier nicht?

                      (Die Bedingungen werde ich natürlich noch herausnehmen, da sie hier ja keinen Sinn ergeben.)

                      Andreas

                      Kommentar


                      • #12
                        Email versenden funktioniert nicht

                        Hallo,

                        ich hatte gestern schon diesen Beitrag geschrieben und bekam auch einige Antworten. Leider konnte ich mit denen nicht allzu viel anfangen.

                        Also ich möchte Benutzern die ihr Passwort vergessen haben, die Möglichkeit geben, sich ein neues zusenden zu lassen.

                        Im Formular wird der Benutzername eingegeben und diesem wird über eine Datenbankabfrage die zugehörige Email-Adresse zugeordnet. Das funktioniert soweit ganz gut. Hier die Datei:

                        PHP-Code:
                        <?
                        include('./config.php');
                        ?>

                        <!-- CONTENT -->
                        <div id='content'>
                        <?

                        function getpass() {
                            $newpass = "";
                            $laenge=10;
                            ...
                            return $newpass;
                        }

                        /*Datenbankabfrage*/
                        $sql = "select EMAIL from userdaten WHERE BNAME='".$_POST['var_bname']."'";
                        $result = mysql_query($sql);
                        echo mysql_error();

                        $items = mysql_fetch_array($result);
                         echo '
                            <div align="left"> Ihr Passwort wurde an Ihre hinterlegte
                         Email-Adresse gesendet.<br>Ihre angegebene Email-Adresse
                         lautet:
                            '.$items['EMAIL'].'<br><br>Vielen Dank</div>';


                        /*eMail--Empfänger (user)*/
                        $wm = $items['EMAIL']; /*'$var_bname'*/

                        /*eMail--Absender (von...)*/
                        $from = "bla@bla.de";


                        /*eMail--outfit $webmaster*/

                        /*Betreff*/
                        $betreffwm = "Ihr neues Kenntwort";
                        /*Rumpf*/
                        $rumpfwm = "";

                        /*eMail--outfit $feedback?*/
                        /*Betreff*/
                        $betrefffrom = "Passwortanfrage";

                         /*Rumpf*/
                        $rumpffrom = "Ihr neues Passwort lautet: $new_password = getpass(); . ";

                        /*error-message--$wrongemail*/
                        $wrongemail = "<p id=fehler>Fehler</p><p>
                        Leider ist die von Ihnen eingegebene Email-Adresse falsch.";

                        /*sent-message--$sent*/
                        $sent = "<p id=fehler>Danke,</p><p>Ihr Passwort wurde an 
                        die von Ihnen eingegebene Adresse geschickt. </p>";

                        /*Abfrage: sind alle Felder ausgefüllt?*/
                        if ($email == "")
                            {
                            /*falls nicht:*/
                            echo "$fieldempty";
                            }
                                else
                                    {
                                    /*ja*/
                                    /*korrekte Verwendung aller Zeichen in eMail?*/
                                    if (ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+
                        ([a-zA-Z]{2,3})$", $email))
                                        {
                                        /*email-schreibweise korrekt!*/
                                        mail("$wm","$betreffwm","$rumpfwm\n","FROM: $from\n");

                                        /*feedback an Besteller?*/
                                        if ($copy == "ja")
                                            {
                                            mail("$email","$betrefffrom","$rumpffrom","FROM: $absender\n");
                                            echo "$sent";
                                            }
                                        else
                                            {
                                            echo "$sent";
                                            }
                                        }
                                        else
                                        {
                                            /*falls nicht:*/
                                            echo "$wrongemail";
                                        }
                                }
                        Eigentlich sollte die Email verschickt werden, wird sie aber nicht!

                        Das Feedback ist:

                        Ihr Passwort wurde an Ihre hinterlegte Email-Adresse gesendet.
                        Ihre angegebene Email-Adresse lautet: bla@bla.de

                        Wer kann mir bei diesem Problem weiterhelfen?

                        Vielen Dank schon mal
                        Andreas
                        Zuletzt geändert von andrassberlin; 02.02.2006, 09:35.

                        Kommentar

                        Lädt...
                        X