Hallo,
ich möchte, dass meine Regestrierung mit einer Mail überprüft wird.
Dazu dachte ich mir, dass der neue Benutzer eine E-Mail bekommt mit einem Link.
Bei diesem Link ist hinten als Parameter einmal die id angefügt, denn seine Daten werden in einer Datenbank zwischen gespeichert. Und auch noch ein key zur überprüfung ist hinten dran.
Wenn ich alles in die zwischen Datenbank speichern will, streikt der Server beim Key.
Hier ist erstmal das Skript.
Wenn ich im SQL Befehl key = "'.$key.'" entferne funktionert das eintragen.
Warum funktioniert es nicht mehr, wenn ich es doch stehen lasse?
ich möchte, dass meine Regestrierung mit einer Mail überprüft wird.
Dazu dachte ich mir, dass der neue Benutzer eine E-Mail bekommt mit einem Link.
Bei diesem Link ist hinten als Parameter einmal die id angefügt, denn seine Daten werden in einer Datenbank zwischen gespeichert. Und auch noch ein key zur überprüfung ist hinten dran.
Wenn ich alles in die zwischen Datenbank speichern will, streikt der Server beim Key.
Hier ist erstmal das Skript.
PHP:
<?php
function Zufahlsstring($länge)//Hier kannst du die länge des Strings bestimmen.
{
$zahl1=rand(1,10000000).rand(1,10000000).rand(1,10000000);
$zahl2=rand(1,10000000).rand(1,10000000).rand(1,10000000);
$Zufallsstring=md5($zahl1).md5($zahl2);
$Zufallsstring = strtoupper($Zufallsstring); //Falls der String nur aus Groß-
$Zufallsstring = strtolower($Zufallsstring); //bzw. Kleinbuchstaben bestehen soll.
$Zufallsstring; substr($Zufallsstring, 0, $länge);
return $Zufallsstring;
}
$benutzername = $_POST["benutzername"];
$passwort = $_POST["passwort"];
$nachname = $_POST["nachname"];
$vorname = $_POST["vorname"];
$strasse = $_POST["strasse"];
$plz = $_POST["plz"];
$ort = $_POST["ort"];
$telefonnummer = $_POST["telefonnummer"];
$email = $_POST["email"];
$paypal = $_POST["paypal"];
$karte = $_POST["karte"];
$geheimfrage = $_POST["geheimfrage"];
$antwort = $_POST["antwort"];
$key = Zufahlsstring(rand(5, 20));
$db = new mysqli("xxx", "yyy", "zzz", "datenbank") or die("Keine Verbindung zur Datenbank!");
$befehl = 'INSERT INTO reg SET benutzername = "'.$benutzername.'", passwort = "'.$passwort.'", nachname = "'.$nachname.'", vorname = "'.$vorname.'", strasse = "'.$strasse.'", plz = "'.$plz.'", ort = "'.$ort.'", telefonnummer = "'.$telefonnummer.'", email = "'.$email.'", paypal = "'.$paypal.'", karte = "'.$karte.'", geheimfrage = "'.$geheimfrage.'", antwort = "'.$antwort.'", key = "'.$key.'"';
$db->query($befehl);
$befehl = 'SELECT id FROM reg WHERE key = "'.$key.'"';
$result = $db->query($befehl);
//$row = $result->fetch_assoc();
//$id = $row['id'];
$text = '
http://www.domain.com/de/bestaetigung.php?id='.$id.'&key='.$key.'
';
mail($email, 'Regestrierung', $text, '..');
?>
Wenn ich im SQL Befehl key = "'.$key.'" entferne funktionert das eintragen.
Warum funktioniert es nicht mehr, wenn ich es doch stehen lasse?