Intereting Posts
Как обновить одно раскрывающееся меню в соответствии со значениями, выбранными в другом Шведские символы и формы входа PHP / MYSQL Как правильно загрузить jQuery в WordPress Увеличение рабочей нагрузки сервера при изменении размера файла php Увеличение максимального размера сообщения Можно ли использовать изображение типа объекта в приложении facebook? Как оптимизировать запрос mysql, получая категории и подкатегории PHP exec () не будет выполнять команду оболочки при ее выполнении через браузер Как получить данные из отношений с объединениями в yii Почему неопределенные константы оцениваются как истинные? Symfony 1.4: PHP Неустранимая ошибка: допустимый размер памяти 33554432 байт исчерпан NginX выдает ошибку HTTP 499 через 60 секунд, несмотря на конфигурацию. (PHP и AWS) PHPExcel – установить ячейки как строку при загрузке из массива Ошибка утверждения xpath с динамическим xpath Перенос сеанса через сервер в PHP

Забыли пароль? Скрипт PHP mysqli

Привет, я пытаюсь заставить скрипт забыть пароль, поэтому, когда пользователь вводит в него электронную почту, он будет проверять, что если введенный адрес электронной почты соответствует электронной почте базы данных, если да, то отправляет письмо с подтверждением на его электронный адрес. Он работал нормально до тех пор, пока я не использовал mysql, но после его преобразования в mysqli он не работал. Когда пользователь вводит в него электронную почту, он не отправляет электронную почту или даже не отвечает на эхо-сообщение или ошибки.

Вот мой скрипт Forgot.php (ОБНОВЛЕНО СЦЕНАРИЙ)

<?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> 

Я думаю, что u должен использовать метод mysqli_num_rows ($ query) внутри вашего условия if, чтобы проверить, существует ли почта или нет.

например:

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

Если я правильно его вижу, то $_GET['ID'] не установлен, потому что вы отправляете форму в forgot.php без значения GET с именем ID

Я попытался исправить это, используя тест на своем веб-сайте, и ваши коды должны быть такими, даже если есть много ошибок, и ваша база данных может легко «взломать» анонимных пользователей, чтобы показать проблему. 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> 

Это сработало после того, как я протестировал: /