alldeles nyligen fungerade det att skriva $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"]; för att få ip nummret. Nu får jag varningen
Warning: Undefined index: HTTP_X_FORWARDED_FOR
16 svar · 401 visningar · startad av Alpha II
alldeles nyligen fungerade det att skriva $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"]; för att få ip nummret. Nu får jag varningen
Warning: Undefined index: HTTP_X_FORWARDED_FOR
Funkar $HTTP_X_FORWARDED_FOR? Funkar $REMOTE_ADDR?
Kanske du kör dokumentet på två olika servers, kan ha något med serverinställningar att göra.
skapade en fil med det här innehållet:
<?
echo $HTTP_X_FORWARDED_FOR."<br>";
echo $REMOTE_ADDR."<br>";
echo $http_server_vars["http_x_forwarded_for"];
?>
Och resultatet:
Warning: Undefined variable: HTTP_X_FORWARDED_FOR in c:\documents and settings\administratör\mina dokument\webb\räknare\test.php on line 3
127.0.0.1
Warning: Undefined variable: http_server_vars in c:\documents and settings\administratör\mina dokument\webb\räknare\test.php on line 5
Inget fungerar alltså :(
Lös det så här:
<?php
function getIP () {
if ( isset ( $HTTP_X_FORWARDED_FOR ) )
return $HTTP_X_FORWARDED_FOR;
else
return $REMOTE_ADDR;
}
...
echo "Ditt IP är: " . getIP ();
?>
Red.}
Eller prova med:
getenv ( $HTTP_X_FORWARDED_FOR );
Kör:
<?
phpinfo();
?>
för att se vad som är fördefinierat när dina script anropas.
/nicclas - https://www.nyhetsrubriker.com
och detta blir resultatet.... :l
Warning: Undefined variable: HTTP_X_FORWARDED_FOR in c:\documents and settings\administratör\mina dokument\webb\räknare\test.php on line 4
Warning: Undefined variable: REMOTE_ADDR in c:\documents and settings\administratör\mina dokument\webb\räknare\test.php on line 7
Ditt IP är:
Redigerade lite i mitt inlägg ovan, kolla igenom det igen. :)
Kan ju vara nåt skumt som hänt med PHP, testa att starta om servern.
har startat om: fungerar fortfarande inte
har även skickat dig ett pm med en url till min phpinfo() sida... fattade inte vad jag skulle kolla efter :l
Du kan ju även prova $HTTP_SERVER_VARS['REMOTE_ADDR'].
ip-nummer lokalt är ju 127.0.0.1 så med de exempel du visat så fungerar $REMOTE_ADDR om det inte ligger i en function.
Men jag var ju uppkopplad när jag testade och jag hade inte ip nummret 127.0.0.1 :l
$REMOTE_ADDR är kopplat till localhost, när du testkör. Låter du andra användare komma åt dina dokument funkar det fin-fint. :)
Men innan jag helt plösligt fick fel med ip nummrerna såg jag mitt eller hmm.. ett "riktigt" ip nummer när jag testade med det... :x
ojojoj
Nu kom jag på vad jag gjorde som jag inte gjorde förrut... förrut skrev jag ip och då fungerade det. Nu när jag skrev localhost fungerade det inte :)
Men hur ska jag göra? Jag vill ju att jag ska se ip nummret även när jag skriver localhost, spelar ingen roll om det är 127.0.0.1 men jag vill inte få felmeddelande. Och jag vill at den ska visa rätt ip för bbesökarna.. det gör den inte med $REMOTE_ADDR :l
Gick det inte med $HTTP_SERVER_VARS['REMOTE_ADDR'] ?
Nu är jag ännu mer förvirrad!
När jag testar sidan genom att skriva mitt ip nummer så fungerar det. Men om någon annan gör det fungerar det inte. Är det nått dumt fel i apache? Har aldrig kört det förut men jag ville testa :)
vad e det för skillnad på $HTTP_X_FORWARDED_FOR och $REMOTE_ADDR ?
Använder det hära nu.. skiter i om det visar rätt ip nummer ger iaf inte fel :)
if (getenv('HTTP_X_FORWARDED_FOR')) {
$ip = getenv('HTTP_X_FORWARD_FOR');
} else {
$ip = getenv('REMOTE_ADDR');
}