Пока нет возможности проверить работоспособность, поэтому спрашиваю у вас Написал скрипт Авторизации (пока, далее планирую регистрацию добавить и забыли пароль(как видно по форме)). Возможно криво/косо/неудачно т.к. я новичок Сильно не ругаться Если не трудно указать на ошибки. Только начал изучать Mysqli. Форма Код (PHP): <?php echo '<form action="/a.php" method="post"><h1><b><i>Авторизация</h1></b></i><br> Логин:<br> <input type=text name="login"><br> Пароль:<br> <input type=password name="password"><br><br> <input type=submit name="submit" value="Войти"> </form>'; echo '<br><br> <a href=/reg.php>Регистрация</a><br><br> <a href=/zab.php>Забыли пароль?</a>'; ?> Авторизация: Код (PHP): <?php $login=trim($login); $login=htmlspecialchars($login); $login=stripslashes($login); $password=trim($password); $password=htmlspecialchars($password); $password=stripslashes($password); $login=$_POST['login']; $password=$_POST['password']; if(!$login || !$password){ echo 'Вы не заполнили поля'; echo '<br><br>'; echo '[url="/index.php"]Назад[/url]'; } else { @$db=new mysqli('localhost','name','pass'); if(mysqli_connect_errno()){ echo 'Не удалось соединиться с сервером. Повторите попытку позже...<br><br>'; echo '[url="/index.php"]Назад[/url]'; } else { $c=mysqli_select_db('Auth'); $q="SELECT `Login`=`{$login}`,`Password`=`{$password}` FROM `Auth`"; $query=mysqli_query($q); if($query){ echo "Вы авторизовались!";} else { echo 'Такого пользователя не существует, либо вы ввели неверные данные. Пожалуйста, попробуйте снова.'; echo '<br><br>'; echo '[url="/index.php"]Назад[/url]'; mysqli_close;} } } ?> И да, если можно советы и пожелания Адекватная критика очень приветствуется
А ты осмыслено можешь объяснить, что тут делается?: Код (PHP): <?php $login=trim($login); $login=htmlspecialchars($login); $login=stripslashes($login); $password=trim($password); $password=htmlspecialchars($password); $password=stripslashes($password); $login=$_POST['login']; $password=$_POST['password'];
Ну как бы удаление пробелов, перевод в html-сущности и вывод из массива $_POST. Вроде так. Где накосячил?
$login=trim($login); Короче Во первых в этой переменной ничерта нет Во вторых ты потом заменяешь это ничерта на значение из поста.
Спасибо Сначала вынуть из поста, затем производить действия, я так понял Изначально так и было, не знаю зачем изменил Всегда стараюсь "пробовать думать" Каждый учится на своих ошибках Вот путем проб и ошибок наверно начну писать нормально P.S. Будем надеяться я правильно вас понял
Дальше. Запрос в бд сам пиасал? Уверен в синтаксисе? Пробовал запускать? Всегда надо пробовать =) @ не надо использовать.
Запрос в бд писал сам, по своим знаниям и потому, что видел на разных форумах. Насчет собаки - знаю, что не нужно использовать. В ближайшее время проверю скрипт на работоспособность и отпишусь
Все таки похоже ошибка в запросе у меня. Пришлось перейти от mysqli к mysql (Видимо не дорос еще. Мне нужно, чтобы при запросе в базу, сравнивались данные из формы и искались в бд такие же значения. Если же их нет, то выдавалась ошибка. Я создал через phpmyadmin в таблице значения. Пытался через них зайти, все равно пишет, что нет такого пользователя. Как можно отразить в запросе сравнение данных? форма та же скрипт a.php Код (PHP): <?php if(!$login || !$password){ echo 'Вы не заполнили поля'; echo '<br><br>'; echo '[url="/index.php"]Назад[/url]'; } else { $login=$_POST['login']; $login=trim($login); $login=htmlspecialchars($login); $login=stripslashes($login); $password=$_POST['password']; $password=trim($password); $password=htmlspecialchars($password); $password=stripslashes($password); $dbhost="localhost"; $dbname=""; $dbuser=""; $dbpass=""; $db=mysql_connect($dbhost,$dbuser,$dbpass) or die ('Не могу подключится к БД. Попробуйте позже'); $a=mysql_select_db($dbname) or die ('Не могу подключится к БД'); $q="SELECT Login=`{$login}`, Password=`{$password}` FROM `Auth`"; $query=mysql_query($q); if($query){ echo "Вы авторизовались!";} else { echo 'Такого пользователя не существует, либо вы ввели неверные данные. Пожалуйста, попробуйте снова.'; echo '<br><br>'; echo '[url="/index.php"]Назад[/url]'; mysql_close($db);} } пытался редактировать запрос до Код (PHP): $q="SELECT `Login`, `Password` FROM `Auth` WHERE Login=`{$login}, Password=`{$password}`"; Неудача.
Конкретно где? Да я пока для работоспособности скрипта перешел на mysql. Я просто пока его больше понимаю А потом буду обновлять и дополнять скрипт по мере изучения нового. А mysqli в процессе Ну как, я дальше шагнул в изучении?
если для тебя есть разница между процедурами и mysqli, и ты не видишь кавычки в запросе из 10 слов, то дело плохо =( не буду тебе врать НУКА НАМОРЩИЛ ЛОБ БЫСТРО! а то позорно
Код (PHP): if(!$login || !$password){ echo 'Вы не заполнили поля'; echo '<br><br>'; echo '[url="/index.php"]Назад[/url]'; } else { $login=$_POST['login']; $login=trim($login); $login=htmlspecialchars($login); $login=stripslashes($login); $password=$_POST['password']; $password=trim($password); $password=htmlspecialchars($password); $password=stripslashes($password); шедеврально ))) Игорь, какие нафиг mysqli ??? код выше глянь...
Окей Добавлено спустя 2 минуты 30 секунд: А можно конкретнее по ошибкам и проблемам? Так будет проще, чем просто заходить ссылаться на нечто непонятное, при этом матерясь Ошибка в том что это здесь не нужно будет? Так? Ведь это нужно вроде при регистрации. Или ошибаюсь..
По началу, очень полезно (имхо) про себя проговаривать код, который ты пишешь...давай попробуем Код (PHP): if(!$login || !$password){ echo 'Вы не заполнили поля'; echo '<br><br>'; echo '[url="/index.php"]Назад[/url]'; } else { Если....... делаем то то иначе делаем другое Проговори про себя что ты делаешь....просто попробуй ЗЫ и включи вывод ошибок, пхп все за тебя скажет )
Вы имеете в виду заменить Код (PHP): if(!$login || !$password) на Код (PHP): if(empty($login) or empty ($password){ Насколько я помню, empty проверяет пуста ли переменная.. Или не прав. Только не знаю насчет оператора or. Пройдет ли так или надо через || Добавлено спустя 2 минуты 43 секунды: Так вывод ошибок включен, и я проверял на пустое значение. В форме оставлял пустые поля - скрипт срабатывал и выводил ошибку..
да забудь ты обо всем!!!! Код (PHP): if(!$login || !$password) проговори вот эту строчку вслух....Если (...
замечательно, теперь смотрим вот что: Код (Text): if(!$login || !$password) что у тебя в переменной логин и пароль может быть?
он этого не поймёт. он не знает о нестрогой типизации достаточно. Давайте для начала найдём кавычку...
Числа, текст, символы Добавлено спустя 39 секунд: Пусть продолжает Нужно понимать, что за бред ты пишешь