Register system med php og email confirmation fejl
Hej eksperten :)Har et login system som fungerede perfekt indtil jeg fik den idé, at jeg ville have e-mail confirmation, som jeg ikke kan få til at fungere .. :(
Jeg har virkelig brug for hjælp med det her, da jeg ikke er helt skarp i php endnu.
Koden:
<?php
$submit= $_POST['register'];
if($submit=="Registrer")
{
include('connect.php');
$username = mysql_real_escape_string(strip_tags(htmlspecialchars($_POST['username'])));
$password1 = md5($_POST['password1']);
$pw1 = $_POST['password1'];
$pw2 = $_POST['password2'];
$email = $_POST['email'];
$key = mt_rand() . mt_rand() . mt_rand() . mt_rand() . mt_rand();
$error=0;
if(strlen($_POST['password1']) < 4)
{
echo '<p style="color:red";>'."Passwordet skal indeholde mindst 4 tegn..".'</p>';
$error=1;
}
if($pw1 != $pw2)
{
echo '<p style="color:red";>'."De 2 kodeord er ikke ens!".'</p>';
$error=1;
}
if($pw1 == "")
{
echo '<p style="color:red";>'."Du har ikke indtastet et kodeord!".'</p>';
$error=1;
}
if(strlen($username = mysql_real_escape_string(strip_tags(htmlspecialchars($_POST['username'])))) < 3)
{
echo '<p style="color:red";>'."Brugernavnet skal indeholde mindst 3 tegn..".'</p>';;
$error=1;
}
if($username == "")
{
echo '<p style="color:red";>'."Du har ikke indtastet et brugernavn!".'</p>';
$error=1;
}
if(!preg_match("/^[a-åA-Å0-9_]+@[a-åA-Å0-9\-]+\.[a-åA-Å0-9\-\]+$]/", $email))
{
echo '<p style="color:red";>'."Din E-mail er forkert!".'</p>';
$error=1;
}
$sql = "SELECT id FROM users WHERE username LIKE '".$username."'";
$rs = mysql_query($sql);
if($rs)
{
if (mysql_num_rows($rs) == 1)
{
echo '<p style="color:red";>'."Brugernavnet er optaget!".'</p>';
$error=1;
}
}
if(!$error)
{
$sql="INSERT INTO `users` (`username`,`password`,`email`,'key','status') VALUES ('".$username."','".$password1."','".$email."','".$key."','verify')";
mysql_query($sql) or die(mysql_error());
echo '<b style="color:blue";>'."Du er nu klar! Log ind ovenover!".'</b>';
echo'en mail er sendt til '.$_POST['email'].'';
$to = $_POST['email'];
$subject = "hjemmeside Registrering";
$message = "Velkommen til min hjemmeside!\r\rFor at oprette dig som bruger, skal du bare trykke på dette link: http://localhost/webalizer/Website.php$key";
$headers = 'Fra: noreply@minhjemmeside' . "\r\n" .
'Svar: noreply@minhjemmeside' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
}
else
{
$queryString = $_SERVER['QUERY_STRING'];
$query = "SELECT * FROM users";
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result)){
if ($queryString == $row["key"]){
echo'tillykke du er oprettet som bruger! :)';
$sql="UPDATE users SET key = '', status='activated' WHERE (id = $row[id])";
}
}
}
}
?>
Den laver en hvid side, hvor der kun er login formen og denne error:
"You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''key','status') VALUES ('jisijsdijasd','ad7f8a01b9939ef96f3afa4ffa0bbb26','ajsid' at line 1"
Sætter pris på alt form for hjælp!! :)