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 Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: Проблема....
Starlord
Отправлено: 05 Ноября, 2010 - 13:27:48
Post Id



Новичок


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


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




Есть файлик auth.php который подключается к странице, на которую необходимо поставить авторизацию. Вот содержимое:


Но существует ряд проблем:
1. Решено

2. Решено

Ну собственно все, помогите пожалуйста)

(Отредактировано автором: 07 Ноября, 2010 - 13:06:34)



-----
Спасибо сообществу php.su за помощь...
 
 Top
SAD Модератор
Отправлено: 05 Ноября, 2010 - 13:38:03
Post Id



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


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


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




register_globals включите обратно и будет вам счастье
 
 Top
Starlord
Отправлено: 05 Ноября, 2010 - 13:42:15
Post Id



Новичок


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


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




М, хорошо, а как быть со второй проблемой? Однако


-----
Спасибо сообществу php.su за помощь...
 
 Top
Starlord
Отправлено: 06 Ноября, 2010 - 21:22:09
Post Id



Новичок


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


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




Народ, помогите пожалуйста Огорчение Подскажите, как правильно реализовать систему кук в моем скрипте Закатив глазки

И еще, решил испоьзовать md5 хеш при регистрации и авторизации. При регистрации всё ок, а вот при авторизации не происходит выборка, хз почему Недовольство, огорчение

Вот частица кода:
PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. $passy = $_POST["password"];
  4. $hash["password"] = md5($passy);
  5.  
  6. .... .... ....
  7.  
  8. $sql = "SELECT * FROM users WHERE username = \"{$_POST["username"]}\" AND password = \"{$hash["password"]}\"";
  9. $result = @mysql_query($sql) or die("No.");
  10.  
  11.  


Помогите разобраться с этими двумя вопросами, буду очень благодарен Закатив глазки

(Отредактировано автором: 06 Ноября, 2010 - 21:22:42)



-----
Спасибо сообществу php.su за помощь...
 
 Top
Саныч
Отправлено: 06 Ноября, 2010 - 21:26:45
Post Id



Участник


Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010  
Откуда: Украина, Запорожье


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




попробуйте так
PHP:
скопировать код в буфер обмена
  1. $sql = 'SELECT * FROM users WHERE username = "'.$_POST['username'].'" AND password = "'.$hash['password'].'"';


з.ы. А в чем смысл 3 и 4 строки?)


-----
Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
 
 Top
Starlord
Отправлено: 06 Ноября, 2010 - 21:30:29
Post Id



Новичок


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


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




Неа, всё равно не робит Недовольство, огорчение


-----
Спасибо сообществу php.su за помощь...
 
 Top
Саныч
Отправлено: 06 Ноября, 2010 - 21:33:12
Post Id



Участник


Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010  
Откуда: Украина, Запорожье


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




Starlord пишет:
Неа, всё равно не робит Недовольство, огорчение

Ну значит смотрите что у вас в базе хранится... И что вы пытаетесь сравнивать... Ищите различия вобщем


-----
Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
 
 Top
Starlord
Отправлено: 06 Ноября, 2010 - 21:34:15
Post Id



Новичок


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


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




хм, ладно... ну а с куками как быть? Растерялся


-----
Спасибо сообществу php.su за помощь...
 
 Top
Саныч
Отправлено: 06 Ноября, 2010 - 21:46:29
Post Id



Участник


Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010  
Откуда: Украина, Запорожье


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




А что с куками? Устанавливаете, затем по необходимости берете значение, проверяете...

Пример этой системки примерно такой
PHP:
скопировать код в буфер обмена
  1. if( вход через форму )
  2. {
  3.    проверяем логин, пароль, сравниваем с базой.
  4.    если все ОК запускаем сессию.
  5.    если пользователь выбрал "Запомнить меня" устанавливаем куку, если не выбрал, а кука есть удаляем ее...
  6. }
  7. elseif( есть сессия )
  8. {
  9.    проверяем значения, если ошибка убиваем сессию
  10. }
  11. elseif( есть кука )
  12. {
  13.    проверяем значение, если ОК запуск сессию, если ошибка удаляем куку
  14. }
  15. else
  16. {
  17.    ...если войти не удалось...
  18. }

