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

Проблема с php скриптом
  #1  
Старый 25.03.2007, 19:36
SJet
Новичок
Регистрация: 25.11.2006
Сообщений: 19
Провел на форуме:
49731

Репутация: 11
По умолчанию Проблема с php скриптом

Имеется такая проблема: пишу простенький php движок для сайта, и вот неожиданно застрял на аутидентификации.
Сделал регистрацию, а вот со входом проблемы... Вобшем логин пароль проверку проходит, а вот пароль нет(в файле хранится его хеш)

Вот сам код:
PHP код:

if ($act == login)
 {
   
$login $_POST['login'];
   
$pas $_POST['pas'];
   
$testlogin = empty($login);
   
$testpas = empty($pas);
     
   if ((
$testlogin == 1)or($testpas == 1))
    {
      echo 
'Ошибка! Не все поля заполнены!';
      exit;
    }
    
    
$file file("users.inc.php");
    
$users count($file);
    
$hash md5($pas);
    
   
   for (
$i=0$i<$users$i++)
   {
     
$line explode"|"$file[$i] );
     
$j $i+1;
    
По идее ошибка где-то здесьно найти её я не могу...

      if ((
$line[$i] == $login)and($line[$j] == $hash)
       {
           echo 
'Вы вошли.!';
           exit;
         
       }
   } 
Может кто поможет разобратся?

Последний раз редактировалось nc.STRIEM; 25.03.2007 в 20:17..
 
Ответить с цитированием

  #2  
Старый 25.03.2007, 19:54
Helios
Постоянный
Регистрация: 14.01.2007
Сообщений: 459
Провел на форуме:
1469995

Репутация: 589
Отправить сообщение для Helios с помощью ICQ
По умолчанию

Если у тебя в файле данные в виде login|hash, тогда измени:
if (($line[0] == $login)and($line[1] == $hash)

А так как ты написал, скрипт ищет в твоей строке столбцы с индексом <номер строки>, <номер строки>+1

Это сработает для нолевой строки, но дальше - нет

Последний раз редактировалось Helios; 25.03.2007 в 20:04.. Причина: Очепятка)
 
Ответить с цитированием

  #3  
Старый 25.03.2007, 19:58
SJet
Новичок
Регистрация: 25.11.2006
Сообщений: 19
Провел на форуме:
49731

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

Не в этом проблема. Я ставил вывод хеша пароля который ввёл клиент и который лежит в файле. Дак вот они абсолютно одинаковы, но скрипт не считает их таковыми
 
Ответить с цитированием

  #4  
Старый 25.03.2007, 20:08
nc.STRIEM
Members of Antichat - Level 5
Регистрация: 05.04.2006
Сообщений: 1,066
Провел на форуме:
3493315

Репутация: 1228


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

ну тут ваше скрипт крайне кривой!!
и вобще зачем пользователей хранить в файле с расширением php ??

попробуй заменить
$line = explode( "|", $file[$i] );
на
$line = explode( '\|', $file[$i] );

и что таоке $j = $i+1; ??

Последний раз редактировалось nc.STRIEM; 25.03.2007 в 20:12..
 
Ответить с цитированием

  #5  
Старый 25.03.2007, 20:08
Helios
Постоянный
Регистрация: 14.01.2007
Сообщений: 459
Провел на форуме:
1469995

Репутация: 589
Отправить сообщение для Helios с помощью ICQ
По умолчанию

Прогони через trim() Хеш из файла, может к нему еще и \n или пробел приклеился, который на глазок можно не заметить
 
Ответить с цитированием

  #6  
Старый 25.03.2007, 20:14
GreenBear
наркоман с медалью
Регистрация: 07.05.2005
Сообщений: 3,704
Провел на форуме:
19975136

Репутация: 4536


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

PHP код:
if($act == 'login'){
    
$login $_POST['login'];
    
$pas $_POST['pas'];
    if(!
$login OR !$pass){
        die(
'Ошибка! Не все поля заполнены!');
    }
    
$users file('users.inc.php');
    
$count sizeof($users);
    
$pas md5($pas);   
    for(
$i=0;$i<$count;$i++){
        
$auth $users[$i];
        
$auth explode('|'$auth);
        if(
trim($login) == $auth[0] AND trim($pas) = $auth[1]){
            die(
'Вы вошли!');
        }
    }

с тебя 10 баксов
 
Ответить с цитированием

  #7  
Старый 25.03.2007, 20:15
nc.STRIEM
Members of Antichat - Level 5
Регистрация: 05.04.2006
Сообщений: 1,066
Провел на форуме:
3493315

Репутация: 1228


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

PHP код:

$file 
fopen('users.inc');
while(!
feof($file))
{
$line rtrim(fgets($file));
$line2=split('\|',$line)
if (
line2[0] == $login && line2[1] == $hash)
  die(
'Вы вошли.!');

 
Ответить с цитированием

  #8  
Старый 25.03.2007, 20:39
Helios
Постоянный
Регистрация: 14.01.2007
Сообщений: 459
Провел на форуме:
1469995

Репутация: 589
Отправить сообщение для Helios с помощью ICQ
По умолчанию

2GreenBeer
PHP код:
if(trim($login) == $auth[0] AND trim($pas) = $auth[1]){ 
Чтобы войти, достаточно згать только логин, а все из-за опечатки=)

2nc.STRIEM
PHP код:
$line2=split('\|',$line
Экранировать не нужно, ибо кавычки одинарные, и искать в таком случае будет именно \|, а не |
 
Ответить с цитированием

  #9  
Старый 25.03.2007, 21:43
DRON-ANARCHY
Отец порядка
Регистрация: 04.03.2005
Сообщений: 1,007
Провел на форуме:
1204641

Репутация: 412


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

пойду зарегаю юзера какого-нить типа $_GET['cmd']
пасморим че будет)))
это я к тому что расширение лучше другое выбрать
 
Ответить с цитированием

  #10  
Старый 25.03.2007, 22:11
nc.STRIEM
Members of Antichat - Level 5
Регистрация: 05.04.2006
Сообщений: 1,066
Провел на форуме:
3493315

Репутация: 1228


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

Цитата:
Сообщение от Helios  


2nc.STRIEM
PHP код:
$line2=split('\|',$line
Экранировать не нужно, ибо кавычки одинарные, и искать в таком случае будет именно \|, а не |
а ты проверь сначало)))
так:
PHP код:

$fo
=fopen('1.txt','r');
$s=fgets($fo);
$a=split('|',$s);
print_r($a); 
потом так:
PHP код:

$fo
=fopen('1.txt','r');
$s=fgets($fo);
$a=split('\|',$s);
print_r($a); 
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Books PHP FRAGNATIC PHP, PERL, MySQL, JavaScript 186 21.02.2010 02:41
На PHP, как на "Новые ворота"... Mertvii-Listopad Чужие Статьи 7 18.09.2006 12:42
проблема с php скриптом, помогите плиз Utochka PHP, PERL, MySQL, JavaScript 0 24.03.2006 15:59
Безопасность в Php, Часть Iii k00p3r Чужие Статьи 0 11.07.2005 19:02
Защищаем Php. Шаг за шагом. k00p3r Чужие Статьи 0 13.06.2005 11:31



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


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




ANTICHAT.XYZ