Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: сессии
 
 автор: Lelik   (16.01.2006 в 05:05)   письмо автору
 
 

Есть таблица в БД:

CREATE TABLE 'user' (
 'id_user' INT NOT NULL AUTO_INCREMENT,# номер юзера
 'name' CHAR NOT NULL,# логин юзера
 'password' CHAR NOT NULL,# пароль
 'email' CHAR NOT NULL,# е-маил
 'status' ENUM('admin', 'user') DEFAULT 'user' NOT NULL,# статус посетителя - админ или посетитель с ограничеными возможностями
 PRIMARY KEY (id_user)
);


как создать файл входа, что бы создались две отдельные сессии, например :$_SESSION['admin'] и $_SESSION['user], вынимая данные из одной таблицы

   
 
 автор: PantiL   (16.01.2006 в 08:19)   письмо автору
 
   для: Lelik   (16.01.2006 в 05:05)
 

>сессии, например :$_SESSION['admin'] и $_SESSION['user],
Вы неверно говорите, две сессии, это будет одна сессия, только в ней будет записано две переменные.

   
 
 автор: cheops   (16.01.2006 в 12:32)   письмо автору
 
   для: PantiL   (16.01.2006 в 08:19)
 

Просто потрбуется завести две переменные
<?php
  $_SESSION
['admin'] = "admin";
  
$_SESSION['user'] = "user";
?>

   
 
 автор: Lelik   (16.01.2006 в 12:55)   письмо автору
 
   для: cheops   (16.01.2006 в 12:32)
 

Тогда еще вопрос:
вот код-обработчик формы для входа. Чаво тут добавить, что б создать эти две сессии

<?php
 
include "config.php";
 include 
"functions.php";
 
session_start();

 
$name=$_POST['name'];
 
$password=$_POST['password'];

 if(
$name && $password)
  {
   if(
login($name$password))#функция login() изымает из БД данные о пользователе по вводимым данным
    
{
     
$_SESSION['valid_user'] = $name;
    }
   else
    {
     echo 
"Вход невозможен. Повторите попытку";
     echo 
"<a href='javascript:history.back()'>Назад</a>";
    }
  }
 if(isset(
$_SESSION['valid_user']))
  {
        
//Если  вход выполнен удачно - переходим(автоматически) на главную страницу администрирования
   
print "<HTML><HEAD>\n";
   print 
"<META HTTP-EQUIV='Refresh' CONTENT='0; URL=index.php'>\n";
   print 
"</HEAD></HTML>";
   exit ();
  }
?>

   
 
 автор: XPraptor   (16.01.2006 в 13:57)   письмо автору
 
   для: Lelik   (16.01.2006 в 12:55)
 


   if(login($name, $password))#функция login() изымает из БД данные о пользователе по вводимым данным 
    { 
     $_SESSION['valid_user'] = $name; 
        //вот тут проверяешь кто это, админ или юзер и соответственно инициализируешь либо админовскую сессионную переменную либо пользовательскую
    }

   
 
 автор: Lelik   (16.01.2006 в 20:27)   письмо автору
 
   для: XPraptor   (16.01.2006 в 13:57)
 

>

>     $_SESSION['valid_user'] = $name; 
>        //вот тут проверяешь кто это, админ или юзер и
>соответственно инициализируешь либо админовскую сессионную
>переменную либо пользовательскую
>    }
>

А как это сделать. Я пробовал так:

<?php
...
$query 'SELECT * FROM user WHERE name="$name" AND password=password("$password")';
$result = @mysql_query($query);
if(
$result$user = @mysql_fetch_array($result);
if(
$user['status'] == 'user'$user_status 'user';
else 
$user_status 'admin';
// А потом уже создаю сессионную переменную
$_SESSION['$user_status'] = $name;
...
?>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования