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 :: Не работает file _ exists

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
Maksim337
Отправлено: 17 Сентября, 2009 - 21:57:01
Post Id


Частый гость


Покинул форум
Сообщений всего: 255
Дата рег-ции: Июнь 2009  


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




PHP:
скопировать код в буфер обмена
  1. $log='test';
  2. ########## инициализация переменных игры
  3. if(file_exists("p/$log.dat")) # если существует профиль игрока - инициализировать переменные
  4.                                                         {
  5.                                                                 $p_data=file("p/$log.dat");  
  6.                                                                 $data=explode('|',$p_data[0]);  
  7.                                                                 $name=$data[0];
  8.                                                                 $lose=$data[1];
  9.                                                                 $win=$data[2];                                                                  $nichya=$data[3];
  10.                                                                 $points=$data[4];
  11.  
  12.  
  13.                                 if(isset($p_data[1],$p_data[2]))
  14.                                                                                                                                 {
  15.                                                                                                                                 $game=$p_data[1];
  16.                                                                                                                                 $opponent=$p_data[2];
  17.                                                                 }
  18.  
  19.  
  20.  
  21.  
  22.                                                         }
  23.  
  24. if(file_exists("tmp/$game.dat"))
  25.                                                                 {
  26.                                                                         $g_data=file("tmp/$game.dat");
  27.  
  28.                                                                         switch($game)
  29.                                                                                                 {
  30.                                                                                     case $log:
  31.                                                                                                           $action=$g_data[0];  
  32.                                                                                                           $moi=explode('|',$g_data[3]);
  33.                                                                                                           $pro=explode('|',$g_data[4]);
  34.                                                                                                               break;
  35.                                                                                     case $opponent:
  36.                                                                                                                            $action=$g_data[1];
  37.                                                                                                                            $moi=explode('|',$g_data[4]);
  38.                                                                                                                $pro=explode('|',$g_data[3]);
  39.                                                                                                                            break;
  40.                                                                                                 }
  41.  
  42.                                                                         $kol=explode('|',$g_data[2]);
  43.                                                                         if(isset($g_data[5]))
  44.                                                                                                                 {
  45.                                                                                                                         $sto=explode('|',$g_data[5]);
  46.                                                                                                                 }
  47.  
  48.                         }
  49.                                 else{
  50.                                         echo 'no';
  51.                                         }

Так вот получаеться что $game=='test'но почемуто при проверке на наличие файла пишет нет!С кода сильно не ржатьУлыбка в чем проблема не пойму, переменная существует до конца сценария а вот когда применяю в tmp/$game.dat тестирую на денвере и в сети, одно и тоже....
(Добавление)
сори за табуляцию лишнюю, редактор так даетУлыбка

(Отредактировано автором: 17 Сентября, 2009 - 21:58:03)

 
 Top
JustUserR
Отправлено: 17 Сентября, 2009 - 22:35:03
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


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




Может адресация путей разная? Вы адресуете файл через относительный путь (В include конечно же виртуальный web-путь не работает) и указанные вами папки находятся там же где и PHP-скрипт? И правильно ли выставлены права доступа на получении информации о файле (Наводит на мысль раз на винде работает а на хостинге нет)


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Maksim337
Отправлено: 18 Сентября, 2009 - 08:22:23
Post Id


Частый гость


Покинул форум
Сообщений всего: 255
Дата рег-ции: Июнь 2009  


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




на винде тоже не работает папка tmp и файл includ.php в одной директории, все правильно, адрес написал, файл в tmp/test.dat существует... например если в начале сценария обьявить $game='test'.dat; то все работает исправно... хотя по сути $game==$p_data[1]; одно и тоже, а почему не робит?
 
 Top
Viper
Отправлено: 18 Сентября, 2009 - 08:37:37
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


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




результаты file_exists кэшируются. после вызова используйте clearstatcache();


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
Maksim337
Отправлено: 18 Сентября, 2009 - 15:18:26
Post Id


Частый гость


Покинул форум
Сообщений всего: 255
Дата рег-ции: Июнь 2009  


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




ViperJustUserR посиба за внимание! Понял в чем проблема, в переменной $game был еще в конце слова test пробел... Вот и все откуда он ток взялся, функция trim все исправила...
Спасибо всем!
(Добавление)
такая мелочь а так мозги парилаУлыбка
 
 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