Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Переадрисация

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Каролина
Отправлено: 04 Сентября, 2012 - 19:40:47
Post Id



Частый гость


Покинул форум
Сообщений всего: 241
Дата рег-ции: Дек. 2011  
Откуда: от верблюдика


Помог: 0 раз(а)

[+][+]


есть такой код который должен перенаправлять на 3 страницы. на 1 стр перенаправляет на 2 и 3 нет там на странице указаны лог и пароль если что http://nashclas[dot]tk/admin/
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. function echo2($expression){
  4. echo '<pre>'.print_r($expression, 1).'</pre>';
  5. }
  6.  
  7.  
  8. // это массив таблица записи пользователей. пароль хранится как буто в закрытом виде хеш мд5
  9. $users = array(
  10.  array('login'=>'LogniZ1', 'name'=>'Задания','pass'=>'PassiZ') ,
  11. array('login'=>'LognidzX1', 'name'=>'Д/З', 'pass'=>'PassidzX2'),
  12.  array('login'=>'LoginisF01', 'name'=>'Фото', 'pass'=>'PassisF02')
  13.  );
  14.  
  15.  
  16.  
  17.  
  18. if(count($_POST)){
  19. $submit_msg = array();
  20. echo2($_POST);
  21. extract($_POST, EXTR_SKIP); // извлекаем все переменные, они будут по имени name формы (в том числе переменная $go но она и не нада)
  22. echo2('login:'.$login);
  23. echo2('pass:'.$pass);
  24.  
  25. foreach($users as $record){
  26. if($login == $record['login'] && $pass == $record['pass']){
  27. $user = $record; // логин пароль совпал
  28. break;
  29. }
  30. }
  31.  
  32. if(isset($user)){
  33. echo2($user);
  34. $is_admin = strpos($user['role'], 'admin') !== false; // true - админь, false, простой смертный.
  35. $_SESSION['is_admin'] = $is_admin; // на страницах админа проверять например так:
  36.  if(!$_SESSION['is_admin']===true){//от винта};
  37. $_SESSION['name'] = $user['name']; // а это напрмпер отображать имя текущего пользователя.
  38. if($users[0])
  39.  header('Location:http://nashclas.tk/admin/zadania/'); // куда направляться после логина. }
  40. elseif ($users[1])
  41.  header('Location:http://nashclas.tk/admin/d.z/'); // куда направляться после логина. }
  42. elseif ($users[2])
  43.  header('Location:http://nashclas.tk/admin/foto/'); // куда направляться после логина. }
  44.  
  45.  
  46. } else {
  47. $submit_msg[] = 'пользователь с таким логином и паролем не найден.';
  48. $submit_msg[] = "попробуйте бла бла бла";
  49. }
  50. $msg = implode('<br>', $submit_msg);
  51. } else {
  52. // переменные для подстановки в форму.
  53. $login = '';
  54.  
  55. $msg = '';
  56. }
  57. ?><form method="post">
  58. <fieldset><label for="login">Логин</label>:<br>
  59. <input type="text" id="login" name="login" value="<?=$login?>"><br>
  60. <label for="pass">Пароль</label>:<br>
  61. <input type="password" id="pass" name="pass"><br>
  62. <input type="submit" id="go" name="go" value="Login"><br>
  63. </fieldset>
  64. <?=$msg?></form>
  65.  
  66.  
  67.  
  68. , попробуйте бла бла бла, попробуйте бла бла бла
 
 Top
Slavenin
Отправлено: 04 Сентября, 2012 - 22:28:30
Post Id



Посетитель


Покинул форум
Сообщений всего: 285
Дата рег-ции: Май 2010  
Откуда: Тверь


Помог: 4 раз(а)




PHP:
скопировать код в буфер обмена
  1. if(!$_SESSION['is_admin']===true)

сурово...
ну и логично, что срабатывает первый редирект, так как первый элемент массива $users всегда существует
 
 Top
AlexAnder
Отправлено: 05 Сентября, 2012 - 10:52:03
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 915
Дата рег-ции: Авг. 2012  
Откуда: Россия


Помог: 34 раз(а)




вроде так: [censored]

Цитата:
Троллинг. Строгое предупреждение.

ну по-моему это тс тролль, с его описания проблемы ничего же не понятно Огорчение
Спойлер (Отобразить)


Отредактировано администратором: EuGen, 05 Сентября, 2012 - 10:54:46
Троллинг. Строгое предупреждение.


-----
Оказывается, недостаточно читать справочники, чтобы правильно писать коды. sadex ©

Форумы стали местом обучения программированию, а не решения трудных вопросов. KingStar ©
 
 Top
avtor.fox
Отправлено: 05 Сентября, 2012 - 11:16:53
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


Помог: 50 раз(а)




AlexAnder, вот не знаю что ты там написал, но если получил строгое предупреждение, то [cut] Улыбка Многоль ли ты умел в 6 классе?

А по сабжу.
Каролина, попробуй подойти к реализации немного с другой стороны. Почитай про базы данных и про работу всех функций какие используешь. У тебя проблема не с кодом, а с его знанием и твоей логикой. Например гораздо удобней при логине отправить пользователя на страницу с его проверкой, присвоить всем нужным переменным значения, а уж потом отправлять на обработку этих значений.
И нужно стараться исключать такие глупые проверки как if(count($_POST)) Улыбка
Читай же мануал по функциям, а мы поможем без троллинга и даже бесплатно Улыбка

//Блин Ха-ха


Отредактировано администратором: EuGen, 05 Сентября, 2012 - 11:21:37
Оскорбления. Строгое предупреждение.
 
 Top
AlexAnder
Отправлено: 05 Сентября, 2012 - 11:23:13
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 915
Дата рег-ции: Авг. 2012  
Откуда: Россия


Помог: 34 раз(а)




avtor.fox пишет:
Многоль ли ты умел в 6 классе?

В 6-ом классе у меня даже и мыслей не было о веб-технологиях

avtor.fox пишет:
ты [censored, это я сказал про себя xD] Улыбка

правильно, ведь Вы же любите тех, кто не читая мануалов лезет в сайтостроение и при первой же возможности идёт на форум, задавая свои вопросы, при этом даже ничего не предприняв

avtor.fox пишет:

Каролина, попробуй подойти к реализации немного с другой стороны. Почитай про базы данных и про работу всех функций какие используешь. У тебя проблема не с кодом, а с его знанием и твоей логикой. Например гораздо удобней при логине отправить пользователя на страницу с его проверкой, присвоить всем нужным переменным значения, а уж потом отправлять на обработку этих значений.
И нужно стараться исключать такие глупые проверки как if(count($_POST)) Улыбка
Читай же мануал по функциям, а мы поможем без троллинга и даже бесплатно Улыбка

Ага, правильно, продолжай в том же духе Ха-ха

(Отредактировано автором: 05 Сентября, 2012 - 11:24:16)



-----
Оказывается, недостаточно читать справочники, чтобы правильно писать коды. sadex ©

Форумы стали местом обучения программированию, а не решения трудных вопросов. KingStar ©
 
 Top
Каролина
Отправлено: 05 Сентября, 2012 - 19:18:56
Post Id



Частый гость


Покинул форум
Сообщений всего: 241
Дата рег-ции: Дек. 2011  
Откуда: от верблюдика


Помог: 0 раз(а)

[+][+]


базу данных читала месяц назад с ней дружу
(Добавление)
откуда у меня -2 репутации
 
 Top
AlexAnder
Отправлено: 06 Сентября, 2012 - 09:20:33
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 915
Дата рег-ции: Авг. 2012  
Откуда: Россия


Помог: 34 раз(а)




Ха-ха


-----
Оказывается, недостаточно читать справочники, чтобы правильно писать коды. sadex ©

Форумы стали местом обучения программированию, а не решения трудных вопросов. KingStar ©
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB