горю с dir'ом: сервак выдаёт Call to a member function on a non-object in ...

  • Автор темы -=GogA[qwe]=-
  • Дата начала

-=GogA[qwe]=-

Guest
горю с dir'ом: сервак выдаёт Call to a member function on a non-object in ...

горю с dir'ом

Проблема выглядит так:
есть скрипт search.php. ему передайтся GET'ом строка. Он скинирует текущую директорию (с другими нет вопросов) функцией dir(""), и , по идее, должен получать список файлов и искать в них подстроку, но скрипт натыкается на ошибку... : Call to a member function on a non-object in ...
самое интересное, что этот скрипт под форточками пашет:(
на серваке: FreeBSD 4.7-RELEASE

зы. горю. сайт стоит.... плиз...
 

NiC

Буратино был тупой
Если под Windows работает, а под FreeBSD нет, копайся в пермишенах сканируемой директории. 99% - проблема именно там.
 

Demiurg

Guest
NiC
как связаны пермишены и " Call to a member function on a non-object in ..." ?
 

-=GogA[qwe]=-

Guest
немного код порезал, но главное осталось:
PHP:
function dirf($path,$sp)
{
global $num;
$d = dir($path);
while (false !== ($entry = $d->read()))
 {
  if (($entry!="..")&&($entry!=".")) 
   {
    if ($path)
     {
      $qpath=$path."/";
     }
    else
     {
      $qpath="";
     }
    if (str_replace(".","point",$entry)!=$entry)
     {
      $fr=fopen($qpath.$entry,"r");
      // код
      fclose($fr);
      print("результат");
     }
    if (str_replace(".","point",$entry)==$entry)
     {
      dirf($qpath.$entry,$sp."  ");
     }
   }
  }
 $d->close();
}
dirf("","");
Поясните:
копайся в пермишенах сканируемой директории
 

Winer

Мимо проходил
-=GogA[qwe]=-
а может он не понимает empty string как имя папки ??? ты путь нормальный пробовал указывать ???
 

-=GogA[qwe]=-

Guest
разумеется если писать dir("data") или dir("img") он соображает... $entry = $d->read() работает.... но если dir("") то на строке $entry = $d->read() выдаётся: Call to a member function on a non-object in ...

надо просто как-то правильно указать на текущую директорию...
была также идея переместить скрипт search.php в другую папку... но не только в search.php у меня такая проблема...
 

Winer

Мимо проходил
-=GogA[qwe]=-
я же вроде говорил уже :)) текущая директория(откуда запущен скрипт) = get_cwd() или getcwd() - точнее в мане

-~{}~ 19.04.04 00:49:

или же ./ (не уверен что на всех ОС сработает)
 

-=GogA[qwe]=-

Guest
ага, а я говорил, что это выдаёт /www/host/site/ и дописывает: доступа нема :(

-~{}~ 19.04.04 00:53:

и ./ не работает

-~{}~ 19.04.04 00:56:

скрипт:
PHP:
<?php
print(getcwd()."<br>");
$d = dir(getcwd());
echo "Handle: ".$d->handle."<br>\n";
echo "Path: ".$d->path."<br>\n";
while (false !== ($entry = $d->read())) {
    echo $entry."<br>\n";
}
$d->close();
?>
под окнами пашет, а на серваке пишет:

/www/host/site

Warning: dir(/www/host/site): failed to open dir: Permission denied in /www/host/site/qwe.php on line 3
Handle:
Path:

Fatal error: Call to a member function on a non-object in /www/host/site/qwe.php on line 6
 

Winer

Мимо проходил
а у тебя пермишены на листинг(search/execute) директории данной есть ???
 

Frol

Новичок
-=GogA[qwe]=-
это какой твой вопрос на форуме по поводу прав на файл/папку?
 

-=GogA[qwe]=-

Guest
еслм я правильно понял просьбу, то права на site: rwxrwxrwx...
 

Линк

Guest
версия php и точный код ошибки?

-~{}~ 19.04.04 15:55:

да! права на верхние папки, и не стоит ли safe mode
а еще лучше phpinfo() сюда
 

-=GogA[qwe]=-

Guest
Линк
смотри http://www.fatal.ru/phpinfo.php...

safe_mode On On
safe_mode_exec_dir /www /www
safe_mode_gid Off Off
safe_mode_include_dir /usr/local/php/lib/php/ /usr/local/php/lib/php/

и т д

-~{}~ 19.04.04 19:38:

всё что он пишет:
Fatal error: Call to a member function on a non-object in /www/host/search.php on line 57

-~{}~ 19.04.04 19:41:

PHP Version 4.3.6
 

Линк

Guest
забудь про эту месагу

важно лишь
Код:
Warning: dir(/www/host/site): failed to open dir: Permission denied in /www/host/site/qwe.php on line 3
Handle:
Path:
скорее всего дело в safe_mode On On

обращаться надо в саппорт сервака
 

-=GogA[qwe]=-

Guest
ну а как должно быть... по крайней мере, если будет safe_mode Off Off, то должно работать?

как тогда скрипт написать, с поиском по текущей директории?
хотя можно скрипт засунуть в site/search/search.php и вызывать его от туда....
 
Сверху