gpt4 book ai didi

php - 账户激活 PHP

转载 作者:行者123 更新时间:2023-11-29 09:18:55 25 4
gpt4 key购买 nike

我自己创建了这个帐户注册激活脚本,我已经一遍又一遍地检查是否有错误,我没有看到特定的错误...

域名将是这样的:

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");
}
}

它甚至根本不起作用,我用该 key 查看了用户的数据库,它匹配,但它不断出现作为错误,这让我非常恼火。数据库是对的,表和列是对的,数据库没有问题,只是脚本不起作用。

帮帮我吧,伙计们。

谢谢:)

最佳答案

  1. 更改$_GET['key'] == true$_GET['key'] == "true"
  2. 您在此之前执行 if ,成功mysql_connect(...)mysql_pconnect(...)
  3. 更改mysql_affected_rows($result);mysql_num_rows($result); 。受影响的您可以使用DELETEUPDATE SQL 语句
  4. 在第二个如果打开之前,请在第二个之前添加 mysql_result(...) , mysql_free_result($result);释放分配给先前结果的内存。
  5. if($result)更改为 if(mysql_affected_rows($result)); 。您可以在这里执行此操作。
  6. header(...);之后函数调用添加 return 0;exit(0);取决于你完整的代码逻辑。
  7. 您正在使用$key SQL 语句中的变量,为了让您的代码在 SQL 注入(inject)攻击方面更加安全,请进行更改 $key = $_GET['p'];$key = mysql_real_escape_string($_GET['p']);
  8. 我认为您的位置在header()功能失效。在 header() url 地址应该完整,例如:http://www.example.com/somewhere/index.php
  9. 并检查您的$_GET['p']变量存在!!如果不存在且 $_GET['key']存在,您会找到所有激活的用户。那么我认为如果您有 user_activated 标记,则将 user_key 设置为 '' 是必要的。

关于php - 账户激活 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3010788/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com