Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » PHP: авторизация

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2

Открыть новую тему     Написать ответ в эту тему

Sergeant

Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SiMM,
Ну это другое дело. Просто был процитирован кусок именно с header(); - потому у меня вопрос и возник.

----------
Если вы спорите с идиотом,
Наверняка, он занимается тем же самым.

Всего записей: 1553 | Зарегистр. 06-08-2001 | Отправлено: 17:05 20-02-2005
SiMM

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Просто был процитирован кусок именно с header
А эта проблема как-раз таки не без его помощи решается SID надо к URI добавлять.

Всего записей: 2302 | Зарегистр. 14-05-2004 | Отправлено: 17:08 20-02-2005
pusiyjan



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
пытаюсь прикрутить вот этот код с предыдущей страницы и что-то ничего не получется

Цитата:
<?php  
if($_POST['login'] and $_POST['password']) {  
//если нажали сабмит, проверяем  
$m=mysql_connect(); mysql_select_db();  
$q=mysql_query("SELECT * FROM users WHERE login='{$_POST['login']}' AND password='{$_POST['password']}' LIMIT 1");  
if($q) {  
//если пользователь найден, стартуем сессию  
session_start();  
$_SESSION['logged']=1;  
$_SESSION['login']=$_POST['login'];  
header("Location: somewhere.php"); exit;  
};  
}  
 
//если сабмита не было, выводим форму  
?>  
<form name='auth' action='script.php' method='post'>  
Логин: <input type='text' name='login' value=''>  
Пароль: <input type='password' name='password' value=''>  
<input type='submit' name='s' value='Войти'>  
</form>  

кто подскажет, а лучше покажет пример???

Всего записей: 823 | Зарегистр. 17-12-2003 | Отправлено: 11:45 17-10-2006
edogs

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
pusiyjan
1) session_start(); для старта сессии
2) не пишите по возможности {} скобки
 Не
 $q=mysql_query("SELECT * FROM users WHERE login='{$_POST['login']}' AND   password='{$_POST['password']}' LIMIT 1");  
 а
 $q=mysql_query("SELECT * FROM users WHERE login='".$_POST['login']."' AND password='".$_POST['password']."' LIMIT 1");  
3) проверяйте не правильность выполнения запроса, а количество возвращённых им строк
 $q=mysql_query....
 $q=mysql_num_row...
 if($q....
4) Добавляйте в $_SESSION хотя бы IP пользователя, вдруг ИД сессии у него свистнут.  
5) Экранируйте кавычки. Ну, допустим $_POST['login']=addslashes($_POST['login']); перед засовыванием этого в запрос. Это узкоприменительный совет, в нормальной ситуации их надо экранировать только при выключенной опции magic_quotes проверяется её статус get_magic_quotes_gpc

Всего записей: 1777 | Зарегистр. 25-07-2004 | Отправлено: 14:22 17-10-2006 | Исправлено: edogs, 14:23 17-10-2006
pusiyjan



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
edogs
щас попробую разобраться с этим, тут вот другая батва
почему у меня не получается вот такая вот вещь http://forum.ru-board.com/topic.cgi?forum=31&topic=11013&start=20#9 ?

Всего записей: 823 | Зарегистр. 17-12-2003 | Отправлено: 15:25 17-10-2006
edogs

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
pusiyjan

Цитата:
 тут вот другая батва  

забейте на эту батву. делайте обычными формами.

Всего записей: 1777 | Зарегистр. 25-07-2004 | Отправлено: 15:30 17-10-2006
pusiyjan



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Не получается у меня получить акно запроса логина и пароля в чем трабла?

Цитата:
Code Flow
The two headers, together, will activate an authentication dialog box.  
Use exit to ensure the end of the execution of your script.  

Код:
 
<?php      
 
header('WWW-Authenticate: Basic realm="Private"');  
header('HTTP/1.0 401 Unauthorized');  
exit;  
?>

 

 
 
Добавлено:
edogs

Цитата:
забейте на эту батву. делайте обычными формами.

Почему?
Если хоть не получается так то может раскажете мне как мне выборку из базы прикрутить через вот такой метод?
http://forum.ru-board.com/topic.cgi?forum=31&topic=0085&start=40#7
при этом у меня выпадает приглашение для ввода логина пароля =))
?

Всего записей: 823 | Зарегистр. 17-12-2003 | Отправлено: 15:45 17-10-2006 | Исправлено: pusiyjan, 15:46 17-10-2006
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
pusiyjan

Цитата:
Не получается у меня получить акно запроса логина и пароля в чем трабла?  

телепатов нет, и не нужно расползаться по разным темам.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 16:17 17-10-2006
edogs

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
pusiyjan

Цитата:
Почему?  

Потому что это не тот метод который Вам надо использовать. Хотя бы уже в меру его бОльшей сложности и бОльшей зависимости от окружения.

Цитата:
Если хоть не получается так то может раскажете мне как мне выборку из базы прикрутить через вот такой метод?  

Выше наше сообщение прочтите... мы же там всё написали.

Всего записей: 1777 | Зарегистр. 25-07-2004 | Отправлено: 16:24 17-10-2006
pusiyjan



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
заставил работать вот такой  

Код:
<?php  
$auth = false; // Assume user is not authenticated  
if (isset( $PHP_AUTH_USER ) && isset($PHP_AUTH_PW)) {  
mysql_connect($hostname, $username, $password ) or die ( 'Не могу создать соединение' );  
@mysql_select_db("$dbName") or die ('Не могу выбрать базу данных');  
$sql = "SELECT * FROM tusers WHERE username = '$PHP_AUTH_USER' AND password = '$PHP_AUTH_PW'";  
$result = mysql_query( $sql )  or die ( 'Не могу выполнить  query.' );  
$num = mysql_numrows( $result );  
if ( $num != 0 ) {  
$auth = true;   }     }  
if ( ! $auth ) {  
header( 'WWW-Authenticate: Basic realm="Private"' );  
header( 'HTTP/1.0 401 Unauthorized' );  
echo 'В авторизации отказано';  
echo "<p>Логин : {$_SERVER['PHP_AUTH_USER']}<br />";  
echo "<p>Пароль: {$_SERVER['PHP_AUTH_PW']}<br />";  
exit;     } else  
{  
echo '<P>Вы авторизированы</P>';  
echo "<p>Добро пожаловать: {$_SERVER['PHP_AUTH_USER']}<br />";  
echo "<p>Ваш пароль: {$_SERVER['PHP_AUTH_PW']}<br />";  
echo "<form action='{$_SERVER['PHP_SELF']}' METHOD='post'>\n";
echo "<input type='submit' value='Авторизоваться повторно' />\n";  
echo "</form></p>\n"; }  
?>  
 

Подскажите как и где мне привязываться к кукам или стартовать сессии, т.е. после какого слова и что писать?
И у меня почему-о не работает кнопка на ворме с повторной авторизацией, а почему
 
Добавлено:
и еще самый главный вопрос  
почему разово авторизировавшись я вхожу все время под этим же пользователем, и у меня не появляется запроса на авторизацию?

Всего записей: 823 | Зарегистр. 17-12-2003 | Отправлено: 17:26 18-10-2006
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
pusiyjan

Цитата:
почему разово авторизировавшись я вхожу все время под этим же пользователем, и у меня не появляется запроса на авторизацию?

закрой окно браузера, тогда будет заново спрашивать..
читай
авторизация в PHP

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 19:17 18-10-2006
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2

Компьютерный форум Ru.Board » Интернет » Web-программирование » PHP: авторизация


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru