2015-05-26 7 views
-2

Я создал сценарий Забыли пароль, где пользователь будет перенаправлен на другую страницу & ему необходимо ввести свой идентификатор электронной почты. Если присутствует идентификатор электронной почты, отправьте данные на этот конкретный идентификатор электронной почты. Если нет, то сообщите об ошибке. Невозможно получить сообщение об ошибке, если поле электронной почты пуста. & submit is pressСценарий для Забыли пароль

Пожалуйста, помогите!

<?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'"; 

Я предполагаю, что li ne 31 ... Запрос должен быть строкой, а не объектом.

+0

Спасибо !. Это сработало. Я попытался отправить без ввода идентификатора электронной почты в поле, но сообщение об ошибке, которое оно дает, - это отсутствие идентификатора эл. Почты, где оно должно указывать, что поле идентификатора электронной почты пустое. –

+1

Я рад, принимая это, поскольку ответ не повредит .. . –

+0

Что я могу сделать, чтобы получить сообщение об ошибке согласно требованию –

0

Попробуйте отправить ссылку на пользователь со случайным маркером как example.com/reset_password?token=wecmwkwc321k3m1k2, сохраните маркер временно в дБ, а когда пользователь попал на матч жетоны ссылки и отправить пользователь на страницу, сбрасывающую пароли ...

+0

Но я не хочу, чтобы он сбросил пароль. Я хочу, чтобы это использовалось только для зарегистрированных пользователей. Если идентификатор электронной почты согласован, он будет отправлять данные только для этого конкретного пользователя. –

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

Принято! Я сделал это в 2 строках –

Смежные вопросы