首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >忘记密码电子邮件链接(php)返回错误,尽管电子邮件张贴在数据库

忘记密码电子邮件链接(php)返回错误,尽管电子邮件张贴在数据库
EN

Stack Overflow用户
提问于 2017-04-21 03:03:43
回答 2查看 84关注 0票数 0

在从头开始构建登录/注册系统的过程中,为了自学PHP、mysql等,我目前正在尝试用令牌构建一个“忘记密码”的电子邮件链接系统,以重置被遗忘的密码。

我的数据库列设置如下: id、name、email、username、password (别担心,不是纯文本!)、日期、配置文件、填充、标记(最终标记为发送电子邮件以进行重置)、used (ENUM 0、1)。

现在是PHP

代码语言:javascript
运行
复制
<?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‘,我不明白为什么这不起作用?

谢谢你的帮助。如果需要更多的信息,请告诉我。

EN

Stack Overflow用户

回答已采纳

发布于 2017-04-21 07:38:15

代码语言:javascript
运行
复制
//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();

}
票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43533236

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档