Suche auf lima-city
-
in: Wie finde ich die IP meiner Besucher raus?
geschrieben von seitetop
Hallo ... einen schönen guten Morgen,
die IP-Adresse des Besuchers ist normal das hier:$_SERVER['REMOTE_ADDR']
aber weil Lima-Seiten über Proxys, deshalb so:$_SERVER['HTTP_X_FORWARDED_FOR']
if (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && !empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { $userip = $_SERVER['HTTP_X_FORWARDED_FOR']; } else { $userip = $_SERVER["REMOTE_ADDR"]; }
und wenn wir schon bei $_SERVER Variablen sind .... es kommt häufig vor,
dass bei Auslesen des HTTP_REFERER ein Fehler kommt (No such Key in Array)
weil dieser "KEY" wird nur dann gesetzt, wenn es auch einen Referer gibt (Herkunft)
if (isset($_SERVER['HTTP_REFERER']) && !empty($_SERVER['HTTP_REFERER'])) { $herkunft = $_SERVER['HTTP_REFERER']; } else { $herkunft = '-keine-'; }
anstatt '-keine-' kann man beliebig anderen String für "nicht vorhanden" machen
-
in: Cookies werden nicht gesetzt
geschrieben von seitetop
Hallo
beim Cookie setzen ist der erste Wert (Parameter) der "Name" (Bezeichnung)
und nur der zweite Parameter ist der Inhalt (value), ....
setcookie( "Name" , "Wert" );
... der dritte Parameter ist dann das Verfalls-Datum (expire date)
$xpiredate = time()+3600; setcookie( "Name" , "Wert" , $xpiredate );
... weitere Argumente (path, domain, secure) siehe PHP Manual: setcookie
wenn Du mehrere Werte in ein einziges Cookie speichern willst,
dann musst Du die einzelnen Werte als ein Array übergeben
weil ja nur 1 Parameter (der zweite) für Inhalte (value) da ist
$timestamp = time(); $xpiredate = $timestamp+3600; // -- zu Speichernde Daten in Array ablegen $set_data = array ( 100, $_GET['u'], 'Infotext', $timestamp ); // -- beim Erstellen des Cookie als Value das Array angeben setcookie( "MeinCookie" , $set_data , $xpiredate );
dann hast Du in Deinem Cookie (Name) die Daten (Value) als Array
und um Array im Broser auszugeben genügt ein einfaches "echo" nicht
wenn $_COOKIE["MeinCookie"] ein Array ist, dann geht das so NICHT ....
....echo $_COOKIE["MeinCookie"];......
zur Anzeige (Debug) bei Array empfiehlt sich als Ausgabe print_r()
// -------------------- print '<pre style="margin:2px; padding:4px; text-align:left; background:#DEDEDE; color:#000066;">'."\n"; print_r($_COOKIE); print '</pre>'; // --------------------
damit sieht man in der Regel alle Daten auch Arrays und Sub-Arrays, etc.
Beispiel
<?php // ------------------------------------------------- $value1 = "my cookie value"; $value2 = 17; $value3 = time(); $val_usr = $_GET['u']; $val_usr = htmlentities($val_usr); $val_sec = $_GET['s']; $val_sec = htmlentities($val_sec); // ----------------------------------- $arr_data1 = array( $val_usr, $value1, $value2, $value3 ); // ---- Array 1 ---- $arr_data2 = array( $val_sec, $value1, $value2, $value3 ); // ---- Array 2 ---- // ----------------------------------- $timestamp = time(); $expir_date = ($timestamp + 3600); setcookie( "TestCookie1" , $arr_data1 , $expir_date); // ---- Cookie1 = (Array 1) ---- setcookie( "TestCookie2" , $arr_data2 , $expir_date); // ---- Cookie2 = (Array 2) ---- setcookie( "TestCookie3" , "Blablabla." , $expir_date); // ---- Cookie3 = (String) ---- // ------------------------------------------------- ?> <html> <body> <br /> TEST <?php // ------------------------------------------------- $cname1 = 'TestCookie1'; // ------------------------------------------------- if (isset($_COOKIE[$cname1])) { if (is_array($_COOKIE[$cname1]) && !empty($_COOKIE[$cname1])) { echo " <br /> COOKIE:: ".$cname1." \n"; foreach ($_COOKIE[$cname1] as $name => $value) { echo " <br /> KEY: ".$name." --- VALUE: <strong>".$value."</strong> \n"; } } } // ------------------------------------------------- print '<br />'; print '<br />'; print '<br /> Alle COOKIE Daten '; print '<br />'; print '<pre style="margin:2px; padding:4px; text-align:left; background:#DEDEDE; color:#000066;">'."\n"; print_r($_COOKIE); print '</pre>'; // ------------------------------------------------- ?> <br /> <br /> </body> </html>