我正在尝试创建一个激活页面,该页面将从URL获取API和ACT代码.
然后我试图在这些代码上查询数据库以检查它们是否有效.
如果它们无效,我想回应一个错误说明 echo "<strong><font color=red>Your Activation Code has Expired, or Your Activation Code is not Valid!</font></strong>";
如果它有效,那么我想用更新 2nd SQL Query - "UPDATE users SET status='1', date_activated='$Activation_Date', Activation='' WHERE Activation='$Activation' AND API='$API' AND status='0'"
如果URL中没有API和ACT代码,我想回复"内容"
<?
require 'admin/config.php';
require 'Connection.php';
error_reporting(E_ALL);
$API = $_REQUEST['api'];
$Activation = $_REQUEST['act'];
$sql= mysql_query("SELECT * WHERE Activation='$Activation'");
if ($sql = 0) { echo"ERROR";}
else {
$Activation_Date = date('m-j-y - h-iA');
$sql = mysql_query("UPDATE users
SET status='1', date_activated='$Activation_Date', Activation=''
WHERE Activation='$Activation' AND API='$API' AND status='0'");
if($sql == 0){
echo "<strong><font color=red>Your Activation Code has Expired, or Your Activation Code is not Valid!</font></strong>";
} elseif ($sql > 0) {
echo "content";
}
}
?>
Run Code Online (Sandbox Code Playgroud)
您需要检查的是,是否存在行.
要检查它是否存在并基于以下模型:
$sql = mysql_query("SELECT * WHERE Activation='$Activation'");
if(mysql_num_rows($sql) > 0){
//do something here or show error because relation already exists
}
else{
//relation already do not exists. so you can insert the record here
}
Run Code Online (Sandbox Code Playgroud)
然后,要检查您的UPDATE是否真的成功,请使用mysql_affected_rows():
旁注:此函数可能要求您将db连接变量传递给它.
$sql = mysql_query("UPDATE users .... ");
if(mysql_affected_rows() > 0){
// do something
}
else {
// do something else
}
Run Code Online (Sandbox Code Playgroud)
检查PHP和MySQL的错误:
在打开PHP标记之后立即将错误报告添加到文件的顶部,例如<?php error_reporting(E_ALL); ini_set('display_errors', 1);代码的其余部分,以查看它是否产生任何结果.还添加or die(mysql_error())到mysql_query().
如果您收到有关弃用通知的错误,则需要切换到mysqli_PDO或PDO.
您可以在/sf/answers/1557750561/查询我的一个答案,检查是否存在行.
它使用了一些方法,包括一个准备好的语句,这是你应该使用的,因为你可以使用SQL注入.
旁注:您使用的连接API未知.确保您使用与查询相同的一个mysql_.如果是mysqli_PDO或PDO,那些不同的API不会混用.您必须使用相同的连接到查询.
此外,只是一个快速说明if ($sql = 0).单个等号"分配"而不是"比较",如==或===.
你在评论中说:
"如果激活码有效(md5将存在)"
我希望你不要用它来存储密码.如果是这样,不要.该功能不再可用于存储密码.
使用以下之一:
crypt()bcrypt()scrypt()password_hash()功能.其他链接:
看到<?确保启用了短标签.如果没有,请将其更改为<?php.
HTML stickler.
<font color=red>该<font>标签被弃用/ obsole而不是由HTML5支持.
如果您通过电子邮件发送任何内容,最好使用内联CSS.
即: <p style="color:red;">Hello world</p>
以下是一些参考:
| 归档时间: |
|
| 查看次数: |
997 次 |
| 最近记录: |