(Отредактировано автором: 06 Ноября, 2010 - 21:47:20)



-----
Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
 
 Top
Starlord
Отправлено: 06 Ноября, 2010 - 21:46:52
Post Id



Новичок


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


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




ахах, лол, вся беда с авторизацией была в том, что я поставил ограничение на password 30 символов в таблице mysql ))


-----
Спасибо сообществу php.su за помощь...
 
 Top
Саныч
Отправлено: 06 Ноября, 2010 - 21:48:15
Post Id



Участник


Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010  
Откуда: Украина, Запорожье


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




Starlord пишет:
ограничение на password 30 символов

ну вот что я и говорил... ищите отличия)
поставьте 32 и будет вам счастье


-----
Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
 
 Top
Starlord
Отправлено: 06 Ноября, 2010 - 21:52:26
Post Id



Новичок


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


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




Мб все таки поможете мне модифицировать код до более совершенного (я имею ввиду куки)? Буду неимоверно благодарен... Язычок


-----
Спасибо сообществу php.su за помощь...
 
 Top
Саныч
Отправлено: 06 Ноября, 2010 - 21:54:32
Post Id



Участник


Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010  
Откуда: Украина, Запорожье


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




Ну в таком случае код в студию. ВЕСЬ!


-----
Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
 
 Top
Starlord
Отправлено: 06 Ноября, 2010 - 21:57:51
Post Id



Новичок


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


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




Окей, вот содержимое файла auth.php на 07.11.2010:

(Отредактировано автором: 07 Ноября, 2010 - 13:05:10)



-----
Спасибо сообществу php.su за помощь...
 
 Top
Саныч
Отправлено: 06 Ноября, 2010 - 22:36:58
Post Id



Участник


Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010  
Откуда: Украина, Запорожье


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




