EMAIL Überprüfung

  • PHP

  • reny
  • 1579 Aufrufe 4 Antworten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • EMAIL Überprüfung

    Hi ich habe folgendes Skript von einem Kontaktformular und möchte mithilfe eines Bestätigungscodes die Echtheit der vom Nutzer eingegebenen EMai-Adresse überprüfen (Code wird an Nutzer verschickt der wiederum muss ihn dann eingeben und es wird überprüft ob die email und der pin übereinstimmen)(ich weiß ich sollte den pin per zufall generieren lassen doch jetzt steht einmal die funktionstüchtigkeit im vordergrund). Doch irgendwie funzt es nicht.
    Dateiname:home3.php

    mfg reny

    Quellcode

    1. <?PHP
    2. function prufung($wert){
    3. $datei = "pins.txt"; // Name der Datei
    4. $array = file($datei); // Datei in ein Array einlesen
    5. foreach ($array as $element)
    6. if($element==$wert){
    7. fopen("pins.txt", "w+")
    8. $ip=$_SERVER['REMOTE_ADDR'];
    9. mail("test@test.at","Nachricht von $_POST[email] IP Adresse lautet $ip",$_POST[message]);
    10. echo "Erfolgreich verschickt";}
    11. }
    12. $replace="";
    13. //foreach ($array as $element2) {
    14. /* if($element2==$wert){
    15. fopen("pins.txt", "w+"); */
    16. /* $handler = fOpen("pins.txt" , "a+");
    17. fWrite($handler , $text);*/
    18. foreach ($array as $element2) {
    19. if($element2==$wert)
    20. fopen("pins.txt", "w+");
    21. $handler = fOpen("pins.txt" , "a+");
    22. foreach ($array as $element3)
    23. fWrite($handler , $element3);}
    24. //string ereg_replace ( string $wert , string $replace , string $element2 )}
    25. }
    26. }
    27. $pin=0;
    28. function anfordern($em2){
    29. for($count = 1; $count < 20; $count++){
    30. $pin+=$count;}
    31. $ip=$_SERVER['REMOTE_ADDR'];
    32. mail($em2,"Bestaetigungscode fuer IP Adresse $ip",$pin);
    33. $text = "$pin + $em2 \n"; // Dateiinhalt
    34. $dateiname = "pins.txt"; // Name der Datei
    35. // Datei öffnen, wenn nicht vorhanden dann wird die Datei erstellt.
    36. $handler = fOpen($dateiname , "a+");
    37. fWrite($handler , $text); // Dateiinhalt in die Datei schreiben
    38. fClose($handler); // Datei schließen
    39. echo "Eine Bestaetigungsemail wurde zu Ihnen verschickt $em2";
    40. }
    41. if ($_POST[message] && $_POST[best]==1234) {
    42. $em=$_POST[email];
    43. anfordern($em);
    44. }else{
    45. $bestae=$_POST[best];
    46. prufung($bestae);
    47. }
    48. /*if($_POST[message] && $_POST[best]==$pin){
    49. // hier steht der mail-Befehl zum Versenden
    50. $ip=$_SERVER['REMOTE_ADDR'];
    51. mail("test@test.at","Nachricht von $_POST[email] IP Adresse lautet $ip",$_POST[message]);
    52. echo "Erfolgreich verschickt";
    53. //} else {
    54. // echo "Bitte geben Sie etwas ein";
    55. }
    56. */
    57. ?>
    58. <fieldset>
    59. <legend>Form legend</legend>
    60. <form action="home3.php" method="POST">
    61. <p><label for="name">Name:</label><br />
    62. <input type="text" name="name" id="name" value="" /><br /></p>
    63. <p><label for="email">Email:</label><br />
    64. <input type="text" name="email" id="email" value="" /><br /></p>
    65. <p>
    66. <p>
    67. <label for="text">Best&auml;tigungscode:</label>
    68. <br />
    69. <input type="text" name="best" id="best" value="1234" /><br /></p>
    70. <div class="best"></div>
    71. <label for="message">Nachricht:</label><br />
    72. <textarea cols="60" rows="11" name="message" id="message"></textarea><br /></p>
    73. <p><input type="submit" name="send" class="formbutton" value="Send" /></p>
    74. </form>
    75. </fieldset>
    Alles anzeigen
    xnu&#305;l feel free
    &#477;ldd&#592; feel different
    s&#653;opu&#305;&#653; feel bad
  • What the Fuck... Was ist das denn für ein Drunter und Drüber... Da sieht doch gar keiner durch!
    Na ja, musst du wissen, ob du Hilfe willst, so kann man nur spekulieren. Ich vermute mal es liegt daran, dass nie ein Wert gefunden wird. Das liegt daran, dass die Array-Werte von file() auch \r\n in jeder Zeile beinhaltet. Lösung deines Problems wäre demzufolge trim() bei jeder Abfrage ($vergleichswert == trim($zeilenwert)) zu benutzen.

    Gruß
    Broken Sword
    Auf dem Abstellgleis sah man ihn liegen,
    Auf dem Abstellgleis zwischen Schwelle und Gestein,
    Auf dem Abstellgleis im strömenden Regen,
    Auf dem Abstellgleis allein.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Broken Sword ()

  • nun habe ich es mit einer sessionvariable probiert wobei ein anderer fehler auftritt nämlich der dass die variable scheinbar nach einem seitenwechsel nicht mehr vorhanden ist.

    home5.php:

    Quellcode

    1. <form action="home6.php" method="POST">
    2. <h2>Code anfordern</h2>
    3. <p><label for="name">Email:</label><br />
    4. <input type="text" name="email" id="email" value="" /></p>
    5. <p>
    6. <label>
    7. <input type="submit" name="button" id="button" value="Senden" />
    8. </label>
    9. <br />
    10. </p>
    11. </form>
    Alles anzeigen



    home6.php:

    Quellcode

    1. <?PHP
    2. $pin=0;
    3. function anfordern($em2){
    4. for($count = 1; $count < 20; $count++){
    5. $pin+=$count;}
    6. $ip=$_SERVER['REMOTE_ADDR'];
    7. mail($em2,"Bestaetigungscode fuer IP Adresse $ip",$pin);
    8. $_SESSION['passwort']=$pin;
    9. echo "Eine Bestaetigungsemail wurde zu Ihnen verschickt $em2";
    10. echo $_SESSION['passwort'];
    11. }
    12. // echo $_SESSION['passwort'];
    13. if($_POST[message] && $_POST[best]==$_SESSION['passwort']){
    14. // hier steht der mail-Befehl zum Versenden
    15. // echo $_SESSION['passwort'];
    16. $ip=$_SERVER['REMOTE_ADDR'];
    17. mail("test@test.at","Nachricht von $_POST[email2] IP Adresse lautet $ip",$_POST[message]);
    18. echo "Erfolgreich verschickt";
    19. //} else {
    20. // echo "Bitte geben Sie etwas ein";
    21. }else{
    22. if ($_POST[email] ) {
    23. $em=$_POST[email];
    24. anfordern($em);
    25. //echo "\nWurde verschickt";
    26. }
    27. }
    28. ?>
    29. <fieldset>
    30. <legend>Form legend</legend>
    31. <form action="home6.php" method="POST">
    32. <p><label for="name">Name:</label><br />
    33. <input type="text" name="name" id="name" value="" /><br /></p>
    34. <p><label for="email">Email:</label><br />
    35. <input type="text" name="email2" id="email2" value="" /><br /></p>
    36. <p>
    37. <p>
    38. <label for="text">Best&auml;tigungscode:</label>
    39. <br />
    40. <input type="text" name="best" id="best" value="" /><br /></p>
    41. <label for="message">Nachricht:</label><br />
    42. <textarea cols="60" rows="11" name="message" id="message"></textarea><br /></p>
    43. <input type="hidden" name="PHPSESSID" value="<?=session_id()?>">
    44. <p><input type="submit" name="send" class="formbutton" value="Send" /></p>
    45. </form>
    46. </fieldset>
    Alles anzeigen
    xnu&#305;l feel free
    &#477;ldd&#592; feel different
    s&#653;opu&#305;&#653; feel bad
  • Wie siehst du bei solchen Code nur durch @@

    Na ja, Session ist nicht mit $_SESSION getan.
    Woher soll der Server denn wissen, dass mit Session gearbeitet wird?
    Kucke dir mal das an: PHP: session_start - Manual

    Gruß
    Broken Sword
    Auf dem Abstellgleis sah man ihn liegen,
    Auf dem Abstellgleis zwischen Schwelle und Gestein,
    Auf dem Abstellgleis im strömenden Regen,
    Auf dem Abstellgleis allein.
  • Wie wäre es, wenn Du einfach einen zufälligen Code generierst und diesen dann in einer Datenbank speicherst? Dann benötigst Du nur noch die Emailadresse dazu und kannst das wunderbar vergleichen lassen, wenn der Benutzer den übermittelten Code eingibt...