我创建了两个文件(test.php和test2.php)。
test.php应该增加数据库中的计数器。然后应该将其重定向到test2.php
一切正常,但是现在我设置了$ _SESSION,现在将其计数器增加了2。没有session_start可以正常工作,但是却没有设置我的$ _SESSION。
test.php
<?php
if (!isset($_SESSION)) { session_start(); }
include_once("dbtest.php");
$id = mysqli_real_escape_string($conn, $_GET["id"]);
mysqli_query($conn, "update users set clicks = clicks + 1 where id = ".$id);
$_SESSION['test_id'] = $id;
header("Location: test2.php");
?>
test2.php
<?php
if (!isset($_SESSION)) { session_start(); }
if(isset($_SESSION['test_id'])) {
echo $_SESSION['test_id'];
}
?>
应将计数器增加1。
答案 0 :(得分:0)
似乎与浏览器或客户端发送的OPTIONS
方法有关。
我认为他们将其称为"pre flight"
浏览器/客户端的内部检查,以查看request
是否具有有效的HEADERS
。
https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/OPTIONS
要调试, 在打开日志持久性的情况下输入浏览器/客户端的网络调试。
回答问题:
即使发送了OPTIONS
HTTP方法,您的某些代码也会被执行。即使您使用的是PHP框架,也可能发生同样的情况,因此也可能是由于您使用的客户端或浏览器所致。