ich eine Session-Variable, die ich wie folgt festgelegt:PHP Session-Variable Änderungen zwischen den Seiten
<?php
$token = md5(uniqid(rand(), true));
session_start();
$_SESSION['token'] = $token;
print $_SESSION['token'];
?>
Dann auf einer anderen Seite habe ich dies:
<?php
session_start();
print $_SESSION['token'];
?>
Das Problem ist, dass sie es nicht tun Spiel. Ich bekomme zwei völlig unterschiedliche Saiten. register_globals
ist ausgeschaltet. Ich habe bemerkt, dass, wenn ich md5(....)
auf eine konstante Zeichenfolge zB: md5('example')
gesetzt habe, dass es wie erwartet funktioniert und die zwei Zeichenfolgen übereinstimmen. Aber das sollte nicht wichtig sein. Irgendwelche Ideen, was hier vor sich geht?
EDIT: Apache Acces Log:
127.0.0.1 - - [18/Sep/2010:17:46:09 -0500] "GET /index.php HTTP/1.1" 200 3182 "-" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_4; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.59 Safari/534.3"
127.0.0.1 - - [18/Sep/2010:17:46:09 -0500] "GET /style/style.css HTTP/1.1" 304 - "http://cmb.local:8888/index.php" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_4; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.59 Safari/534.3"
127.0.0.1 - - [18/Sep/2010:17:46:09 -0500] "GET /js/signup.js HTTP/1.1" 304 - "http://cmb.local:8888/index.php" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_4; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.59 Safari/534.3"
127.0.0.1 - - [18/Sep/2010:17:46:09 -0500] "GET /index.php HTTP/1.1" 200 3182 "http://cmb.local:8888/index.php" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_4; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.59 Safari/534.3"
127.0.0.1 - - [18/Sep/2010:17:46:10 -0500] "GET /index.php HTTP/1.1" 200 3182 "http://cmb.local:8888/index.php" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_4; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.59 Safari/534.3"
Ich bin nicht ganz sicher, wie das lesen, aber es scheint mir, dass meine Datei (index.php, die ich davon ausgehen, ist die ‚/‘) wird dreimal aufgerufen. Lies ich das richtig? Was ist da los?
Ich kann dieses Verhalten nicht reproduzieren. Überprüfen Sie Ihre Zugriffsprotokolle und geben Sie weitere Informationen über die von Ihnen verwendete Umgebung an. Es ist offensichtlich, dass der bereitgestellte Code nicht das gesamte System ist, sondern Sie das Token wahrscheinlich an einem anderen Ort zurücksetzen. –
Es ist bekannt, dass einige Browser-Plugins das Verhalten verursachen, dass mehrere Anforderungen gesendet werden, anstatt eines. – James
@Josh K Ich bin nicht ... beide Seiten sind für den Moment statisch. Das einzige, was gesetzt oder geändert wird, ist das Token und das passiert nur an einer Stelle, wie oben gezeigt. – williamg