[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вопрос по админ-панели (урок от twin'a)
MrRobby
Собственно, это по уроку от twin'a. Вот есть у нас массив:
$admins = array( 
'root' => '63a9f0ea7bb98050796b649e85481845',
'123456' => 'e10adc3949ba59abbe56e057f20f883e',
);


Так-же есть файл в котором выполняется проверка логина и пароля, вот его содержание:
foreach($admins as $admin => $pass)      
if($POST['admin_login'] === $admin && md5($POST['admin_pass']) === $pass)
$_SESSION['admin'] = true;

if(isset($_SESSION['admin']))
reDirect();


Вопрос: как сделать проверку и присвоить логину имя пользователя, т.е. если использовали логин root то $admin_name='Вася' например.
Я делал вот так:
foreach($admins as $admin => $pass) 
$admin_name='';
if($POST['admin_login'] === $admin && md5($POST['admin_pass']) === $pass)
$_SESSION['admin'] = true;
if($POST['admin_login'] === 'root')
$admin_name='Вася';
if(isset($_SESSION['admin']))
reDirect();


Но когда я нажимал кнопку "войти" то отображалось просто имя, а сама форма входа не исчезала. Помогите пожалуйста!



Спустя 1 час, 27 минут, 17 секунд (7.10.2010 - 22:50) Lenarfate написал(а):
потому что скобки надо для цикла ставить. у тебя в цикл входит только первая конструкция, то есть
$admin_name=''; 
, а все остальное как бы и не при чем

Спустя 1 минута, 16 секунд (7.10.2010 - 22:51) twin написал(а):
Не надо там скобки.

Вот так:
foreach($admins as $admin => $pass)      
if($POST['admin_login'] === $admin && md5($POST['admin_pass']) === $pass)
$_SESSION['admin'] = $POST['admin_login'];

if(isset($_SESSION['admin']))
reDirect();


А в других файлах читать так:

    esho $_SESSION['admin'] ;

Спустя 1 час, 20 минут, 28 секунд (8.10.2010 - 00:11) MrRobby написал(а):
twin
Спасибо все работало, но потом почему-то стало выдавать такую ошибку:
Notice: Undefined index: HTTP_REFERER in Z:\home\test1.ru\www\libs\default.php on line 85

Вот 85 строчка:
 header('location: '. str_replace("/index.php", "", $_SERVER['HTTP_REFERER']));

Вернул все как было, но все равно не помогло=(

Спустя 17 минут, 35 секунд (8.10.2010 - 00:29) MrRobby написал(а):
так, предыдущую ошибку исправил, но при входе выдает нотис
Undefined index: admin in...

Спустя 6 часов, 28 минут, 10 секунд (8.10.2010 - 06:57) twin написал(а):
Правильно ругается. Инициализировать переменную из массива SESSION нужно точно так же, как и из остальных. И обрабатывать при выводе тоже.

В твоем случае достаточео вывести имя после входа, а не до.

Спустя 8 часов, 1 минута, 34 секунды (8.10.2010 - 14:59) MrRobby написал(а):
twin
Что-то не совсем понял тебя, можно по-подробней? Да и еще вопрос, а если я хочу чтобы логин был один, а имя отображалось другое? ну например логин root а отображалось другое имя? Может составить массив, на подобии того, как было в уроке? вот так:
$admin_names = array(
'root' => 'Вася',
'123456' => 'Петя',

);

и потом его как-то через foreach вывести. Вот так например:
foreach($admin_names as $admin => $admin_name)

Если правильно, то подскажите как дальше пожалуйста rolleyes.gif

Спустя 7 минут, 39 секунд (8.10.2010 - 15:06) twin написал(а):
Цитата
Что-то не совсем понял тебя, можно по-подробней?

Ну как мы обычно инициализируем переменные...
    $login = isset($_SESSION['admin']) ? $_SESSION['admin'] : '';

echo $login;
чтобы логин был один, а имя отображалось другое?
$admin_names = array(
'root' => array('Вася', '63a9f0ea7bb98050796b649e85481845'),
'123456' => array('Петя', 'e10adc3949ba59abbe56e057f20f883e'),

);


foreach($admins as $login => $data)
if($POST['admin_login'] == $login && md5($POST['admin_pass']) === $data[1])
$_SESSION['admin'] = $data[0];

if(isset($_SESSION['admin']))
reDirect();

Спустя 4 минуты, 12 секунд (8.10.2010 - 15:10) MrRobby написал(а):
аа все понял спасибо большое!!=)

Спустя 10 дней, 2 часа, 44 минуты, 48 секунд (18.10.2010 - 17:55) lopzan написал(а):
Я чайник, хочу научиться РНР.
Установил из интера ApachHTTPServer2,2 и PHP5.
Настроил ApachHTTPServer2,2 через httpd.conf
Проверил как положено сервер - отвечает.
DHS в службах включен.
В PHP5 не могу найти php.ini, нашел вроде, но он чисто текстовый файл,
но всё равно вставил туда нужный doc_root.
Все попытки написать программку на рнр не получается,
с сервера приходят пустые картинки.
Помогите пожалуйста!
Lopzan
lopzan@rambler.ru

Спустя 6 минут, 19 секунд (18.10.2010 - 18:02) twin написал(а):
Денвер поставь и не мучайся. Потом научишься сервера поднимать... Если надо станет. smile.gif
Быстрый ответ:

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