忘记密码脚本PHP mysqli

时间:2013-12-02 12:28:30

标签: php mysql email mysqli

您好我正在尝试使脚本忘记密码,因此当用户在其中输入电子邮件时,它将验证输入的电子邮件是否与数据库电子邮件匹配,如果是,则将确认电子邮件发送到他的电子邮件地址。       它工作正常,直到我使用mysql但转换为mysqli后它无法正常工作。当用户在其中输入电子邮件时,它不会发送电子邮件,甚至不会回复发送的电子邮件或没有错误。

这是我的Forgot.php脚本(更新的脚本 AGAIN

<?php 
    error_reporting(0);
    if($_POST['submit']=='Send') {
        //keep it inside
        $email=$_POST['email'];

        $con=mysqli_connect("lovehost","root","123","user");
        // Check connection
        if (mysqli_connect_errno()) {
            echo "Failed to connect to MySQL: " . mysqli_connect_error();
        }
        $query = mysqli_query($con,"select * from login where user_email='$email'") or die(mysqli_error($con)); 

        $numrows = $query->num_rows();                                  

        if ($numrows == 1) {  
            $code=rand(100,999);
            $message='You activation link is: http://bing.fun2pk.com/forgot.php?email=$email&code=$code';
            mail($email, "Subject Goes Here", $message);
            echo 'Email sent';
        } else {
            echo 'No user exist with this email id';
        }
    }
?>
<form action="forgot.php" method="post">
    Enter you email ID: <input type="text" name="email">
    <input type="submit" name="submit" value="Send">
</form>

3 个答案:

答案 0 :(得分:0)

我想你应该用 if条件中的mysqli_num_rows($ query)方法,用于检查电子邮件是否存在。

例如:

if (mysqli_num_rows ($query)==1)
{
//your mail method
}

答案 1 :(得分:0)

如果我看到它正确,则$_GET['ID']未设置,因为您将表单提交到forgot.php而没有名为ID的GET值

答案 2 :(得分:0)

我尝试在我的网站上使用测试修复此问题,您的代码应该是这样的 即使有很多错误,你的数据库很容易被匿名用户“黑客攻击”,只是为了表明问题。 的 Forgot.php

<?php 
    error_reporting(0);
    require('includes/db.php');
    if (isset($_POST['email'])) {
        $email = $_POST['email'];
        $code = rand(100,999);
        $query = "SELECT * FROM `users` WHERE email = '$email'";
        $result = mysql_query($query) or die(mysql_error());
        $count = mysql_num_rows($result);

        if ($count == 1) {
            mysql_query("update users set activation_code='$code' where email='$email'");
            //That Mail code should be put here    <----------------------
        } else {
        }
        echo " Something Here for a response";
    }
?>

<form action="" method="post">
    Enter you email ID: <input type="text" name="email">
    <input type="submit" name="submit" value="Send">
</form>

在我测试之后,这工作正常:/