首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php奇怪的错误与if?

php奇怪的错误与if?
EN

Stack Overflow用户
提问于 2012-06-08 10:43:52
回答 1查看 93关注 0票数 0

你好,我试图制作一个帐户激活页面,但当我试图激活一个帐户,它工作1/2次。因此,基本上,我的activate链接使用的是用户id,它是用base64_encode()编码的,而用户传递是用密码(sha512)编码的。所以我在注册页面上的代码如下:

代码语言:javascript
复制
    $qry = "SELECT * FROM users WHERE username='$username'"; 
    $res = mysql_query($qry);
    $row = mysql_fetch_row($res);
    $userid=$row[0];//gets the id of the user
    $userpass=$row[2];//gets the pass from database (which is already encoded)
    $userid=base64_encode($userid); //encodes userid
    $code=substr($userpass,6,strlen($userpass)-6); // cuts off some $6$xx$ information which is needed for crypt.
    $message="//here is some message and then the link 
    http://www.xxx.be/forum/confirm.php?userid=".$userid."&code=".$code;

    mail($email , "xxx registration confirmation" ,$message,"From:NoReply@xxx.be");

这是我在confirm.php中使用的代码:

代码语言:javascript
复制
$userid=base64_decode($_GET['userid']); 
$qry = "SELECT * FROM users WHERE id='$userid'"; 
$res = mysql_query($qry);
$row = mysql_fetch_row($res);
if ($userid%2==0) {
$pass=substr($row[2],0,strlen($row[2])-1);
} else {
$pass=$row[2];
}
if ($pass=="$6$10$".$_GET['code']) {
$qry = "UPDATE users SET activated=1
WHERE id=$userid"; 
$res = mysql_query($qry);

所以我的问题来了:(confirm.php中的第5-9行)我不明白为什么要这样做。每次我做一个帐户,它只有在用户it是奇怪的情况下才起作用。如果是的话,它在密码中添加了一个点。所以就像这样:

用户:1密码:某物

用户:2密码:stackoverflow。

这就是为什么$pass没有获得“$10美元”,$_GET‘code’,而整个代码失败的原因。当我的userid为0时,我完全不知道为什么它会添加这个点。ps: confirm.php中的第5-9行解决了这个问题.但我只想知道它为什么这么做。

编辑:在回答之前请阅读整个帖子。

EN

回答 1

Stack Overflow用户

发布于 2012-06-08 11:00:46

代码语言:javascript
复制
if ($userid%2==0) {
    $pass=substr($row[2],0,strlen($row[2])-1);
} else {
    $pass=$row[2];
}

这个语句是无用的,这就是破坏您的代码的地方。如果userid ==偶数,那么它将切断$row2字符串中的最后一个字符。

若要修复,只需删除if语句并使其具有

代码语言:javascript
复制
$pass = $row[2];

另外,正如有人评论的那样,您应该考虑使用准备好的语句来防止SQL注入。或者,至少在将$_GET变量放入查询之前对它们进行净化。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10947355

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档