Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.03.2009, 16:29   #1
spein
Программист
Форумчанин
 
Аватар для spein
 
Регистрация: 27.02.2009
Сообщений: 505
По умолчанию Сессии + форма входа

Написал вот такую вещ:
Код:
<html>
<title>Login form</title>
<form method="post">
<table border="0"><tr>
<td>ВВедите имя:</td><td><input name="login"></td><tr>
<td>Пароль:</td><td><input name="pass" type="password"></td>
</table>
<input type="submit" value="ok">
</form>
<?php
include("config.php");
if ($_REQUES['login'] and $_REQUEST['password'])
{
$query = "SELECT * FROM users WHERE login='$_REQUEST[login]' and pass='$_REQUEST[password]'"; 
$resultat = mysql_query($query) or die(mysql_error()); 
$number = mysql_num_rows($resultat);
if ($number == 0) 
{echo "Неправильный логин или пароль. Попробуйте еще раз!";}
else
{echo "Такой пользователь есть";}
}
?>
Проблема в том, что не работает.. Подскажите что-то. И еще объясните прикол с сессиями. С меня "+"
there are no limits when you're software engineer
spein вне форума Ответить с цитированием
Старый 27.03.2009, 17:21   #2
SkyM@n
Laravel/Vue expert
Старожил Подтвердите свой е-майл
 
Аватар для SkyM@n
 
Регистрация: 08.08.2007
Сообщений: 2,832
По умолчанию

Эм.... А где тут сессии, а?
SkyM@n вне форума Ответить с цитированием
Старый 27.03.2009, 17:24   #3
spein
Программист
Форумчанин
 
Аватар для spein
 
Регистрация: 27.02.2009
Сообщений: 505
По умолчанию

То я наперед спросил)).
С сессиями вот. Ну это я просто пробую (пока).
Код:
<?
session_start ();
?>
<html>
<title>Login form</title>
<form method="post">
<table border="0"><tr>
<td>ВВедите имя:</td><td><input name="login"></td><tr>
<td>Пароль:</td><td><input name="pass" type="password"></td>
</table>
<input type="submit" value="ok">
</form>
<?php
$login = $_REQUEST['login'];
$pass = $_REQUEST['password'];
include("config.php");
$query = "SELECT * FROM users WHERE login='$login' AND pass='$pass'";
$result = mysql_query($login) or die (mysql_error());
if (mysql_num_rows($result) !== 0)
{
echo "Неправильный логин или пароль. Попробуйте еще раз!";
}
else
{
$_SESSION['user'] = $login;
$_SESSION['pass'] = $pass;
echo "Пользователь - ", $_SESSION['user'], "<br>";
echo "Пароль - ", $_SESSION['pass'];
}
?>
Очень Вас прошу. скажите где проблема)
Скрипт просто не работает или выдает
Цитата:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'spein' at line 1
there are no limits when you're software engineer
spein вне форума Ответить с цитированием
Старый 27.03.2009, 17:31   #4
SkyM@n
Laravel/Vue expert
Старожил Подтвердите свой е-майл
 
Аватар для SkyM@n
 
Регистрация: 08.08.2007
Сообщений: 2,832
По умолчанию

Поставьте после
Цитата:
$query = "SELECT * FROM users WHERE login='$login' AND pass='$pass'";
эту строку:
Код:
die ($query);

Что показало?
SkyM@n вне форума Ответить с цитированием
Старый 27.03.2009, 17:32   #5
spein
Программист
Форумчанин
 
Аватар для spein
 
Регистрация: 27.02.2009
Сообщений: 505
По умолчанию

Код:
SELECT * FROM users WHERE login='spein' AND pass=''
матюкается...
Такое появляется после формы
there are no limits when you're software engineer
spein вне форума Ответить с цитированием
Старый 27.03.2009, 17:50   #6
spein
Программист
Форумчанин
 
Аватар для spein
 
Регистрация: 27.02.2009
Сообщений: 505
По умолчанию

Нашел проблему))
Код:
$result = mysql_query($login) or die (mysql_error());
заменил $login на $query

Бывает же такое) С переменными запутался))


Как можно проверить сравнивает ли он пароли?
there are no limits when you're software engineer
spein вне форума Ответить с цитированием
Старый 27.03.2009, 17:57   #7
SkyM@n
Laravel/Vue expert
Старожил Подтвердите свой е-майл
 
Аватар для SkyM@n
 
Регистрация: 08.08.2007
Сообщений: 2,832
По умолчанию

Цитата:
Сообщение от spein Посмотреть сообщение
Нашел проблему))
Код:
$result = mysql_query($login) or die (mysql_error());
заменил $login на $query

Бывает же такое) С переменными запутался))


Как можно проверить сравнивает ли он пароли?
))) Бывает...
Как это - сравнивает? Кто сравнивает?
SkyM@n вне форума Ответить с цитированием
Старый 27.03.2009, 18:01   #8
spein
Программист
Форумчанин
 
Аватар для spein
 
Регистрация: 27.02.2009
Сообщений: 505
По умолчанию

Вот скрипт я переделал
Код:
<?
session_start ();
?>
<html>
<title>Login form</title>
<form method="post">
<table border="0"><tr>
<td>ВВедите имя:</td><td><input name="login"></td><tr>
<td>Пароль:</td><td><input name="pass" type="password"></td>
</table>
<input type="submit" value="ok">
</form>
<?php
$login = $_REQUEST['login'];
$pass = $_REQUEST['password'];
include("config.php");
$query = "SELECT * FROM users WHERE pass='$pass' AND login='$login'";
$result = mysql_query($query) or die (mysql_error());
if (mysql_num_rows($result) == 0)
{
echo "Неправильный логин или пароль. Попробуйте еще раз!";
}
else
{
$_SESSION['user'] = $login;
$_SESSION['pass'] = $pass;
echo "Пользователь - ", $_SESSION['user'], "<br>";
echo "Пароль - ", $_SESSION['pass'];
}
?>
Получается в конце концов сколько я правильно ввожу выводит что пароль неверный. В данном случае в чем проблема?



опа!!!
И еще плюс когда неправильное ввожу показывается вот такое
Цитата:
Illegal mix of collations (cp1251_general_ci,IMPLICIT) and (latin1_swedish_ci,COERCIBLE) for operation '='
there are no limits when you're software engineer
spein вне форума Ответить с цитированием
Старый 27.03.2009, 18:04   #9
SkyM@n
Laravel/Vue expert
Старожил Подтвердите свой е-майл
 
Аватар для SkyM@n
 
Регистрация: 08.08.2007
Сообщений: 2,832
По умолчанию

1. Замените $login = $_REQUEST['login']; на $login = $_POST['login'];
2. Фильтруйте ввод от возможного инклюдинга.
3. $query = "SELECT * FROM users WHERE pass='$pass' AND login='$login'"; - ошибка в выражении (в конце разберитесь с апострофами)
SkyM@n вне форума Ответить с цитированием
Старый 27.03.2009, 18:10   #10
spein
Программист
Форумчанин
 
Аватар для spein
 
Регистрация: 27.02.2009
Сообщений: 505
По умолчанию

Извиняюсь, но проблема остается все та же. В любом случае выдает проблему с паролем...
there are no limits when you're software engineer
spein вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сессии limon PHP 19 29.11.2008 22:46
Контроль входа в систему Arigato Secured Arigato Софт 13 11.11.2008 15:59
форма входа на Flash vanDJ Софт 4 08.08.2008 10:01
не найдена точка входа. Черничный Общие вопросы Delphi 17 23.07.2008 11:54
Не работает форма входа. vvsh PHP 12 10.06.2008 17:00