вот мой примерчик... подобавлял комментариев, чтоб вам было понятней...

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. require("core/config.php");
  3. $connect = mysql_connect($host,$user,$pass);
  4. mysql_select_db($user_database, $connect);
  5. if(isset($_POST['Submit']) && isset($_POST['username']) || isset($_POST['password'])) //вход через форму
  6. {
  7.         //проверка логина
  8.         if(!preg_match('/^[a-z0-9\_\-]{3,18}$/i',$_POST['username'])) exit('Логин должен быть от 3 до 18 символов и сотаять и анг. букв, цифр и символо - и _');
  9.         //проверка пароля
  10.         if(!preg_match('/^[a-z0-9\_\-]{6,18}$/i',$_POST['password'])) exit('Пароль должен быть от 6 до 18 символов и сотаять и анг. букв, цифр и символо - и _');
  11.         //проверка на существование юзера
  12.         $sql = mysql_query('SELECT * FROM users WHERE username = "'.mysql_real_escape_string($_POST["username"]).'" LIMIT 1');
  13.         if(mysql_num_rows($sql) == 0) exit('Пользователь с указанным логином не зарегистрирован!');
  14.         //сравнение паролей
  15.         $res = mysql_fetch_assoc($sql);
  16.         if($res['password'] <> md5($_POST['password'])) exit('Неверный пароль!');
  17.         //если выбрано запомнить меня... ставим куку живущую 30 дней
  18.         if(isset($_POST['remember'])) setcookie('user',$res['id'].'#'.$res['password'],(time() + 2592000));
  19.         elseif(isset($_COOKIE['user'])) setcookie('user','');
  20.         //запуск сессии
  21.         $_SESSION['id'] = $res['id'];
  22.         $_SESSION['pass'] = $res['password'];
  23. }
  24. elseif(isset($_SESSION['id']) && isset($_SESSION['pass'])) //вход по сессии
  25. {
  26.         $sql = mysql_query('SELECT password FROM users WHERE id = '.mysql_real_escape_string($_SESSION['id']).' LIMIT 1');
  27.         $res = mysql_fetch_assoc($sql);
  28.         //проверяем данный, если ошибка убиваем сессию
  29.         if(mysql_num_rows($sql) == 0 || $res['password'] <> $_SESSION['pass'])
  30.         {
  31.                 unset($_SESSION['id']);
  32.                 unset($_SESSION['pass']);
  33.                 exit('левая сессия...');
  34.         }
  35. }
  36. elseif(isset($_COOKIE['user'])) //вход по куке
  37. {
  38.         list($id,$pass) = split('#',$_COOKIE['user'])
  39.         $sql = mysql_query('SELECT password FROM users WHERE id = '.mysql_real_escape_string($id).' LIMIT 1');
  40.         $res = mysql_fetch_assoc($sql);
  41.         //проверка куки если левая, удаляем ее, если все ОК перезаписываем
  42.         if(mysql_num_rows($sql) == 0 || $pass <> $res['password'])
  43.         {
  44.                 setcookie('user','');
  45.                 exit('Логин не найден, левая кука...');
  46.         }
  47.         //запуск сессии
  48.         $_SESSION['id'] = $id;
  49.         $_SESSION['pass'] = $pass;
  50.         setcookie('user',$id.'#'.$pass,(time() + 2592000));
  51. }
  52. else //не вошли... выводим форму
  53. {
  54.  
  55. echo '
  56. <html>
  57. <head>
  58. <meta http-equiv="content-type" content="text/html"; charset="utf-8" />
  59. <title></title>
  60.        <link rel="stylesheet" href="css/acp.css" type="text/css" />
  61.        <link rel="shortcut icon" href="favicon.ico" />
  62.   <script type="text/javascript">
  63.       var GB_ROOT_DIR = "./greybox/";
  64.   </script>
  65.   <script type="text/javascript" src="greybox/AJS.js"></script>
  66.   <script type="text/javascript" src="greybox/AJS_fx.js"></script>
  67.   <script type="text/javascript" src="greybox/gb_scripts.js"></script>
  68.   <link href="greybox/gb_styles.css" rel="stylesheet" type="text/css" media="all" />
  69.   <script type=\"text/javascript\" src=\"static_files/help.js\"></script>
  70.   <link href=\"static_files/help.css\" rel=\"stylesheet\" type=\"text/css\" media=\"all\" />
  71. </head>
  72. <body>
  73. <br>
  74. <br>
  75. <br>
  76. <br>
  77. <div id="frame" class="outline">
  78. <img src="images/emblem-library.png" alt="Main" align="middle">
  79. <h1>
  80. Дистанционное обучение  </h1>
  81. <p>
  82. Для того, чтобы войти в систему введите логин и пароль...</p>
  83. <form method="POST" action="'.$_SERVER["PHP_SELF"].'">
  84. <fieldset class="input">
  85. <p id="form-login-username">
  86. <label for="username">Логин:</label><td><input type="text" name="username" size="18"></td>
  87. </p>
  88. <p id="form-login-password">
  89. <label for="passwword">Пароль:</label><td><input type="password" name="password" size="18" autocomplete="off"></td>
  90. </p>
  91. <p id="form-login-remember">
  92. <label for="remember">Запомнить меня:</label>
  93. <input name="remember" class="inputbox" value="yes" alt="Запомнить меня" id="remember" type="checkbox">
  94. </p>
  95. <p align="center"><input type="submit" value="Войти" name="Submit"></td>
  96. </fieldset>
  97. </form>
  98. </div>
  99. <br>
  100. <a href="signup.php" class="underline" title="Регистрация в системе" rel="gb_page_center[500, 500]">Регистрация</a> | <a href="#" class="underline" title="Registration">FAQ</a> | <a href="#" class="underline" title="Registration">Разаботчики</a> | <a href="#" class="underline" title="Registration">О проекте</a>
  101. <br>
  102. <p class="copyright">
  103.                        ... <a href="http://" class="underline" target="_blank">...</a>.</p>
  104.                        <p align="center">...(<span class="dashedtext">Alpha</span>)</p>                
  105. </body>
  106. </html>';
  107. }
  108. ?>

Как основа, чтобы было от чего отталкиваться...
По хорошему еще нужно сделать защиту от подборки паролей...


http://forum.php.su/topic.php?fo...1&topic=5236
Моя системка, разбирайтесь... правда я ее уже немного улучшил но и это пойдет... Единственное проверку по ип не нужно делать (77 и 94 строчки)

Разбирайтесь...

(Отредактировано автором: 06 Ноября, 2010 - 22:40:57)



-----
Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB