[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как занести id из базы в Session?
Lightt
Есть форма авторизации, если Логин и пароль совпадают, пользователь заносится в сессию.
Мне нажно чтобы в сессию также заносился id этого пользователя.
Но как построить запрос, не могу сообразить.
Т.е. получается если Логин и пароль пользователя подошел, он должен занести id этого пользователя в сессию.
Сама таблица выглядит вот так -
Id Login Password
1 FFF 111
2 GGG 222
И вот как именно сделать так что бы если было введенно FFF и 111 он выдал $_SESSION['id'] = 1 подскажите пожалуйста =)

<?php 
session_start();
?>
Вы вошли как:<?php echo "<b>".$_SESSION['user']."</b>" ?><br>
Ваше id: <?php echo "<b>".$_SESSION['id']."</b>" ?><br>

<
center><form method="POST">
Имя пользователя<input type="text" value="" name="username"><br>
Пароль<input type="password" value="" name="password"><br>
id<input type="text" value="" name="id">
<
td align="right"><input type="submit" value="Войти" name="knop"></td>
</
form>

<?php
$link = mysql_connect ( "localhost" , "root" , "" )
or die ( "Could not connect: " . mysql_error ());
mysql_select_db('mistery',$link) or die(mysql_error());

if($_SERVER["REQUEST_METHOD"] == "POST")
{
$username = $_POST['username'];
$password = $_POST['password'];
$id = $_POST['id'];

$query="SELECT * FROM client WHERE Login='$username' and Password='$password' ";
while ($all_order[] = mysql_fetch_assoc($result)) {}

$result=mysql_query($query);
$count=mysql_num_rows($result);

if($count==1)
{
session_start();
$_SESSION['user'] = $_POST['username'];
$_SESSION['id'] = $_POST['id'];
header("Location: sessions.php");
}} ?>




Спустя 24 минуты, 12 секунд (22.05.2011 - 17:31) Krevedko написал(а):
id<input type="text" value="" name="id">

а что кроме имени и пароля надо еще свое ид вводить ?

$query="SELECT * FROM client WHERE Login='$username' and Password='$password' ";
$result=mysql_query($query);
if(mysql_num_rows($result) > 0)
{
$row = mysql_fetch_assoc($result));
$_SESSION['user'] = $_POST['username'];
$_SESSION['id'] = $row['id'];
}
типа такого что-то

Спустя 7 минут, 47 секунд (22.05.2011 - 17:39) Lightt написал(а):
Нет вводить не надо, это я проверял, заносится ли он в принципе =)

Думал в это поле занести конкретный id в value, а поле скрыть...

Но конкретно занести id того пользователя занести не могу, получается только вывести всех, или же в самом запросе выводить -
SELECT * FROM client  WHERE id=1

Но это не подходит =(

Спустя 12 минут, 12 секунд (22.05.2011 - 17:51) KonstantinK написал(а):
А вот так что не сработает?
$all_order[] = mysql_fetch_assoc($result)
if($count==1)
{
session_start();
$_SESSION['user'] = $_POST['username'];
$_SESSION['id] = $all_order[0]['id'];
header("Location: sessions.php");


ну тут немного подрехтовать логику сам уже, чтоб красивее было я идею даю.

Спустя 1 минута, 21 секунда (22.05.2011 - 17:53) Krevedko написал(а):
Стандартная последовательность действий:
1) юзер вводит логин и пароль
2) в базе проверяется, есть ли такой юзер
3) если есть, его ид, полученное из запроса (имя итд, в зависимости от нужд) заносится в сессию.

Что непонятно конкретно ?

Спустя 2 минуты, 19 секунд (22.05.2011 - 17:55) Krevedko написал(а):
добавлю.
while ($all_order[] = mysql_fetch_assoc($result)) {}

1) зачем цикл...у тебя же одна запись на каждую связку логин-пароль. или нет ?
2) сессия у тебя уже открыта вначале скрипта. незачем стартовать ее второй раз, получишь нотис.

Спустя 14 минут, 36 секунд (22.05.2011 - 18:10) Lightt написал(а):
$all_order[] = mysql_fetch_assoc($result)
if($count==1)
{
session_start();
$_SESSION['user'] = $_POST['username'];
$_SESSION['id] = $all_order[0]['id'];
header("Location: sessions.php");


Так не выходит =(

while ($all_order[] = mysql_fetch_assoc($result)) {}
Да это лишнее, это я уже при исправлении начудил... =)

В общем я наверно перефразирую...
Как сделать вот такой запрос -
1. Вводим Логи, пароль
2. Выводится только одна строчка из таблицы например (id login pass fio)

Т.е. есть таблица
client
id login pass fio
1 fff 111 yyy
2 iii 222 ddd

Вводим fff 111
Выводится 1 fff 111 yyy

Спустя 4 минуты, 8 секунд (22.05.2011 - 18:14) Krevedko написал(а):
я же дал код

Спустя 21 минута, 10 секунд (22.05.2011 - 18:35) Lightt написал(а):
Блин, крыша едет уже, спасибо большое =) все работает, как раз то что нужно =)

Спустя 3 минуты, 26 секунд (22.05.2011 - 18:38) Krevedko написал(а):
обязательно обезопаситься надо от SQL инъекций. твой код незащищен.
надо обработать данные в массиве пост перед запросом
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.