cookies
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
aufruf
befehl
beitrag
blabla
client
count
exit
fragen
quellen
result
rufen
session
set
space
stunden
update
username
variable
verdutzt beitrag
wolltest
-
Hi Ho!
Also ich war vorhin am verzweifeln!
K?nnt ihr mir helfen wie man die cookies von WBB ausliest?? Das sind so komische bbcookies! Die wollen sich irgendwie nicht mi $_COOKIE["blabla"]; auslesen lassen... aber warum?? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Von welcher Seite wolltest Du besagte Cookies auslesen? M?glicherweise durfte auf diese Cookies nicht zugegriffen werden!
-
?berpr?fe, wo das Cookie verf?gbar ist. Das machst Du, indem Du den Pfad des Cookies ausliest (?ber Browser).
-
H?? Also wie meinste das? cu tomorrow^^
-
Cookies, die beim Client liegen, bringen uns ja wenig, wenn wir diese nicht auslesen k?nnen. Der Browser sendet die Cookies, die er local auf dem Rechner finden, bei jedem Seitenaufruf mit. In PHP sind die Cookies im Array $_COOKIE vorhanden. Wie das $_GET und $_POST Array ist auch diese Variable immer vorhanden. Wenn keine Cookies ?bergeben wurden, hat dieses Array 0 Elemente, ist aber trotzdem vorhanden.
<?php error_reporting(E_ALL); echo "Es wurden ".count($_COOKIE)." Cookie(s) ?bergeben"; ?>
Um ein speziellen Wert aus einem Cookie auszulesen, muss man auf das entsprechende Arrayelement mit dem entsprechenden Index zugreifen. Dabei muss man aufpassen dass man nur auf Arrayelemente zugreifen die auch vorhanden sind.
<?php error_reporting(E_ALL); if(isset($_COOKIE['name'])) { echo "Wert im Cookie 'name' : ".$_COOKIE['name']."<br />\n"; } else { echo "Sie haben kein Cookie 'name' zum Server gesendet<br />\n"; } ?>
Wenn sie den setcookie-Befehl aufrufen wird der Cookie, den man gesendet hat, im aktuellen Scriptaufruf nicht im Array $_COOKIE gespeichert. Kann ja auch nicht gehen, denn setcookie sendet einen Header-Befehl zum Client, dass er einen Cookie setzen soll. Die Cookies, die der Browser zum Server schickt, wurden schon zum Server geschickt. Deshalb muss man sich folgendes merken. Cookies, die man mit setcookie setzen m?chte, sind, wenn ?berhaupt, erst beim n?chsten Aufruf der Seite im Array $_COOKIE. Folgende Abfrage wird nicht Funktionieren.
<?php error_reporting(E_ALL); setcookie("testcookie", "testwert", time()+(60*60)); // Cookie f?r 1 Stunde setzen. if(isset($_COOKIE['testcookie'])) { echo "User hat den Cookie akzeptiert\n"; } else { echo "User hat den Cookie nicht akzeptiert\n"; } ?>
Um zu gucken ob ein Browser/User Cookies akzeptiert, muss man eine Seite coden, die nur den Cookie setzt. Dann kann man den User mit diversen Techniken auf eine andere Seite weiterleiten. Auf dieser Seite kann man dann pr?fen, am besten mit isset(), ob der Browser/User den grad gesetzten Cookie auch wirklich akzeptiert hat oder nicht. Erst beim 2. Aufruf der Domain (Welche Seite ist egal, die Cookies werden bei jedem Seitenaufruf gesendet) ist der Cookie im Array $_COOKIE.
Quelle: http://tut.php-q.net/cookies.html
Beitrag ge?ndert am 14.10.2005 07:40 von newwarrior
Beitrag ge?ndert am 14.10.2005 07:41 von newwarrior -
? hab ich nich ganz verstanden^^
Also.. mein WBB lite macht ja diese cookies mit dem code:
<?
if($wbbuserdata['userid']) access_error();
if(isset($_POST['send'])) {
$wbb_userpassword=md5($_POST['l_password']);
$result = $db->query_first("SELECT * FROM bb".$n."_users WHERE username = '".addslashes(htmlspecialchars($_POST['l_username']))."' AND password = '".$wbb_userpassword."' AND activation = 1");
if($result['userid']) {
if($result['usecookies']==1) {
bbcookie("wbb_userid","$result[userid]",time()+3600*24*365);
bbcookie("wbb_userpassword","$wbb_userpassword",time()+3600*24*365);
}
$db->unbuffered_query("DELETE FROM bb".$n."_sessions WHERE userid = '$result[userid]'",1);
$db->unbuffered_query("UPDATE bb".$n."_sessions SET userid = '$result[userid]' WHERE hash = '$sid'",1);
if(isset($_POST['url']) && $_POST['url'] && strstr($_POST['url'],"?")) $url=convert_url($_POST['url'],$sid,$wbbuserdata['nosessionhash']);
else {
if($result['nosessionhash']==1) unset($session['hash']);
$url="index.php?sid=$session[hash]";
}
eval("redirect(\"".$tpl->get("redirect_login")."\",\"$url\");");
exit();
}
else eval("error(\"".$tpl->get("error_login")."\");");
}
eval("\$tpl->output(\"".$tpl->get("login")."\");");
?>
Aber wie rufe ich die dann auf??? Denn das sind ja irgendwelche anderen cookies oder wie? oder was hat das nichts zu sagen???
Ehm.. und dann noch ne frage:
Wie amch ich das dass ich frag ob das cookie mit dem namen blbla bla existiert?? Also mit ner if anwei?ung? -
print_r($_COOKIE);
Listet dir alle vom Browser gesendeten Kekse auf, wenn welche vorhanden sind.
Und ein bestimmtes Cookie holst du dir mit seinem Namen:
$my_cookie = 'Testkeks';
if( isset( $_COOKIE[$my_cookie] ) ) {
print('Der Browser hat einen Keks mit dem Namen "'.$my_cookie.'" geschickt.');
}
else
{
print('Der Keks "'.$my_cookie.'" wurde nicht gesetzt!');
} -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage