使用PHP和urlencode问题重置密码
只是想知道如何将urlencode应用到这段代码中。它实际上正在工作,当收到电子邮件时,urlencode似乎不起作用使用PHP和urlencode问题重置密码,php,sql,passwords,urlencode,reset,Php,Sql,Passwords,Urlencode,Reset,只是想知道如何将urlencode应用到这段代码中。它实际上正在工作,当收到电子邮件时,urlencode似乎不起作用 function reset_password($email) { $query = "DELETE from reset_password where email = $email"; $deletepass = mysql_query($query); $code = substr(base64_encode(crypt('', '')), 0, 32); $que
function reset_password($email) {
$query = "DELETE from reset_password where email = $email";
$deletepass = mysql_query($query);
$code = substr(base64_encode(crypt('', '')), 0, 32);
$query2 = "INSERT into reset_password values ($email, '$code', " . time() . ")";
$insertval = mysql_query($query2);
$f = "SELECT userEmail from gn_users where email = $email";
$from = "***"; // sender
$f['userEmail']; // recepient
$message =
"From: *** <***>\r\n" . // email headers
"To: {$f['userEmail']} <{$f['userEmail']}>\r\n" .
'Subject: Reset Password' . "\r\n" .
"\r\n" .
"Hello\r\n" . // email imap_body(imap_stream, msg_number)
"\r\n" .
"A request has been made to reset your example.com web site password.\r\n" .
"\r\n" .
"To complete the request, click on the following link within 48 hours of the transmision of this email and follow the on screen instructions.\r\n" .
"\r\n" .
"index.php?page=reset-password&email=" . urlencode($email) . "&code=" . urlencode($code) . "\r\n" .
"\r\n" .
"Kind regards,\r\n" .
"\r\n" .
"The example.com Web Site";
$to = "$email";
$subject = "Test mail";
$message = "$message";
$from = "***";
$headers = "From:" . $from;
mail($to,$subject,$message,$headers);
echo "Mail Sent.";}
功能重置\u密码($email){
$query=“从重置密码中删除,其中email=$email”;
$deletepass=mysql\u query($query);
$code=substr(base64_编码(crypt('',')),0,32);
$query2=“插入重置密码值($email,$code',“.time()”)”;
$insertval=mysql\u查询($query2);
$f=“从gn_用户中选择userEmail,其中email=$email”;
$from=“***”;//发件人
$f['userEmail'];//最近
$message=
“发件人:**\r\n”。//电子邮件标题
“收件人:{$f['userEmail']}\r\n”。
“主题:重置密码”。“\r\n”。
“\r\n”。
“您好\r\n”。//电子邮件imap\U正文(imap\U流,msg\U编号)
“\r\n”。
“已请求重置example.com网站密码。\r\n”。
“\r\n”。
“要完成请求,请在发送此电子邮件后48小时内单击以下链接,然后按照屏幕上的说明进行操作。\r\n”。
“\r\n”。
“index.php?page=reset password&email=“.urlencode($email)。”&code=“.urlencode($code)。”\r\n”。
“\r\n”。
“亲切问候,\r\n”。
“\r\n”。
“example.com网站”;
$to=“$email”;
$subject=“测试邮件”;
$message=“$message”;
$from=“***”;
$headers=“From:”.$From;
邮件($to、$subject、$message、$headers);
回显“已发送邮件”。;}
我将尝试用一些技巧帮助您自己编写一个,而不必依赖那些糟糕的代码
您需要将任务分解为多个小规模、易于完成的任务
我们开始:
uniqid()
,但这里有很多选项。因此,您生成的链接如下所示:http://test.com/reset.php?uid=443&hash=33rr3344rree22
。这真的无法猜测,因为您需要知道用户id和has。但为了确保,我们会让它在一小时或一天内过期id
,email
,hash
,date\u added
,并插入它(日期可以是TIMESTAMP
,默认值为CURRENT\u TIMESTAMP
)users
表,并向他发送一封确认邮件这些步骤中的每一步都相当容易完成,或者你可以在网上找到很多关于它们的信息。如果你花时间去理解每一个步骤,正确地清理每一件事,并按书办事,你会学到很多东西。你有一个SQL注入漏洞。
$code=substr(base64_encode(crypt(“”),0,32)代码>。。。哇@Slaks您有多个SQL注入漏洞。因此,问题可能出在index.php
上,而不是这段代码?好吧,除了危险的数据库处理,那就是.Jee,忘记那个教程,找另一个。讨厌这种教人们如何编写糟糕、无格式和任何攻击类型易受攻击的代码的教程……投票赞成“你需要将任务分解为多个小规模、易于执行的任务”。这样的分解答案让学习者更容易掌握这一过程!