Regestrierung per Mail

Xym

Erfahrenes Mitglied
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.
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?
 
Hi

key ist als Spaltenname nicht erlaubt, weil es es eine SQL-mäßige Bedeutung hat.
Nenn die Spalte anders.
 
Wenn doch, bitte auch in Echt ändern.
Google ist schnell.

Habs aus dem Beitrag rausgenommen.
 
Zurück