PHP Warning: mysqli_fetch_row() expects parameter 1 to be mysqli_result, boolean given in testreg.php on line 53
2 ошибки но как их исправить ??
<?php session_start();// вся процедура работает на сессиях. Именно в
ней хранятся данные пользователя, пока он находится на сайте. Очень
важно запустить их в самом начале странички!!!
if (isset($_POST['login'])) { $login = $_POST['login']; if ($login
== '') { unset($login);} } //заносим введенный пользователем логин в переменную $login, если он пустой, то уничтожаем переменную if
(isset($_POST['password'])) { $password=$_POST['password']; if
($password =='') { unset($password);} } //заносим введенный
пользователем пароль в переменную $password, если он пустой, то
уничтожаем переменную
if (empty($login) or empty($password)) //если пользователь не ввел
логин или пароль, то выдаем ошибку и останавливаем скрипт { exit
("Вы ввели не всю информацию, венитесь назад и заполните все
поля!"); } //если логин и пароль введены,то обрабатываем их, чтобы
теги и скрипты не работали, мало ли что люди могут ввести $login =
stripslashes($login); $login = htmlspecialchars($login);
$password = stripslashes($password); $password =
htmlspecialchars($password);
//удаляем лишние пробелы
$login = trim($login);
$password = trim($password);
// заменяем новым********************************************
// подключаемся к базе
include ("bd.php");// файл bd.php должен быть в той же папке, что и все остальные, если это не так, то просто измените
путь // минипроверка на подбор паролей
$ip=getenv("HTTP_X_FORWARDED_FOR");
if (empty($ip) || $ip=='unknown') { $ip=getenv("REMOTE_ADDR"); }//извлекаем ip mysqli_query
($db,"DELETE FROM oshibka WHERE UNIX_TIMESTAMP() -
UNIX_TIMESTAMP(date) > 900");//удаляем ip-адреса ошибавшихся при
входе пользователей через 15 минут. $result =
mysqli_query($db,"SELECT col FROM oshibka WHERE ip='$ip'");//
извлекаем из базы количество неудачных попыток входа за последние
15 у пользователя с данным ip
$myrow = mysqli_fetch_array($result);
if ($myrow['col'] > 2) {
//если ошибок больше двух, т.е три, то выдаем сообщение.
exit("Вы набрали логин или пароль неверно 3 раз. Подождите 15 минут до следующей попытки.");
} $password = md5($password);//шифруем пароль
$password = strrev($password);// для надежности добавим реверс
$password = $password."b3p6f";
//можно добавить несколько своих символов по вкусу, например, вписав "b3p6f". Если этот пароль будут взламывать
методом подбора у себя на сервере этой же md5,то явно ничего
хорошего не выйдет. Но советую ставить другие символы, можно в
начале строки или в середине. //При этом необходимо
увеличить длину поля password в базе. Зашифрованный пароль может
получится гораздо большего размера.
$result = mysqli_query($db,"SELECT * FROM users WHERE
login='$login' AND password='$password'"); //извлекаем из базы
все данные о пользователе с введенным логином и паролем
$myrow = mysqli_fetch_array($result);
if (empty($myrow['id']))
{
//если пользователя с введенным логином и паролем не существует
//Делаем запись о том, что данный ip не смог войти. $select = mysqli_query ($db,"SELECT ip FROM oshibka WHERE
ip='$ip'");
$tmp = mysqli_fetch_row($select);
if ($ip == $tmp[0]) {//проверяем, есть ли пользователь в таблице "oshibka"
$result52 = mysqli_query("SELECT col FROM oshibka WHERE ip='$ip'",$db);
$myrow52 = mysqli_fetch_array($result52); $col = $myrow52[0] + 1;//прибавляем еще одну попытку неудачного входа
mysqli_query ("UPDATE oshibka SET col=$col,date=NOW() WHERE ip='$ip'");
} else {
mysqli_query ($db,"INSERT INTO oshibka (ip,date,col) VALUES ('$ip',NOW(),'1')");
//если за последние 15 минут ошибок не было, то вставляем новую запись в таблицу "oshibka"
}
exit ("Извините, введённый вами логин или пароль неверный.");
}
else { nbsp; //если пароли совпадают, то запускаем пользователю сессию! Можете его поздравить,
он вошел!
$_SESSION['password']=$myrow['password'];
$_SESSION['login']=$myrow['login'];
$_SESSION['id']=$myrow['id'];//эти данные очень часто используются, вот их и будет "носить с собой"
вошедший пользователь
//Далее мы запоминаем данные в куки, для последующего входа.
//ВНИМАНИЕ!!! ДЕЛАЙТЕ ЭТО НА ВАШЕ УСМОТРЕНИЕ, ТАК КАК ДАННЫЕ ХРАНЯТСЯ В КУКАХ БЕЗ ШИФРОВКИ
if ($_POST['save'] == 1) {
//Если пользователь хочет, чтобы его данные сохранились для последующего входа, то сохраняем в куках его браузера
setcookie("login", $_POST["login"], time()+9999999);
setcookie("password", $_POST["password"], time()+9999999);
}}
echo "<html><head><meta http-equiv='Refresh' content='0; URL=index.php'></head></html>";//перенаправляем
пользователя на главную страничку, там ему и сообщим об удачном
входе ?>
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Доброго времени сутокСуть проблемы такова: есть сайт, на котором лежат примеры форм
Есть ли возможность отправить на печать и отправить на почту документ сформированный с помощью php или js? Для js использую jszip
Надо настроить редирект с страниц старого сайта на новый, но не очполучается
Есть сайт, созданный без использования движковХочу прикрутить форму обратной связи, чтобы посетитель оставил свой номер и имя в специальной...