powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / php регистрация
6 сообщений из 6, страница 1 из 1
php регистрация
    #37772767
viktor95
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
помогите проблема пишет


Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /home/c/class-1361.hut4.ru/WWW/files/files/testreg.php on line 34

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /home/c/class-1361.hut4.ru/WWW/files/files/testreg.php on line 49

Warning: mysql_fetch_row() expects parameter 1 to be resource, boolean given in /home/c/class-1361.hut4.ru/WWW/files/files/testreg.php on line 55
Извините, введённый вами логин или пароль неверн


вот код
<?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

mysql_select_db('ip');mysql_query ("DELETE FROM oshibka WHERE UNIX_TIMESTAMP() - UNIX_TIMESTAMP(date) > 900");//удаляем ip-адреса ошибавшихся при входе пользователей через 15 минут.
$result = mysql_query("SELECT col FROM oshibka WHERE ip='$ip'",$db);// извлекаем из базы количество неудачных попыток входа за последние 15 у пользователя с данным ip
$myrow = mysql_fetch_array($result);

if ($myrow['col'] > 2) {
//если ошибок больше двух, т.е три, то выдаем сообщение.
exit("Вы набрали логин или пароль неверно 3 раз. Подождите 15 минут до следующей попытки.");
}
$password = md5($password);//шифруем пароль
$password = strrev($password);// для надежности добавим реверс
$password = $password."b3p6f";

//можно добавить несколько своих символов по вкусу, например, вписав "b3p6f". Если этот пароль будут взламывать методом подбора у себя на сервере этой же md5,то явно ничего хорошего не выйдет. Но советую ставить другие символы, можно в начале строки или в середине.
//При этом необходимо увеличить длину поля password в базе. Зашифрованный пароль может получится гораздо большего размера.


$result = mysql_query("SELECT * FROM users WHERE login='$login' AND password='$password'",$db); //извлекаем из базы все данные о пользователе с введенным логином и паролем
$myrow = mysql_fetch_array($result);
if (empty($myrow['id']))
{
//если пользователя с введенным логином и паролем не существует
//Делаем запись о том, что данный ip не смог войти.
$select = mysql_query ("SELECT ip FROM oshibka WHERE ip='$ip'");
$tmp = mysql_fetch_row ($select);
if ($ip == $tmp[0]) {//проверяем, есть ли пользователь в таблице "oshibka"
$result52 = mysql_query("SELECT col FROM oshibka WHERE ip='$ip'",$db);
$myrow52 = mysql_fetch_array($result52);
$col = $myrow52[0] + 1;//прибавляем еще одну попытку неудачного входа
mysql_query ("UPDATE oshibka SET col=$col,date=NOW() WHERE ip='$ip'");
}
else {
mysql_query ("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>";//перенаправляем пользователя на главную страничку, там ему и сообщим об удачном входе
?>
...
Рейтинг: 0 / 0
php регистрация
    #37772794
artas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
viktor95,

после каждой функции mysql_* поставьте print_r(mysql_error());
...
Рейтинг: 0 / 0
php регистрация
    #37772804
viktor95
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я в этом плохо разбираюсь можешь мне вставить куда надо в файле
...
Рейтинг: 0 / 0
php регистрация
    #37772837
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
viktor95,

Что именно вызвало затруднение - найти строки с mysql_query или добавить строки для отображения ошибки?
...
Рейтинг: 0 / 0
php регистрация
    #37772839
phpz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
viktor95,

Дайте адрес сайта и исправим коде прямо на месте lol :))

Код: php
1.
$result = mysql_query("SELECT col FROM oshibka WHERE ip='$ip'",$db);


если не было ошибок, то...
...
Рейтинг: 0 / 0
php регистрация
    #37772843
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще, немного странный стиль. В некоторых mysql_query используется указание на ресурс $db, в некоторых нет. И, да, переменной $db где-нибудь присваивается значение?
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / php регистрация
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]