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 :: Версия для печати :: невидимый Parse error
Форумы портала PHP.SU » » Вопросы новичков » невидимый Parse error

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

1. foozzi - 10 Сентября, 2011 - 23:57:57 - перейти к сообщению
Parse error: syntax error, unexpected T_IF in /opt/lampp/htdocs/xampp/comics/d ownload_count.php on line 15

НО ГДЕ??

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. //код файла req.php
  4.  
  5. define('URL_DIR','http://easytrolls.tk/comics/');
  6.  
  7. define('ABS_DIR',$_SERVER['DOCUMENT_ROOT']);
  8.  
  9. //Определяем нужные нам константы
  10.  
  11. $namefile = htmlspecialchars(str_replace("/","",$_GET['name'])); 
  12.  
  13. //Через гет передаем параметр-имя
  14.  
  15. if (!$namefile) echo 'Произошла ошибка! Файл с таким именем не найден.' ;
  16.  
  17. $array = array(); //массив данных
  18.  
  19. if(file_exists(ABS_DIR.'/base.txt'))
  20.  
  21. {
  22.  
  23.     $array = unserialize(file_get_contents(ABS_DIR.'/base.txt'));
  24.  
  25.     //Файл который будет содержать данные о кол-ве скачиваний
  26.  
  27.     //в виде сериализованного массива
  28.  
  29.     if(!$array[$namefile]) $array[$namefile] = 0;
  30.  
  31.     $schet = $array[$namefile]+1;
  32.  
  33.     //$array[$namefile] содержит кол-во скачиванй этого файла
  34.  
  35. }
  36.  
  37. else 
  38.  
  39. {
  40.  
  41.     $schet = 1;
  42.  
  43. }
  44.  
  45. $array[$namefile] = $schet;
  46.  
  47. //присваиваем новое значение элементу массива
  48.  
  49. $array = serialize($array);
  50.  
  51. //сериализуем данные
  52.  
  53. @file_put_contents(ABS_DIR.'/base.txt',$array);
  54.  
  55. //пишем в файл причем не проверяем 
  56.  
  57. //записалось или нет ибо скачивание 
  58.  
  59. //должно начаться независимо от этого 
  60.  
  61. header("Location: ".URL_DIR."$namefile");
  62.  
  63. //Переадресуем запрос на скачиваемый файл
  64.  
  65. ?>
  66.  
2. OrmaJever - 11 Сентября, 2011 - 01:08:58 - перейти к сообщению
если реально видимой ошибки нету значит это только BOM символы, нужно сохранить файл в кодировке без BOM
3. foozzi - 11 Сентября, 2011 - 12:25:36 - перейти к сообщению
у меня и так без BOM сохранено
4. Kelly - 11 Сентября, 2011 - 12:27:40 - перейти к сообщению
попробуйте проверять наличие переменной через isset()
5. illy - 11 Сентября, 2011 - 12:29:30 - перейти к сообщению
сохранил в блокноте
6. Champion - 11 Сентября, 2011 - 16:19:52 - перейти к сообщению
OrmaJever пишет:
значит это только BOM символы
Хм.... очень сомневаюсь, что php принял BOM за IF ))

А вообще
foozzi пишет:
in /opt/lampp/htdocs/xampp/comics/d ownload_count.php on line 15
foozzi пишет:
3. //код файла req.php
Мне кажется, что ошибку не видно потому что она в другом файле.
7. foozzi - 11 Сентября, 2011 - 18:33:03 - перейти к сообщению
illy блокнот там ваш маздаевский я не юзаю т.к. у меня нет винды и не было никогда, у меня среда для разработки BlueFish там чтоб сохранить в BOM надо галочки ставить.... которые у меня не стоят соответственно.

Champion там просто коменты забыл переименовать, трабла не в этом
8. Champion - 11 Сентября, 2011 - 18:48:50 - перейти к сообщению
foozzi пишет:
блокнот там ваш маздаевский я не юзаю т.к. у меня нет винды и не было никогда
По-моему, фразы со словами маздаевский и крики типа "у меня нет винды и не было" выглядят просто глупо. Откуда такое стремление всем показать, что вы линуксоид?

foozzi пишет:
там просто коменты забыл переименовать, трабла не в этом
Ну ладно. Но в этом файле точно нет синтаксических ошибок.
9. LIME - 11 Сентября, 2011 - 18:52:11 - перейти к сообщению
возможно код копипастили и затесался непечатаемый символ?
у меня так было только с t_string
(Добавление)
вот я сейчас скопировал ваш код
ошибки нет
возможно затесался \r в конец строки както?
10. OrmaJever - 11 Сентября, 2011 - 19:41:49 - перейти к сообщению
Champion пишет:
Хм.... очень сомневаюсь, что php принял BOM за IF ))

выполни Подмигивание
PHP:
скопировать код в буфер обмена
  1. здесь BOM символ
  2. if(true) {}

Champion пишет:
Мне кажется, что ошибку не видно потому что она в другом файле.

Закатив глазки
11. Champion - 11 Сентября, 2011 - 19:54:04 - перейти к сообщению
OrmaJever пишет:
выполни
Ого, и правда) Причем, если bom написать слитно перед ифом, то будет анекспектед фигурная скобка. А если после бома поставить пробел или энтер, то анекспектед иф. Интересно. Теперь я приобрел кусочек опыта. Нажму тебе юбилейную спасибку)
12. foozzi - 12 Сентября, 2011 - 00:12:50 - перейти к сообщению
Champion потому что я не считаю windows за операционную систему из-за ее ничтожности и меня немного раздражает когда меня посылают юзать софт данного производства
OrmaJever
LIME
за подсказки благодарю, проверю все отпишу
13. LIME - 12 Сентября, 2011 - 08:20:46 - перейти к сообщению
OrmaJever Champion скажите пжлст как можно вставить BOM в произвольное место?
14. illy - 12 Сентября, 2011 - 18:15:43 - перейти к сообщению
LIME пишет:
скажите пжлст как можно вставить BOM в произвольное место?

скопировал и вставил Не понял
15. Champion - 12 Сентября, 2011 - 18:43:55 - перейти к сообщению
foozzi пишет:
потому что я не считаю windows за операционную систему из-за ее ничтожности
Это Ваше личное мнение, но большинство людей, обладающих таким мнением не обладают сколько-нибудь достаточной компетенцией, чтобы давать такие оценки, а просто размахивают языком во все стороны. У линуска есть преимущества, (у винды, кстати, тоже), но произнесенная Вами фраза дает возможность судить о вас как о некомпетентном балаболе.

LIME пишет:
hampion скажите пжлст как можно вставить BOM в произвольное место?
Лично я, чтоб проетистить пример OrmaJever, написал такую вещь.
Файл test.php (с BOM в начале)
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.         $co = file_get_contents('/var/www/***/www/debug/test.php'); // считали файл с bom в начале
  3.         $bom = substr($co, 0,3); // вырезали bom
  4.         $php = "<?PHP
  5.         {$bom} if(true) echo'bzz';"; // сформировали код с bom в середине
  6.         file_put_contents('/var/www/***/www/debug/test1.php',$php);//записали в др файл
Теперь в test1.php - bom в середине кода

 

Powered by ExBB FM 1.0 RC1