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


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

> Описание: странно не могу понять в чем проблемма
Grenky
Отправлено: 01 Июля, 2007 - 07:00:26
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Июль 2007  
Откуда: Находка


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




Форма:
PHP:
скопировать код в буфер обмена
  1.  
  2. <form action="chek.php" method="post">
  3. <input type="text" name="login" />
  4. <input type="password" name="pass" />
  5. <input type="submit" value="ВХОД" />
  6. </form>
  7.  



Файл с паролями:

PHP:
скопировать код в буфер обмена
  1.  
  2. vasya||123
  3. pasha||321
  4. moon||111
  5.  


Скрипт:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.     $username = $_POST['login'];
  4.     $password = $_POST['pass'];
  5.         $name = $username . "||" . $password;
  6.         $masspass = file("./files/pass.txt");
  7.         $passed=0;
  8.         for ($i=0; $i < sizeof($masspass); $i++)
  9.                 {
  10.                   if ($masspass[$i] == $name)
  11.                 {
  12.                 echo "<p>Passwords match.  Thank you.</p>";
  13.                 $passed = 1;
  14.                                 }
  15.        
  16.                   }
  17.  
  18.         if ($passed==1)
  19.                 {
  20.                 echo "YES!";
  21.                 }else{
  22. echo "NO!";
  23. }
  24. ?>
  25.  


почему то не хочет проверка if обрабатывать первый элемент массива $masspass. хотя если до проверки ткнуть echo - элемент выходит.
короче если ввел vasya 123 то ты типа ввел не правильно. если следующие то все ок!
Где я туплю?
+ помогите проверку засунуть в функцию и покажите как вызвать. я с функциями тока знакомлюсь... и почему то плохо Недовольство, огорчение видать надо ткнуть носом
 
 Top
evgenijj
Отправлено: 01 Июля, 2007 - 08:48:43
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


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




Ты забыл о том, что элементы массива, который ты получил функцией file() содержат символы конца строки. Используй функцию trim():
if ( trim($masspass[$i]) == $name ) { ... }
 
 Top
Grenky
Отправлено: 01 Июля, 2007 - 13:13:14
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Июль 2007  
Откуда: Находка


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




evgenijj ты настоящий друг Улыбка а тоя вчера часа два дебагил Радость

намекните как в функцию chek пароля сделать, что куда откуда вызывать и чего отдавать... что в первом случае втыкать в function checkPasswords(???????) при создании функции а что при вызове. Просто я посмотрел кучу примеров и на офф.мануале, но ИМХО на своем примере будет понятнее
 
 Top
valenok Модератор
Отправлено: 01 Июля, 2007 - 13:39:47
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


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




PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP  
  3. function checkpass(){
  4.  
  5.     $username = $_POST['login'];
  6.     $password = $_POST['pass'];
  7.         $name = $username . "||" . $password;
  8.         $masspass = file("./files/pass.txt");
  9.         $passed=0;
  10.  
  11.         for ($i=0; $i < sizeof($masspass); $i++)
  12.                  if ($masspass[$i] == $name){
  13.                                 echo "Passwords match.  Thank you.</p>";
  14.                                 return true;
  15.                   }  
  16.  
  17.          return false;
  18.  }
  19.  
  20.  
  21.         if (checkpass())
  22.                 {
  23.                 echo "YES!";
  24.                 }else{
  25.  echo "NO!";
  26.  ?>
  27.  


-----
Truly yours, Sasha.
 
My status
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB