2015-05-26 83 views
-2

我已经提出忘记密码脚本,用户将被重定向到另一页&他需要输入他的电子邮件ID。如果电子邮件ID存在,则将详细信息发送到该特定的电子邮件ID。如果没有,则发出错误消息。如果电子邮件字段为空,则无法获得错误消息&提交被按下忘记密码的脚本

请帮忙!

<?php 
$email=""; 
$emailErr=""; 
if ($_SERVER["REQUEST_METHOD"] == "POST") 
    { 
    if (empty($_POST["email"])) 
      { 
       $emailErr = "Email is required"; 
      } 
    else 
      { 
     $email = test_input($_POST["email"]); 
       // check if e-mail address is well-formed 
       if (!filter_var($email, FILTER_VALIDATE_EMAIL)) 
        { 
         $emailErr = "Invalid email format"; 
        } 
      } 
    if($_POST['submit']=='Send') 
    { 
      $host="localhost"; // Host name 
         $username="root"; // Mysql username 
        $password=""; // Mysql password 
        $db_name="testmra"; // Database name 
        // Connect to server and select databse. 
        $conn=mysqli_connect($host,$username,$password) or die("cannot connect"); 
        mysqli_select_db($conn,$db_name); 
        $email = mysqli_real_escape_string($conn, $_POST['email']);    
      $query="select * from newuser where emailid='$email'"; 
      $result=mysqli_query($conn,$query) or die('Error: Cannot connect to db'); 
      if(mysqli_num_rows($result)) 
      { 
       $subject="Testing"; 
       $message="Hello Testing"; 
       mail($email, $subject, $message); 

      } 
      else 
      { 
       $emailErr = "No user exist with this email id"; 
      } 
     } 
    } 
?> 
<html> 
<head><title>MRA</title></head> 
<body> 
<form method="post"> 
<table align="center"> 
<tr><td align="right">Email Id :</td><td><input type="text" name="email" value="<?php if (isset($_POST["email"])) { echo $_POST["email"];}?>"></td><td align="left"><input type="submit" name="submit" value="Send"></td></tr> 
<tr><td colspan="3" align="center"><font color="red"><?php echo $emailErr; ?></td></tr> 
</table> 
</form> 
</body> 
</html> 
+0

你应该发布错误 – Med

回答

2

根据你给的错误,改变这一行

$query=mysqli_query($conn,"select * from newuser where emailid='$email'"); 

要这样:

$query="select * from newuser where emailid='$email'"; 

我假设那是李ne 31 ...查询必须是一个字符串,而不是一个对象。

+0

谢谢!有效。我试图提交,但没有在字段中输入电子邮件ID,但它给出的错误信息是没有电子邮件ID匹配,它应该给该电子邮件ID字段为空 –

+1

我很高兴,接受这个答案不会伤害.. 。 –

+0

我能做些什么来按照要求获得错误消息 –

0

尝试发送一个链接,用户与像example.com/reset_password?token=wecmwkwc321k3m1k2随机令牌,暂时保存令牌数据库,并当用户击链接匹配的令牌,并发送用户到该重置页面密码...

+0

但我不希望他重置密码。我希望这只能用于注册用户。如果电子邮件ID匹配,那么它只会发送该特定用户的详细信息。 –

0

请更改您的连接:

$conn=mysqli_connect($host,$username,$password) or die("cannot connect"); 
mysqli_select_db($conn,$db_name); 

到:

$conn = mysqli_connect($host,$username,$password,$db_name) or die("cannot connect"); 

不是改变查询来自:

$query=mysqli_query($conn,"select * from newuser where emailid='$email'"); 
$result=mysqli_query($conn,$query) or die('Error: Cannot connect to db'); 

到:

$query=mysqli_query("select * from newuser where emailid='$email'", $conn) or die('Error: Cannot connect to db'); 
+0

它会造成什么区别? –

+0

Mysqli连接带有db名称的四个参数。 – Iffi

+0

接受!我做了两行 –