Is this something that can be turned on/off in the .ini file or via the webserver itself? Neither my test servers, nor the ISP which hosts my sites show any REDIRECT variables. They don't show HTTP_REFERER either, but I only expect to see that when a link is clicked from another page (I could be wrong about that too). I set up two urls if you want to take a look (referer2.php just calls phpinfo() )...

http://www.by-tor.com/referer1.php (does a header redirect to referer2.php)

http://www.by-tor.com/urlrewrite (does a server redirect to referer2.php)

Rasmus Lerdorf wrote:
Sure, but his phpinfo() does show REDIRECT_* vars as it is the server
doing the redirect.  An external redirect (HTTP Location header) is not
going to show anything as it has nothing to do with the server.

-Rasmus

On Tue, 24 Dec 2002, John Nichel wrote:


He's looking to see if there is a redirect.  The thing I'm seeing is
that if the redirect comes from a php header call, or a url rewrite from
the server, nothing is set for REDIRECT_URL or HTTP_REFERER.  This is
the $_SERVER output I get on my machine from a url rewrite and php header

Array
(
    [DOCUMENT_ROOT] => /webserver/docs/vhosts/backup
    [HTTP_ACCEPT] =>
text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,video/x-mng,image/png,image/jpeg,image/gif;q=0.2,text/css,*/*;q=0.1
    [HTTP_ACCEPT_CHARSET] => ISO-8859-1, utf-8;q=0.66, *;q=0.66
    [HTTP_ACCEPT_ENCODING] => gzip, deflate, compress;q=0.9
    [HTTP_ACCEPT_LANGUAGE] => en-us, en;q=0.50
    [HTTP_CACHE_CONTROL] => max-age=0
    [HTTP_CONNECTION] => keep-alive
    [HTTP_COOKIE] => PHPSESSID=a4a0a7c613f817b0344ff70af03b88ae
    [HTTP_HOST] => www.backup.jcn
    [HTTP_KEEP_ALIVE] => 300
    [HTTP_USER_AGENT] => Mozilla/5.0 (X11; U; Linux i586; en-US;
rv:1.0.1) Gecko/20020823 Netscape/7.0
    [PATH] => /sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin
    [REMOTE_ADDR] => 11.11.68.1
    [REMOTE_PORT] => 2380
    [SCRIPT_FILENAME] => /webserver/docs/vhosts/backup/referer2.php
    [SERVER_ADDR] => 11.11.68.3
    [SERVER_ADMIN] => [EMAIL PROTECTED]
    [SERVER_NAME] => www.backup.jcn
    [SERVER_PORT] => 80
    [SERVER_SIGNATURE] => Apache/1.3.26 Server at www.backup.jcn Port 80
    [SERVER_SOFTWARE] => Apache/1.3.26 (Unix) PHP/4.2.3 mod_perl/1.27
    [GATEWAY_INTERFACE] => CGI/1.1
    [SERVER_PROTOCOL] => HTTP/1.1
    [REQUEST_METHOD] => GET
    [QUERY_STRING] =>
    [REQUEST_URI] => /referer2.php
    [SCRIPT_NAME] => /referer2.php
    [PATH_TRANSLATED] => /webserver/docs/vhosts/backup/referer2.php
    [PHP_SELF] => /referer2.php
    [argv] => Array
        (
        )

    [argc] => 0
)

But if I use JavaScript or Meta refresh to do the redirect, I get the
HTTP_REFERER.  I also get it when I link to the page from another.  I
didn't get any REDIRECT variables in any of the cases.  Are these
supposed to be in the $_SERVER array?

Rasmus Lerdorf wrote:

Isn't the question about REMOTE_HOST? Why are you talking about referer
stuff at all? The two have nothing to do with each other. REMOTE_HOST is
the resolved version of REMOTE_ADDR and is rarely set as it is way too
time consuming to do a reverse DNS lookup on each ip that connects to your
web server.  But, REMOTE_ADDR is always set and you can use that to see
where requests are coming from.  But this has nothing to do with the
referer.

If you are looking to detect the redirect, then the presence of REDIRECT_*
variables will tell you that, but again, this has nothing to do with the
referer.

If you want to know where something was redirect from, try REDIRECT_URL.

-Rasmus

On Tue, 24 Dec 2002, John Taylor-Johnston wrote:



John,
CC: a copy of your next posts. I'll be back on Friday. Jingle Bells and all.
Thanks for thinking about it. What about turning on: session.referer_check =
Or soemthing else in php.ini

John

John Nichel wrote:



Well, that won't help then.  I saw that REMOTE_PORT was different in
your last two emails, but if it's ever changing....

I'm doing a little testing here on my end and have discovered that
REFERER isn't set if the server is doing a redirect.  I made a simple
little two page script.  The first page just contained this (the site
doesn't have DNS outside of my network)...

header ( "Location: http://www.backup.jcn/referer2.php"; );

and referer2.php contained...

print_r ( $_SERVER );

When I went through the redirect, REFERER was NOT set, but when I
clicked on a link from another page, it was set.  I'll look at it a bit
longer to see if there is anything out there to tell it was redirected,
but it's not looking good.

John Taylor-Johnston wrote:


[SERVER_PORT] => 80

Server port does not change.

Will it do anything to change my php.ini?

session.referer_check =

It is set to nothing at the moment, copied and pasted.

How do I check for the port number? My redirects come through:




[REMOTE_PORT] => 1070
[REMOTE_PORT] => 1074

They are also increasing. It's a bit like a counter :) no?

Even the link to http://compcanlit.usherbrooke.ca makes remote_port increase:




[REMOTE_PORT] => 1079

John

John Nichel wrote:




Like John said, REFERER isn't always set, and that looks to be the case
here.  One thing I did notice is that the redirect comes thru on a
different port.  If this is consistant, you may be able to use this.

John Taylor-Johnston wrote:



echo ( "<pre>\n" );
print_r ( $_SERVER );
echo ( "</pre>\n" );

On the redirect from http://compcanlit.ca/, I get:

Array
(
 [DOCUMENT_ROOT] => /var/www/html2
 [HTTP_ACCEPT] => image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */*
 [HTTP_ACCEPT_CHARSET] => iso-8859-1,*,utf-8
 [HTTP_ACCEPT_ENCODING] => gzip
 [HTTP_ACCEPT_LANGUAGE] => en,fr
 [HTTP_CONNECTION] => Keep-Alive
 [HTTP_HOST] => compcanlit.usherbrooke.ca
 [HTTP_USER_AGENT] => Mozilla/4.79 [en]C-CCK-MCD   (Win98; U)
 [PATH] => /sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin
 [REDIRECT_STATUS] => 200
 [REDIRECT_URL] => /
 [REMOTE_ADDR] => 142.169.108.39
 [REMOTE_PORT] => 1066
 [SCRIPT_FILENAME] => /var/www/html2/index.html
 [SERVER_ADDR] => 132.210.13.10
 [SERVER_ADMIN] => root@localhost
 [SERVER_NAME] => compcanlit.usherbrooke.ca
 [SERVER_PORT] => 80
 [SERVER_SIGNATURE] =>
Apache/1.3.27 Server at compcanlit.usherbrooke.ca Port 80


 [SERVER_SOFTWARE] => Apache/1.3.27 (Unix)  (Red-Hat/Linux) mod_ssl/2.8.12 OpenSSL/0.9.6b DAV/1.0.3 PHP/4.1.2 mod_perl/1.26
 [GATEWAY_INTERFACE] => CGI/1.1
 [SERVER_PROTOCOL] => HTTP/1.0
 [REQUEST_METHOD] => GET
 [QUERY_STRING] =>
 [REQUEST_URI] => /
 [SCRIPT_NAME] => /index.html
 [PATH_TRANSLATED] => /var/www/html2/index.html
 [PHP_SELF] => /index.html
 [argv] => Array
     (
     )

 [argc] => 0



--
By-Tor.com
It's all about the Rush
http://www.by-tor.com

--
John Taylor-Johnston
-----------------------------------------------------------------------------
"If it's not open-source, it's Murphy's Law."

' ' '   Collège de Sherbrooke:
ô¿ô   http://www.collegesherbrooke.qc.ca/languesmodernes/
 -     Université de Sherbrooke:
        http://compcanlit.ca/
        819-569-2064



--
By-Tor.com
It's all about the Rush
http://www.by-tor.com
--
John Taylor-Johnston
-----------------------------------------------------------------------------
"If it's not open-source, it's Murphy's Law."

' ' '   Collège de Sherbrooke:
ô¿ô   http://www.collegesherbrooke.qc.ca/languesmodernes/
 -     Université de Sherbrooke:
        http://compcanlit.ca/
        819-569-2064



--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



--
By-Tor.com
It's all about the Rush
http://www.by-tor.com






--
By-Tor.com
It's all about the Rush
http://www.by-tor.com


--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to