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
Форумы портала PHP.SU :: Версия для печати :: Перезагрузка страницы после авторизации
Форумы портала PHP.SU » » Вопросы новичков » Перезагрузка страницы после авторизации

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

1. PaulWolf - 05 Января, 2013 - 20:34:12 - перейти к сообщению
Вот такой код, можно ли сделать чтобы после ввода данных он автоматически входил, у меня получается это реализовать лишь переадресацией на главную с помощью

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. $home_url = 'index.php';
  3. header('Location: '.$home_url);
  4.  


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

Или какое-то автообновление есть с помощью javascript, научите пожалуйста Улыбка

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <?php
  3. if (!isset($_COOKIE['id'])) {
  4.  
  5. if(isset($_POST['submit'])) {
  6.  
  7. $link = mysql_connect('localhost','root','') or die ('ERROR1');
  8. mysql_query("SET NAMES 'UTF8'", $link);
  9. mysql_select_db('table') or die('ERROR2');
  10.  
  11. $log = $_POST['login'];
  12. $pas = $_POST['password'];
  13.  
  14. if (!empty($log) and !empty($pas)) {
  15.  
  16. $sql = "SELECT id,login FROM users WHERE login = '$log' and password = SHA('$pas')";
  17.  
  18. $result = mysql_query($sql, $link);
  19.  
  20. if (mysql_num_rows($result) == 1 ) {
  21.  
  22. $row = mysql_fetch_array($result);
  23.  
  24. setcookie('id', $row['id'], time() * (60*60*24*365));
  25. setcookie('login', $row['login'], time() * (60*60*24*365));
  26.  
  27. $home_url = 'index.php';
  28. header('Location: '.$home_url);
  29. }
  30. }
  31. }
  32. }
  33.  
  34. if (empty($_COOKIE['id'])) {
  35.  
  36. print <<<HERE
  37. <div class="enter">
  38. <span class="form_id">
  39. <form id="enter" method="post">
  40. <input type="text" id="login" name="login" placeholder="Введите логин">  
  41. <input type="password" name="password" id="password" placeholder="Введите пароль">  
  42. <input type="submit" value="ВОЙТИ" name="submit">
  43. </form>
  44. </span>
  45. <span class="reg_exit">РЕГИСТРАЦИЯ: <a class="reg" href="signup.php">СТАТЬ УЧАСТНИКОМ</a>
  46. </span>
  47. </div>
  48. HERE;
  49.  
  50. } else {
  51.  
  52. print <<<HERE
  53. <div class="enter">
  54. <span class="form_id">Вы вошли как: <a class="reg" href="#">$_COOKIE[login]</a></span>
  55. <span class="reg_exit"><a class="reg" href="logout.php">ВЫЙТИ</a>
  56. </span>
  57. </div>
  58. HERE;
  59.  
  60. }
  61. ?>
  62.  
2. LShark - 05 Января, 2013 - 20:51:03 - перейти к сообщению
А почему проверку авторизации не вставить во внешний файл и потом его подключать в самом начале через required_once()?

Далее в нем же - удачная проверка - файл грузится дальше, если не удачная (не авторизован) - то тогда и делай перенаправление на страницу авторизации.

У меня в свое время была проверка по сессиям - так в подключаемом файле было:

if (!isset($_SESSION['password']) and !isset($_SESSION['login']) and !isset($_SESSION['name'])) {
exit ("Доступ на эту страницу разрешен только зарегистрированным пользователям. Если вы зарегистрированы, то войдите на сайт под своим логином и паролем<br><a href='\index.php'>Главная страница</a>");
}

т.е. проверил, что нужные переменные назначены (значит авторизацию прошел) - и тогда иди дальше. А если нет - ну тогда читай сообщение и иди на страницу авторизации.
3. PaulWolf - 05 Января, 2013 - 20:54:53 - перейти к сообщению
У меня доступ разрешен всем, и главное, я хочу реализовать форму входа на каждой странице, тоесть во всех страницах сайта эта форма ввода данных сверху если не вошел, а если вошел везде пишется : Вы вошли как user, то есть без отдельной страницы авторизации
4. broshurkaplus - 06 Января, 2013 - 11:11:28 - перейти к сообщению
объясните цели такого применения
я сейчас отошел от логина на каждой странице, зачем мне, хочешь войти - посети страницу- залогинься - вернись на ту с которой пришел...
а вообще полагаю у вас яваскрипт включен, добавьте квери, сделайте две строки кода чтобы скриптом вызывать форму посреди страницы, отправляйте ее динамический через квери на обработчик, и если все ок вставляете результат" Вы вошли как user" в нужное место. а на страницах если вход осуществлен пхп обрабатывайте и отображайте тоже.

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

 

Powered by ExBB FM 1.0 RC1