|
|
|
| Вот уже давно парюсь над проблемой сессий :(
Мне надо, чтобы при введени логина и пароля и нажатии кнопки "Вход", загружались данные из базы майскюель (причем соответсвующие даному человеку).
Если говорить несколько упрощенно, то получается так:
Например в таблице 3 столбца: name, pass, text
И есть 2 пользователя:
1.name="vasya"
pass="123"
text="999"
2.name="galya"
pass="abur"
text="my_text"
Теперь задача:
Как сделать, чтобы при вводе логина vasya и пароля 123, выводился текст 999,
а при вооде логина galya и пароля abur, выводился текст my_text
Пожайлуста, помогите.
Заранее спасибо | |
|
|
|
|
|
|
|
для: _Scorpion_
(13.08.2005 в 09:30)
| | А при чем тут сессии, или хочешь сделать на них авторизацию? | |
|
|
|
|
|
|
|
для: Гость
(13.08.2005 в 10:19)
| | ну да, авторизацию...разве для этого не нужны сессии? :-0 | |
|
|
|
|
|
|
|
для: _Scorpion_
(13.08.2005 в 09:30)
| | Чтобы просто при вводе логина пароля вывести текст не надо сессий
Представим что форма посылает данные
$POST=array('name'=>'vasya','pass'=>'123')
Предполагаем вид таблицы такой:
users:
id | name | pass | text
обрабатываем (без всякой защиты пока, просто принцип)
<?
$sql='select text from users where name=\''.$POST['name'].'\' and pass=\''.$POST['pass'].'\'';
$query=mysql_query($sql);
echo mysql_result($query,0,0);
?>
|
Вот и всё, только это не авторизация. Ваш сайт "забудет" о пользователе уже на следующей странице. Для того что бы улучшить память применяется следующее.
Создадим таблицу sessions
sid | user_id
в поле sid будем хранить уникальный идентификатор сессии, user_id думаю понятно...
Вот далее модернизируем скрипт приводившийся выше:
<?
$sql='select id,text from users where name=\''.$POST['name'].'\' and pass=\''.$POST['pass'].'\'';
$query=mysql_query($sql);
$r=mysql_fetch_assoc($query);
// Если пароль и логин верны:
if(!empty($r)){
session_start();
$sid=session_id();
$sql='insert into session(sid,user_id) values(\''.$sid.'\,'.$r['id'].'')';
mysql_query($sql);
}else{
echo "Не правильный логин/пароль";
exit;
}
?>
|
Теперь мы имеев в таблице сессионс сеанс пользователя которого мы всегда можем узнать по sid и вытащить его из users по id/
На любой странице сайта можно теперь указать:
<?
$sql='select text from users t1,sessions t2 where t1.id=t2.user_id and t2.sid=\''.$GLOBALS['PHPSESSID'].'\'';
$query=mysql_query($sql);
$r=mysql_result($query,0,0);
if(!empty($r)){
echo $r;
}else{
echo "Здравствуй Гость!";
}
?>
|
Естественно всё вышесказанное лучше организовать в виде функций | |
|
|
|
|
|
|
|
для: axxil
(13.08.2005 в 11:05)
| | Пасиба | |
|
|
|