ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Проблема в авторизации
  #1  
Старый 26.02.2007, 13:24
Аватар для victorianec
victorianec
Новичок
Регистрация: 22.02.2007
Сообщений: 8
Провел на форуме:
5461

Репутация: 2
По умолчанию Проблема в авторизации

Я написал маленький скрипт авторизации. Работает нормально при авторизации входит. Но есть проблема одна когда я перехожу по страницам то меня выкидывает из авторизации и приходится заново авторизоваться. Вот код моего скрипта:

login_form.php:

PHP код:
<?  session_start();  ini_set('session.auto_start',1);  
include (
"config.php");  
if (isset(
$_POST['action']) AND $_POST['action'] == "submit")  { 
 
session_register('login');  
session_register('passw');  
$_SESSION['login'] = $_POST['login'];  $_SESSION['passw'] = $_POST['passw'];  $_POST['login'] = str_replace('~','',strip_tags(trim ($_POST['login'])));  
$_POST['passw'] = str_replace('~','',strip_tags(trim ($_POST['passw'])));  
if (!
$_POST['login']) { 
echo 
"<center><br>Пожалуйста введите логин</center><br>"
unset (
$_POST['sent']); echo $sm; exit;} 
if (!
$_POST['passw']) { echo "<center><br>Пожалуйста введите пароль</center><br>"; unset ($_POST['sent']); echo $sm; exit;} 
$sql="select login, pass, firstname, email from user where login = '$_POST[login]' and pass = '$_POST[passw]' limit 1";  $result=mysql_query($sql,$db_conn);  $row=mysql_fetch_array($result);  
if (
$_POST['login']==$row[login] AND $_POST['passw']==$row[pass]){  
$at_login TRUE;  }
  else 
 {  echo 
"Такого пользователя/пароля в базе нет. Повторите авторизацию<br>";  echo $sm;  }  }  
  if (
$at_login == TRUE){  
echo <<<
HTML  
<div align=center>
<
table width=80border=0 cellspacing=0 cellpadding=0>    <tr>      
<
th scope=col>Привет $_POST[login]</th>    </tr>    <tr>      <td>&nbsp;</td
</
tr>    <tr>      <td>Рады Вас видеть</td>    </tr>    <tr>      <td>$row[firstname]</td>    </tr>    
<
tr>      <td>&nbsp;</td>    </tr>    
<
tr>      <td><a href=?do=logout>Выйти</a></td>    </tr>  
</
table>  </div>  HTML;  }
  else  { 
 echo <<<
HTML  
<div align=center>
<
table width=20border=0 cellspacing=0 cellpadding=0>  
<
form action="" method=post>  
<
input name=action type=hidden value=submit />    <tr>      <th colspan=2 scope=col>Войти</th>    </tr>    <tr>      <td><strong>Логин:</strong></td>      <td><input type=text name=login maxlength=20></td>    </tr>    
<
tr>      <td><strong>Пароль:</strong></td>      <td>
<
input type=password name=passw maxlength=25></td>    </tr>    
<
tr>      <td>
<
input onclick=submit(); type=submit value=Войти> </td>      
<
td><input type=reset value=Очистить></td> </tr>    </form
 </
table></div
 
HTML;  }  ?>
config.php:

PHP код:
$db_conn mysql_connect("localhost""root""");  
mysql_select_db("lesson"$db_conn); 
Mysql:

