Ну да, так. Я же готовый код выложил. Покажи выхлоп. --- Добавлено --- Стой, только die(); после цикла впили, а то ошибок щас нахватаешся.
вот : PHP: <?php $db = mysqli_connect ($localhost, $root, $ $pr2); $q = $db->query ("SHOW DATABASES"); while ($res = $q->fetch_assoc()) { var_dump ($res); echo "<br>"; die(); } $login = mysql_real_escape_string($_POST['login']); $password = mysql_real_escape_string($_POST['password']); $email = mysql_real_escape_string($_POST['email']); // проверяем, если юзер в таблице с таким же логином $query = "SELECT `id` FROM `users` WHERE `login`='{$login}' LIMIT 1"; $sql = mysql_query($query) or die(mysql_error()); if (mysql_num_rows($sql)==1) { //если есть //генерируем пароль $simvols = array ("0","1","2","3","4","5","6","7","8","9", "a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z", "A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"); for ($key = 0; $key < 6; $key++) { shuffle ($simvols); $string = $string.$simvols[1]; } //перегоняем в md5 хэш $pass = md5(md5($string)); //переписываем пороль в базе уже хэшированый $query = "UPDATE `users` SET `password`='{$pass}' WHERE `login`='{$login}' "; $sql = mysql_query($query) or die(mysql_error()); //получаем мыло из базы для нашего пользователя $query = "SELECT `email` FROM `users` WHERE `login`='{$login}' LIMIT 1"; $sql = mysql_query($query) or die(mysql_error()); $row = mysql_fetch_assoc($sql); $mail = $row['email']; //шлём пороль на это мыло mail($mail, "Запрос на востонавление пороля", "Здравствуйте $login ваш новый пороль : $string"); } ?> И такая ошибка : array(1) { ["Database"]=> string(18) "information_schema" } --- Добавлено --- Если хочешь, могу дать проект. Может так быстрее будет, ты то хорошо всё умеешь.
PHP: <?php $db = mysqli_connect ($localhost, $root, $ $pr2); $q = $db->query ("SHOW DATABASES"); die(); while ($res = $q->fetch_assoc()) { var_dump ($res); echo "<br>"; } $login = mysql_real_escape_string($_POST['login']); $password = mysql_real_escape_string($_POST['password']); $email = mysql_real_escape_string($_POST['email']); // проверяем, если юзер в таблице с таким же логином $query = "SELECT `id` FROM `users` WHERE `login`='{$login}' LIMIT 1"; $sql = mysql_query($query) or die(mysql_error()); if (mysql_num_rows($sql)==1) { //если есть //генерируем пароль $simvols = array ("0","1","2","3","4","5","6","7","8","9", "a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z", "A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"); for ($key = 0; $key < 6; $key++) { shuffle ($simvols); $string = $string.$simvols[1]; } //перегоняем в md5 хэш $pass = md5(md5($string)); //переписываем пороль в базе уже хэшированый $query = "UPDATE `users` SET `password`='{$pass}' WHERE `login`='{$login}' "; $sql = mysql_query($query) or die(mysql_error()); //получаем мыло из базы для нашего пользователя $query = "SELECT `email` FROM `users` WHERE `login`='{$login}' LIMIT 1"; $sql = mysql_query($query) or die(mysql_error()); $row = mysql_fetch_assoc($sql); $mail = $row['email']; //шлём пороль на это мыло mail($mail, "Запрос на востонавление пороля", "Здравствуйте $login ваш новый пороль : $string"); } ?> Мне кажется что получилось. Больше ничего не пишет
Ты понимаешь вообще что ты делаешь? Давай ты успокоишся, отдышишся, почитаешь что делает die(), что такое цикл, каким символом он обычно заканчивается, потом вернёшся, и мы с тобой продолжим)
Щас умру со смеху Ну конечно не пишет... Ты остановил скрипт перед его работой. Я же говорю, --- Добавлено --- Отличный способ решать проблемы. Когда не будет что-то получаться - напишу die (); в самом начале скрипта и сдам проект. А заказчик пусть потом радуется что у него ошибок нет. Да, пусть сайт не работает, зато ошибок нет
Читаю уже... Узнал, что есть Цикл с предусловием (while); Цикл с постусловием (do-while); Цикл со счетчиком (for); Специальный цикл перебора массивов (foreach).
Молодец. Читай дальше. Можешь не докладывать о каждом шаге. Просто прочти то, о чём я писал, и возвращайся когда поймёшь в чём прикол того чуда, которое ты сделал.
Ну я почитал про die. Допустим есть такая команда: $Link = mysql_connect ($Host, $User, $Password) or die("Couldn't connect to the database!"); Ну тут типа php попытаться установить связь с MySQL и если сделать это не удаётся, так тот die высветит ошибку с тем текстом. Ну короче так понял что он может ошибки сообщать.
Ну вот, молодец. Это, конечно никак не относится к тому приколу, который ты сделал, но уже какие-то знания почерпнул. Ты почитай в официальной документации, что вообще делает die().
вот что я еще прочёл: Дальнейшее распространение ошибок можно остановить с помощью ин струкции die. Эта инструкция заставляет РНР прекратить исполнение сцена рия, как только происходит первая ошибка и дальнейшая работа невозможна. Она также может отправить в браузер сообщение об ошибке или вызвать функ цию.
Не совсем то что нужно, но в целом - да, это так. А вообще - die тупо прерывает работу скрипта. И если поставить эту функцию перед каким либо кодом, то этот код, соответственно, не используется. А теперь объясни мне, что делает этот код:
Ну сначала пытается подключиться к базе данных. Тогда while будет выполнять что-то. Fetch_assoc - Обрабатывает ряд результата запроса и возвращает ассоциативный массив. Var_dumb - Эта функция возвращает структурированную информацию об одном или более выражений, которая включает его тип и значение.Массивы обрабатываются рекурсивно со значениями, предназначенными для показа структуры.Ну я только не знаю что такое $res
Ничего не пропустил? А die()? --- Добавлено --- Это называется массив. Если ты не знал, то в php все выражения, перед которыми есть $ это либо переменные, либо массивы. В данном случаи - это массив.
Да не за что. Я надеюсь, ты разобрался? --- Добавлено --- Смысл не в том, чтобы по задрачивать тебя, а в том, чтобы ты понял как это работает, и не делал таких глупых ошибок.
Так значит вот так должно быть : PHP: $db = mysqli_connect ($localhost, $root, $ $pr2); $q = $db->query ("SHOW DATABASES"); while ($res = $q->fetch_assoc()) die("");{ var_dump ($res); echo "<br>"; } Так сюда die ставить? Просто, мне трудно разобраться куда поставить die. знаю что после цикла, но где точно так не очень ))
ААА, вспомнил что такое цикл. Ну я думал что die должен тут быть : PHP: $db = mysqli_connect ($localhost, $root, $ $pr2); $q = $db->query ("SHOW DATABASES"); while ($res = $q->fetch_assoc()) ;die(""){ var_dump ($res); echo "<br>"; } Ну так цикл заканчивается после " ; " Например : while ($res = $q->fetch_assoc()) ; <--- это конец --- Добавлено --- или может так : PHP: $db = mysqli_connect ($localhost, $root, $ $pr2); $q = $db->query ("SHOW DATABASES"); while ($res = $q->fetch_assoc()) die("");{ var_dump ($res); echo "<br>"; }
Неееет. Это только нечало. Конец это где "}". Вот там и ставь die(); И говори выхлоп. Спать уже хочу)
Ааааа, всё ясно. Я так и бы подумавши. Ну так вот мой код : PHP: <?php $db = mysqli_connect ($localhost, $root, $ $pr2); $q = $db->query ("SHOW DATABASES"); while ($res = $q->fetch_assoc()) ;{ var_dump ($res); echo "<br>"; } die(""); $login = mysql_real_escape_string($_POST['login']); $password = mysql_real_escape_string($_POST['password']); $email = mysql_real_escape_string($_POST['email']); // проверяем, если юзер в таблице с таким же логином $query = "SELECT `id` FROM `users` WHERE `login`='{$login}' LIMIT 1"; $sql = mysql_query($query) or die(mysql_error()); if (mysql_num_rows($sql)==1) { //если есть //генерируем пароль $simvols = array ("0","1","2","3","4","5","6","7","8","9", "a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z", "A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"); for ($key = 0; $key < 6; $key++) { shuffle ($simvols); $string = $string.$simvols[1]; } //перегоняем в md5 хэш $pass = md5(md5($string)); //переписываем пороль в базе уже хэшированый $query = "UPDATE `users` SET `password`='{$pass}' WHERE `login`='{$login}' "; $sql = mysql_query($query) or die(mysql_error()); //получаем мыло из базы для нашего пользователя $query = "SELECT `email` FROM `users` WHERE `login`='{$login}' LIMIT 1"; $sql = mysql_query($query) or die(mysql_error()); $row = mysql_fetch_assoc($sql); $mail = $row['email']; //шлём пороль на это мыло mail($mail, "Запрос на востонавление пороля", "Здравствуйте $login ваш новый пороль : $string"); } ?> На сайте написано : NULL