我的问题是,条件是(isset ...是不可见的。直到现在我没有使用PDO所以如果有人看到我的问题的解决方案,请帮助我,如果可以,谢谢。
<?php
mysql_connect("localhost", "xxxx", "") or die(mysql_error()); // Connect to database server(localhost) with username and password.
mysql_select_db("database") or die(mysql_error()); // Select registration database.
无法看到此if条件
if (isset($_GET['e_mail']) && !empty($_GET['e_mail']) AND isset($_GET['hash']) && !empty($_GET['hash'])){
// Verify data
$email = mysql_escape_string($_GET['e_mail']); // Set email variable
$hash = mysql_escape_string($_GET['hash']); // Set hash variable
$search = mysql_query("SELECT e_mail, hash, active FROM users WHERE e_mail='".$email."' AND hash='".$hash."' AND active='0'") or die(mysql_error());
$match = mysql_num_rows($search);
我想这样做:
if($match > 0){
// We have a match, activate the account
mysql_query("UPDATE users SET active='1' WHERE e_mail='".$email."' AND hash='".$hash."' AND active='0'") or die(mysql_error());
echo '<div class="statusmsg">Your account has been activated, you can now login</div>';
}else{
// No match -> invalid url or account has already been activated.
echo '<div class="statusmsg">The url is either invalid or you already have activated your account.</div>';
}
}
如果条件执行此操作:
else{
// Invalid approach
echo '<div class="statusmsg">Invalid approach, please use the link that has been send to your email.</div>';
}
?>
答案 0 :(得分:0)
我发现错误在哪里, 这听起来令人难以置信,但错误是在数据库中设置了底线(_),当我在数据库中输入电子邮件而不是 e_mail 时并纠正一切,它完美地运作。
我上传了答案,因此它可以帮助处理相同情况的其他人。
我非常感谢Jay Blanchard在PDO工作的建议,我会发送他的设备,因为它很有说服力,谢谢Fred的回答。
现在,如果有人可以帮我在PDO中执行(编写,制作)此代码,并向我解释PDO如何工作以更好地理解它。谢谢!