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
Форумы портала PHP.SU :: Версия для печати :: Не могу понять почему не работает...
Форумы портала PHP.SU » » Работа с файловой системой и файлами » Не могу понять почему не работает...

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

1. sympler - 03 Августа, 2011 - 18:25:28 - перейти к сообщению
задача: проверить первую строку в файле и если она совпадает с нужным текстом то делать обработку иначе написать что мол файл не тот..

вот код который почему то не работает

PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. if (isset($_POST['submit'])) {  
  4.        
  5.  
  6.                 $data = file($_FILES['file']['tmp_name']);
  7.                
  8.                 // вот тут и есть проверка первой строки
  9.  
  10.                 if(strpos($data[0],'ID;NAME;FIRM_TYPE') === true ) {
  11.                         echo '<a name="mess" href="#"></a><div class="green">Неправильный файл! Первая строка должна содержать "ID;NAME;FIRM_TYPE"</div>';
  12.                 }
  13.                 else
  14.                 {
  15. // тут сам разберусь )))
  16. }
  17. }
  18.  
2. Arni - 03 Августа, 2011 - 18:42:18 - перейти к сообщению
Я не уверен, но помоему в $_FILES['file']['tmp_name'] хранится временное имя файла и функция file просто не может его достать. Нужно переместить файл в доступную для file папку на сервере.

Но я могу и ошибаться.
3. Мелкий - 03 Августа, 2011 - 19:33:45 - перейти к сообщению
Arni, может-может.

sympler, что значит "не работает"? Посмотрите это: http://php.su/phphttp/?uerrcodes Ну и, кончно, классика жанра: phpfaq.ru/debug
4. sympler - 03 Августа, 2011 - 20:25:21 - перейти к сообщению
вы меня отправляете в разделы для новичков...
вы бы еще отправили на сайт php.net

я привел более чем подробный код.
подробно объяснил задачу.
что еще вам нужно?

создайте файл
напишите в нем вот это: ID;NAME;FIRM_TYPE
и попробуйте выполнить код.
код не работает. он все время возвращает истину и не важно какой файл ему давать...
5. Мелкий - 03 Августа, 2011 - 20:43:42 - перейти к сообщению
sympler пишет:
вы меня отправляете в разделы для новичков...
вы бы еще отправили на сайт php.net

Да запросто отправлю, если посчитаю, что он полнее ответит на ваш вопрос.
И да - вы зелёный новичок. Человек, неспособный самостоятельно определить точное место проблемы в 3-х мануальных функциях никем, кроме новичка быть не может.

sympler пишет:
что еще вам нужно?

Описание как не работает.

sympler пишет:
он все время возвращает истину и не важно какой файл ему давать...

Во-первых, strpos никогда true не возвращает.
Во-вторых - http://php.su/phphttp/?uerrcodes . Не понимаете ссылкой - скажу словами - убедитесь, что файл пришёл.
В-третьих - phpfaq.ru/debug . В частности:
PHP:
скопировать код в буфер обмена
  1. var_dump($data[0],'ID;NAME;FIRM_TYPE', strpos($data[0],'ID;NAME;FIRM_TYPE'));
6. LIME - 03 Августа, 2011 - 20:44:19 - перейти к сообщению
strpos никогда не бывает эквивалентен true априори
или позицию возвращает что не есть булеан
или false
правильно?

 

Powered by ExBB FM 1.0 RC1