da fehlt zwar die hälfte
Hier mal das Gesamte Script:
<?php
require_once ("includes/validation/validation_functions.php");
require_once ("includes/files/write_to_a_flat_file4.php");
require_once ("includes/sql/write_signup_db.php");
require_once ("includes/sql/email_exists_check_db.php");
session_start();
if (@$_POST['submitted']) {
$first_name = @$_POST['first_name'];
$last_name = @$_POST['last_name'];
$email = @$_POST['email'];
$password1 = @$_POST['password1'];
$password2 = @$_POST['password2'];
$error_msg=array();
$valid = verifyAlphaNum ($first_name);
if (!$valid){
$error_msg[]="Vorname darf nur Buchstaben, Zahlen, Leerzeichen, Bindestrische und ' enthalten.";
}
$valid = verifyAlphaNum ($last_name);
if (!$valid){
$error_msg[]="Nachname darf nur Buchstaben, Zahlen, Leerzeichen, Bindestrische und ' enthalten.";
}
$valid = verifyEmail ($email);
if (!$valid){
$error_msg[]="Email muss ein valides Format haben (z.B. john@yahoo.com).";
} else {
$returnedID = checkEmail($email);
}
if (((strlen($password1)) < 4) or ((strlen($password1))) > 9){
$error_msg[]="Passwort muss 4 bis 9 Zeichen enthalten.";
}
if ($password1 !== $password2) {
$error_msg[]="Beide Passwort-Felder müssen übereinstimmen. Bitte versuchen sie es noch einmal.";
}
$valid = verifyPassword ($password1);
if (!$valid){
$error_msg[]="Passwort darf nur Buchstaben und Zahlen enthalten.";
}
//////////////////////////////////////////////////
//////////////////////////////////////////////////
$email_confirmed ="0";
function refgen($length)
{
list($msec,$sec)=explode(' ',microtime());
mt_srand((float) $sec + ((float) $msec * 100000));
return substr(md5(uniqid(mt_rand(),true)),0,$length);
}
$code = md5(refgen(16));
///////////////////////////////////////////////////
///////////////////////////////////////////////////
if (!$returnedID &&!$error_msg && $_POST['submitted']) {
writeMemberSignup ($first_name, $last_name, $email, $password1, $email_confirmed, $code);
$_SESSION['name']='loggedIn';
header ('Location: a_sign_up.php');
exit();
}
$my_email = "email";
$email_subject="Bestätige deine Registrierung!";
$email_body = "Danke für die Registrierung auf heimgeistig.at. Bitte klick auf den Link um deine Registrierung zu bestätigen:\n\n <a href=\"http://www.heimgeistig.at/confirm_email.php?ref=$code\">Jetzt bestätigen!</a>\n Wenn der Link nicht funtkioniert kopier ihn einfach in deinen Webbroser und drücke Enter!";
mail ($email, $email_subject, $email_body, "From: ".$my_email);
}
?>
im übrigen, deine hash-funktion ist potentiell fehlerhaft, da sie keine eindeutigen werte generiert ;) - das ist zwar in einer sehr vernachlässigbaren dimension, aber ich wills nur gesagt haben
Kannst du vieleicht erklären wie ich es anders Lösen kann?
MfG
Simon