在从头开始构建登录/注册系统的过程中,为了自学PHP、mysql等,我目前正在尝试用令牌构建一个“忘记密码”的电子邮件链接系统,以重置被遗忘的密码。
我的数据库列设置如下: id、name、email、username、password (别担心,不是纯文本!)、日期、配置文件、填充、标记(最终标记为发送电子邮件以进行重置)、used (ENUM 0、1)。
现在是PHP
<?php
if(!isset($_GET['email'])){
                  echo'<form action="forgotpassword.php">
                      Enter Your Email Id:
                         <input type="text" name="email" />
                        <input type="submit" value="Reset My Password" />
                         </form>'; exit();
                   }
$email=$_GET['email'];
function connect() {
        $link = mysql_connect('localhost', DB_USER, DB_PASS);
        if (!$link) {
            die('Could not connect: ' . mysql_error());
        }
        $db_selected = mysql_select_db(DB_NAME, $link);
        if (!$db_selected) {
            die('Can\'t use ' . DB_NAME . ': ' . mysql_error());
        }
    }
    $q="SELECT email FROM users WHERE email='".$email."'";
    $r=mysql_query($q);
    $n=mysql_num_rows($r);
if($n==0){echo "Email id is not registered";
    die();
}代码继续进行,但我目前正在停止使用“电子邮件id未注册”。但是,我在数据库中有一个测试条目,其中存储了电子邮件。当选择“重置我的密码”按钮时,会显示错误。
我知道我目前没有利用事先准备好的声明。希望在我学会如何使用带绑定的东西之前,能看到这个效果。
最终,问题是,我试图选择在“用户”表中注册的电子邮件,其中的电子邮件设置为$_GET' email‘,我不明白为什么这不起作用?
谢谢你的帮助。如果需要更多的信息,请告诉我。
发布于 2017-04-21 07:38:15
//You can use this code : 
<?php
if (!isset($_GET['email'])) {
    echo '<form action="">
    Enter Your Email Id:
    <input type="text" name="email" />
    <input type="submit" value="Reset My Password" />
    </form>';
    exit();
}
define('DB_USER', '');
define('DB_PASS', '');
define('DB_NAME', '');
$email = $_GET['email'];
function connect()
{
    $link = mysql_connect('localhost', DB_USER, DB_PASS);
    if (!$link) {
        die('Could not connect: ' . mysql_error());
    }
    $db_selected = mysql_select_db(DB_NAME, $link);
    if (!$db_selected) {
        die('Can\'t use ' . DB_NAME . ': ' . mysql_error());
    }
}
connect();
$q = "SELECT email FROM users WHERE LCASE(TRIM(email))='" . strtolower(trim($email)) . "'";
$r = mysql_query($q);
$n = mysql_num_rows($r);
if ($n == 0) {
    echo "Email id is not registered";
    die();
}发布于 2017-04-21 03:40:46
connect();之前添加$q="SELECT email FROM users WHERE email='".$email."'";$q="SELECT email FROM users WHERE email='".trim($email)."'";剪裁将有助于删除空白(如果有的话)https://stackoverflow.com/questions/43533236
复制相似问题