Zac*_*own 5 php mysql logic activation login-system
我为我的网站写了一个登录系统.当用户注册时,系统通过电子邮件将激活链接发送到用户提供的电子邮件地址.该链接包含两个参数,电子邮件和密钥.email参数具有用户的电子邮件地址,密钥参数具有注册码,以便可以验证注册并从挂起更改为已确认.激活页面应该从"电子邮件"列中设置了电子邮件参数的行中获取"状态"列.出于某种原因,脚本确定任何链接有效,并尝试更新帐户的状态是否存在.
这是我的代码:
<?php
$email = $_GET['email'];
if($email == "") {
header("Location: http://www.zbrowntechnology.info/yard/register.php?message=Invalid Activation Link!");
exit;
}
$key = $_GET['key'];
if($key == "") {
header("Location: http://www.zbrowntechnology.info/yard/register.php?message=Invalid Activation Link!");
exit;
}
$con = mysql_connect("HOST", "USER", "PASS") or die(mysql_error());
mysql_select_db("zach_yardad", $con) or die(mysql_error());
$query1 = "SELECT `Status` FROM Accounts WHERE `Email`='".mysql_real_escape_string($email)."' AND `Status`='".mysql_real_escape_string($key)."'";
$result1 = mysql_query($query1) or die(mysql_error());
if(mysql_num_rows($result1) <= 0) {
header("Location: http://www.zbrowntechnology.info/yard/register.php?message=Invalid Activation Link!");
exit;
} else {
$query = "UPDATE Accounts SET `Status`='Confirmed' WHERE `Email`='$email'";
mysql_query($query) or die(mysql_error());
header("Location: http://www.zbrowntechnology.info/yard/login.php?message=Registration Complete!");
exit;
}
?>
Run Code Online (Sandbox Code Playgroud)
这是一个有效的激活链接:
http://www.zbrowntechnology.info/yard/activate.php?email=zach@zbrowntechnology.com&key=2772190956485245
Run Code Online (Sandbox Code Playgroud)
它将通过链接激活该帐户,但如果链接无效,它将在激活后重定向到登录页面.
编辑:
以下是查询的结果DESCRIBE `Accounts`:
First Name varchar(65) NO NULL
Last Name varchar(65) NO NULL
Email varchar(100) NO NULL
Username varchar(65) NO NULL
Password varchar(65) NO NULL
Status varchar(65) NO NULL
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
962 次 |
| 最近记录: |