$_ENV, $_SERVER, getenv() - странно работает

4m@t!c

Александр
$_ENV, $_SERVER, getenv() - странно работает

Поставил обновленный Апач 1.3.31 (стоял 1.3.11), PHP 4.3.8 ISAPI (стоял 4.3.1 CGI).
У меня был скрипт, в котором я определял IP по массиву $_ENV
['REMOTE_ADDR'], $_ENV['HTTP_X_FORWARDED_FOR']
После переустановки - перестал быть доступным массив $_ENV[].
Как говорит мана getenv() не будет работать, если РНР модуль Апача. но getenv() у меня отрабатыват.
Почему?
И еще, не в тему, но после переуствновки Апача и ПХП почему-то нажатие кнопки на HTML-страницах начало отрабатываться со второго раза..;(((
 

4m@t!c

Александр
Автор оригинала: neko
не путай isapi фильтр и модуль к апачу
я почему-то считал, что это одно и тоже..;(((..
из install.txt (PHP)
....
You need to ensure that the dlls which php uses can be found. The precise
dlls involved depend on which web server you use and whether you want to
run php as a cgi or as a server module. php4ts.dll is always used. If you are
using a server module (e.g. isapi or apache) then you will need the relevent
dll from the sapi folder.
...
 

4m@t!c

Александр
Автор оригинала: tony2001
isapi or apache
Понимаю, что глупо вопрос прозвучит, но как я тогда установил ПХП, когда прописал в conf.httpd строки
LoadModule php4_module "c:/php/sapi/php4apache.dll"
AddModule mod_php4.c
AddType application/x-httpd-php .php
Понимаю, что вопрос звучит по-дурцки, но я уже когда-то пытался получить ответ и не нашел его (ответ, на вопрос что конкретно есть ISAPI).
а вообще, почему потерялся массив $_ENV[], а обращение через getenv() - осталось?
 

tony2001

TeaM PHPClub
4m@t!c
тогда это проблемы твоего кода.
пример из 5-ти строк может помочь.
 

4m@t!c

Александр
PHP:
   function add_oenumsearch_to_stat($f_oenumsearch, $f_tmid, $f_findornot)
   {
      $f_error = new error();
      print_r($_ENV);
      echo getenv("REMOTE_ADDR");

      echo $f_oenumsearch."\t".$f_tmid."\t".$f_findornot."<BR>";
      $this->c_tmid = $f_tmid;
      if (isset($_ENV["HTTP_X_FORWARDED_FOR"]))
         $ip = $_ENV["HTTP_X_FORWARDED_FOR"];
      else
         $ip = $_ENV["REMOTE_ADDR"];
      if (isset($_SESSION["s_login"]))
         $f_login = $_SESSION["s_login"];
      else
         $f_login = "anonimous";
      $dataquery = date("Y-m-dh:i:s");
      $query = "INSERT INTO querystat VALUES('$ip', '$f_login', '$dataquery', '$f_oenumsearch', '$f_tmid', '$f_findornot')";
      $result = mysql_query ($query);
      echo $query."<BR>";
      if (!$result)
      {
         $f_error->display_error("2");
         return false;
      }
   }
в логах Апча
PHP:
[Wed Aug 04 14:26:48 2004] [error] PHP Notice:  Undefined index:  REMOTE_ADDR in e:\\apache\\www\\class\\part.class on line 417
 

tony2001

TeaM PHPClub
спасибо за 5-ть строк, о которых я просил.
я даже читать это не буду.
 

neko

tеam neko
хаха
а кто тебе сказал что в env будет ремоут_аддресс?
 

4m@t!c

Александр
Автор оригинала: neko
хаха
а кто тебе сказал что в env будет ремоут_аддресс?
Раньше был...
а сейчас делаю
print_r($_ENV)
Мне выдает
PHP:
Array ( [ALLUSERSPROFILE] => C:\Documents and Settings\All Users [CommonProgramFiles] => C:\Program Files\Common Files [COMPUTERNAME] => POPOFF [ComSpec] => C:\WINDOWS\system32\cmd.exe [ND_LANG] => enusasc [NUMBER_OF_PROCESSORS] => 1 [OS] => Windows_NT [Path] => C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem [PATHEXT] => .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH [PROCESSOR_ARCHITECTURE] => x86 [PROCESSOR_IDENTIFIER] => x86 Family 15 Model 2 Stepping 7, GenuineIntel [PROCESSOR_LEVEL] => 15 [PROCESSOR_REVISION] => 0207 [ProgramFiles] => C:\Program Files [SystemDrive] => C: [SystemRoot] => C:\WINDOWS [TEMP] => C:\WINDOWS\TEMP [TMP] => C:\WINDOWS\TEMP [USERPROFILE] => C:\Documents and Settings\LocalService [windir] => C:\WINDOWS )
 

4m@t!c

Александр
я был на этой урле, но, может, я не понимаю. Там описаны глобальные массивы. Вопрос-то в том,почему в $_ENV ПЕРЕСТАЛИ хранится REMOTE_ADDR и т.д., ведь там хранятся переменные окружения, в моем случае - это Апач. Раньше он передавал же каким-то образом эти данные, а теперь - нет. Почему?
 
Сверху