EMAIL Überprüfung PHP 

Status
Für weitere Antworten geschlossen.

reny

Registered +
Registriert
Okt. 2007
Beiträge
335
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

Code:
  function prufung($wert){

$datei = "pins.txt"; // Name der Datei
$array = file($datei); // Datei in ein Array einlesen
foreach ($array as $element) 
if($element==$wert){
fopen("pins.txt", "w+")
$ip=$_SERVER['REMOTE_ADDR'];
mail("test@test.at","Nachricht von $_POST[email] IP Adresse lautet $ip",$_POST[message]);
echo "Erfolgreich verschickt";}
}

$replace="";
//foreach ($array as $element2) {
/* if($element2==$wert){
fopen("pins.txt", "w+"); */
/* $handler = fOpen("pins.txt" , "a+");
fWrite($handler , $text);*/
foreach ($array as $element2) {
if($element2==$wert)
fopen("pins.txt", "w+"); 
$handler = fOpen("pins.txt" , "a+");
foreach ($array as $element3)
fWrite($handler , $element3);}
//string ereg_replace ( string $wert , string $replace , string $element2 )}
}


}
$pin=0;
function anfordern($em2){
for($count = 1; $count < 20; $count++){

$pin+=$count;}
$ip=$_SERVER['REMOTE_ADDR'];
mail($em2,"Bestaetigungscode fuer IP Adresse $ip",$pin);

$text = "$pin + $em2 \n"; // Dateiinhalt
$dateiname = "pins.txt"; // Name der Datei

// Datei öffnen, wenn nicht vorhanden dann wird die Datei erstellt.
$handler = fOpen($dateiname , "a+");
fWrite($handler , $text); // Dateiinhalt in die Datei schreiben
fClose($handler); // Datei schließen

echo "Eine Bestaetigungsemail wurde zu Ihnen verschickt $em2";
}

if ($_POST[message] && $_POST[best]==1234) {

$em=$_POST[email];

anfordern($em);
}else{
$bestae=$_POST[best];
prufung($bestae); 
}
/*if($_POST[message] && $_POST[best]==$pin){
// hier steht der mail-Befehl zum Versenden

$ip=$_SERVER['REMOTE_ADDR'];
mail("test@test.at","Nachricht von $_POST[email] IP Adresse lautet $ip",$_POST[message]);
echo "Erfolgreich verschickt";
//} else {
// echo "Bitte geben Sie etwas ein";
}

*/
?>

Form legend


Name:






Email:









Bestätigungscode:







Nachricht:
 
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
 
Zuletzt bearbeitet von einem Moderator:
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:

Code:
[HEADING=1]Code anfordern[/HEADING]


Email:


home6.php:

Code:
$pin=0;
function anfordern($em2){

for($count = 1; $count < 20; $count++){

$pin+=$count;}
$ip=$_SERVER['REMOTE_ADDR'];
mail($em2,"Bestaetigungscode fuer IP Adresse $ip",$pin);
$_SESSION['passwort']=$pin;
echo "Eine Bestaetigungsemail wurde zu Ihnen verschickt $em2";
echo $_SESSION['passwort'];
}

// echo $_SESSION['passwort'];
if($_POST[message] && $_POST[best]==$_SESSION['passwort']){

// hier steht der mail-Befehl zum Versenden
// echo $_SESSION['passwort'];
$ip=$_SERVER['REMOTE_ADDR'];
mail("test@test.at","Nachricht von $_POST[email2] IP Adresse lautet $ip",$_POST[message]);
echo "Erfolgreich verschickt";
//} else {
// echo "Bitte geben Sie etwas ein";
}else{
if ($_POST[email] ) {

$em=$_POST[email];
anfordern($em);
//echo "\nWurde verschickt";
}
}


?>






Form legend


Name:






Email:









Bestätigungscode:






Nachricht:
 
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
 
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...
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben Unten