[Last Call] Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 4028
  • Last Modified:

Undefined Index when using $_SERVER

I am receiving the following error:

Notice: Undefinded index:
I receive this error only on these variables
      $_Server["PHP_AUTH_USER"]
      $_Server["PHP_AUTH_PW"]
      $_Server["AUTH_TYPE"]
      $_Server["HTTP_ACCEPT_CHARSET"]
      $_Server["HTTP_REFERER"]
      $_Server["REMOTE_HOST"]
I have tested all the other Server Variables and they work fine.
       i.e.
          $_Server["REMOTE_PORT"]
          $_Server["SERVER_PORT"]
      and so on...
      these have no problems

I am running Apache_2.0.47-win32-x86-no_ssl Server on Windows NT
and PHP version 4.3.3
I have altered C:\Winnt\php.ini to
     register_globals = On
I have also tried to use HTTP_SERVER_VARS instead of _SERVER and it returns the exact same errors on the same Variables
I have also tried $PHP_AUTH_USER does not work either
I have found several places where people have said they were having the same problem but the solutions did not work for me.
Please help!
0
davidtrina
Asked:
davidtrina
  • 3
  • 3
1 Solution
 
shmertCommented:
Those array indices will only appear in certain cases:

PHP_AUTH_* variables are only in the $_SERVER array if the user has entered HTTP authentication

HTTP_REFERRER is not set if there is no referrer, i.e. if you just type in a URL directly, or the visitor's browser doesn't do referrals for some reason.
0
 
shmertCommented:
To get a better picture of things, I recommend just doing a
print_r($_SERVER);

that willl show you all the contents of the array.
0
 
davidtrinaAuthor Commented:
give me an example script to use PHP_AUTH_* variables I have tried several different ones with the HTTP authentication but perhaps I am doing it wrong
0
What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

 
davidtrinaAuthor Commented:
Nevermind I just found a page that says
Also note that this does not work using Microsoft's IIS server and the CGI version of PHP due to a limitation of IIS

I tried to use the Module version with the Apache server but the server would not start when I did this
0
 
shmertCommented:
ah, too bad... I'm not sure how you'd get that information from an IIS webserver.
0
 
davidtrinaAuthor Commented:
Its not an IIS server but it is an apache server running on windows and I configured it to use CGI with PHP because I could not load a module through the http.conf file
It keeps telling me the file php4apache.dll could not be found even though it is definitely in that location dont know why.
0
 
aolXFTCommented:
You can't use HTTP authentication with the PHP CGI. You can only use it when you are using PHP as an apache* modue.

Having that said, I would strongly recommend against using HTTP Authentication with PHP, unless you are doing something very specialised, and consider form based authentication instead.

If you really want to use HTTP Authentication, you'll need to get PHP working as an Apache* Module.



*I could be open to correction on my assumption that this only works with apache, but it certainly doesn't work with CGI, regardless of the server used to execute the CGI Script, since such Authentication is not part of the CGI "Protocol".
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

  • 3
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now