我自己创建了这个帐户注册激活脚本,我一遍又一遍地检查它以找出错误,我没有看到一个特定的错误.
域名应该是这样的:
http://domain.com/include/register.php?key=true&p=AfRWDCOWF0BO6KSb6UmNMf7d333gaBOB
它来自一封电子邮件,当用户单击它时,他们会被重定向到以下脚本:
if($_GET['key'] == true)
{
$key = $_GET['p'];
$sql = "SELECT * FROM users
WHERE user_key = '" . $key . "'";
$result = mysql_query($sql) or die(mysql_error());
if(mysql_affected_rows($result) > 0)
{
$sql = "UPDATE users
SET user_key = '', user_active = '1'
WHERE user_key = '" . $key . "'";
$result = mysql_query(sql) or die(mysql_error());
if($result)
{
$_SESSION['PROCESS'] = $lang['Account_activated'];
header("Location: ../index.php");
}
else
{
$_SESSION['ERROR'] = $lang['Key_error'];
header("Location: ../index.php");
}
}
else
{
$_SESSION['ERROR'] = $lang['Invalid_key'];
header("Location: ../index.php");
}
}它甚至根本不起作用,我用那个键查看了数据库,它匹配,但是它总是以一个错误出现,这让我非常恼人。数据库是对的,表和列是对的,数据库没有什么问题,是脚本不起作用。
帮帮我,伙计们。
谢谢:)
发布于 2010-06-09 23:54:59
在此$_GET['key'] == "true"
$_GET['key'] == true更改为if,成功的mysql_connect(...)或mysql_pconnect(...)?mysql_affected_rows($result);更改为mysql_num_rows($result);。受影响,您可以使用第二个statements.UPDATE SQL mysql_result(...),如果打开,则在第二个mysql_result(...)之前添加,mysql_free_result($result);以释放分配给以前的mysql_result(...)更改为if(mysql_affected_rows($result));的内存。您可以在这里这样做。在$key = mysql_real_escape_string($_GET['p']);return 0;或exit(0);之后,header(...); $key变量的header()函数中的位置失败。在http://www.example.com/somewhere/index.php$_GET['p']变量是否存在!!如果不存在这种情况,如果存在$_GET['key'],则会发现所有激活的用户。那么,如果您有user_key标记,那么我认为将user_activated设置为'‘是非常必要的。发布于 2010-06-09 23:59:48
你不应该使用:
if(mysql_affected_rows($result) > 0)您应该使用mysql_num_rows()
发布于 2010-06-10 00:02:53
你的问题是:
$result = mysql_query($sql) or die(mysql_error());"or“使您的语句为boolean,以便$result获得一个True而不是mysql_query()返回的值。
echo 'Hello' or die('bye'); // outputs nothing, because result is True not 'Hello'
3 or die() == True; // true
3 or die() != 3; // true或是与收/复相同的,它是逻辑语句的运算符。
这将起作用:
$result = mysql_query($sql);
if(!$result) die(mysql_error()); 几个小时前也犯了同样的错误:link
可以使用OR的情况:
defined('FOO') or
define('FOO', 'BAR');
mysql_connect(...) or die(...);
mysql_select_db( .... ) or die(...);
mysql_query('UPDATE ...') or die(...);
if(FOO or BAR) { ... }https://stackoverflow.com/questions/3010788
复制相似问题