PHP код:
--    -- Структура таблицы `user`   --      
CREATE TABLE `user` ( 
 `
idint(11NOT NULL auto_increment,    
 `
loginvarchar(15NOT NULL,     
`
passvarchar(10NOT NULL,     
`
firstnamevarchar(126NOT NULL,    
 
PRIMARY KEY  (`id`)  
 ) 
ENGINE=MyISAM  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=10 ;     

---- 
Дамп данных таблицы `user
Кто сможет помочь.
 
Ответить с цитированием

  #2  
Старый 26.02.2007, 13:30
Аватар для blaga
blaga
Постоянный
Регистрация: 23.03.2006
Сообщений: 977
Провел на форуме:
2976185

Репутация: 694


Отправить сообщение для blaga с помощью ICQ
По умолчанию

а как подключаешь скрипт авторизации на страницах? версия пхп? register_globals?
 
Ответить с цитированием

  #3  
Старый 26.02.2007, 13:35
Аватар для victorianec
victorianec
Новичок
Регистрация: 22.02.2007
Сообщений: 8
Провел на форуме:
5461

Репутация: 2
По умолчанию

У меня php 5 register_globals = On
На сайте я в главном шаблоне Подключаю через
<? require_once("login_form.php"); ?>
 
Ответить с цитированием

  #4  
Старый 26.02.2007, 13:45
Аватар для Abra
Abra
Постоянный
Регистрация: 17.09.2005
Сообщений: 375
Провел на форуме:
993362

Репутация: 175
По умолчанию

Цитата:
Но есть проблема одна когда я перехожу по страницам то меня выкидывает из авторизации и приходится заново
извини, но где в твоем коде прописано, что он должен переносить данные поьзователя по другим страницам?
Твой код делает только одно - выполняет залогинивания когда человек ввел логин и пасс и нажал "войти". Чтоб данные сохранялись на всех страницах, тебе нужно записать его логин и пасс в сессию в случае успешной авторизации.
 
Ответить с цитированием

  #5  
Старый 26.02.2007, 13:48
Аватар для Abra
Abra
Постоянный
Регистрация: 17.09.2005
Сообщений: 375
Провел на форуме:
993362

Репутация: 175
По умолчанию

И авторизация кстати говоря дырявая.
по адресу login_form.php?at_login=1 будет спокойно пропускать без всякого логина и пасса.
 
Ответить с цитированием

  #6  
Старый 26.02.2007, 13:48
Аватар для blaga
blaga
Постоянный
Регистрация: 23.03.2006
Сообщений: 977
Провел на форуме:
2976185

Репутация: 694


Отправить сообщение для blaga с помощью ICQ
По умолчанию

точно не уверен но по поводу во тэтого куска кода...
PHP код:
<?  session_start();  ini_set('session.auto_start',1);   
include (
"config.php");   
if (isset(
$_POST['action']) AND $_POST['action'] == "submit")  {  
 
session_register('login');   
session_register('passw');
во первых можно два раза не проверять переменную $_POST['action']. первая isset($_POST['action']) AND здесь не нужна вовсе. зачем она если ты ее проверяешь на конкретное значение? И еще я не уверен но ты точно уверен что ссесия будет работать после инклуда? И вообще 90% что у тебя запарка именно с сессиями...
 
Ответить с цитированием

  #7  
Старый 26.02.2007, 13:48
Аватар для victorianec
victorianec
Новичок
Регистрация: 22.02.2007
Сообщений: 8
Провел на форуме:
5461

Репутация: 2
По умолчанию

А не подскажеш как записать в сессию даные после успешной авторизации чтобы на каждой странице видели пользователя?
 
Ответить с цитированием

  #8  
Старый 26.02.2007, 13:50
Аватар для blaga
blaga
Постоянный
Регистрация: 23.03.2006
Сообщений: 977
Провел на форуме:
2976185

Репутация: 694


Отправить сообщение для blaga с помощью ICQ
По умолчанию

2Abra, точно ты прав... я после 5 строки даже не посмотрел...

2victorianec, рекомендую вообще почитать про авторизацию и регу... в инете примеров очень много. да и в книгах это часто есть...
 
Ответить с цитированием

  #9  
Старый 26.02.2007, 13:51
Аватар для victorianec
victorianec
Новичок
Регистрация: 22.02.2007
Сообщений: 8
Провел на форуме:
5461

Репутация: 2
По умолчанию

Я пока новичек в написание сессий и не знаю как должно. инклюд же загружает файл связи с базой же
 
Ответить с цитированием

  #10  
Старый 26.02.2007, 13:56
Аватар для blaga
blaga
Постоянный
Регистрация: 23.03.2006
Сообщений: 977
Провел на форуме:
2976185

Репутация: 694


Отправить сообщение для blaga с помощью ICQ
По умолчанию

При чем здесь база? База и сессии совсе разные вещи... блин ну сходи сюда - http://php.su или сюда - http://forum.vingrad.ru или вот сюда http://phpforum.ru там и примеры есть и учебники и еще всекая бяка что тебе может понадобиться... И зря ты бросаешься что то писать даже не зная как это работает. http://php.ru http://phpclub.ru это вдогонку...
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с icq reider ICQ 6 16.08.2007 14:47
Это только мне приходит или всем?? (в таком количестве) -Concord- Болталка 15 15.01.2007 09:18
Nik9 Sulf aka Joker Болталка 40 17.07.2006 16:28
Команда исследователей из США представила новую технологию авторизации пользователей. Mobile Мировые новости 0 11.03.2006 12:33
Проблема с перл Эксплойтом для ipb 2.0.* SURRENDER Форумы 2 07.12.2004 12:58



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