为什么我的代码 运行 和 session_start 两次?
Why is my Code running twice with session_start?
我创建了两个文件(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。
好像是关于浏览器或客户端发送的OPTIONS
方法
我认为他们称之为 "pre flight"
browser/client 的内部检查,以查看 request
是否有效 HEADERS
。
https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/OPTIONS
要调试,
输入您的 browser/client 的网络调试并启用日志持久性。
回答问题:
您的一些代码甚至在 OPTIONS
发送 HTTP 方法时执行。即使您使用的是 PHP 框架,也可能会发生同样的情况,因此这也可能是由于您使用的客户端或浏览器所致。
我创建了两个文件(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。
好像是关于浏览器或客户端发送的OPTIONS
方法
我认为他们称之为 "pre flight"
browser/client 的内部检查,以查看 request
是否有效 HEADERS
。
https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/OPTIONS
要调试, 输入您的 browser/client 的网络调试并启用日志持久性。
回答问题:
您的一些代码甚至在 OPTIONS
发送 HTTP 方法时执行。即使您使用的是 PHP 框架,也可能会发生同样的情况,因此这也可能是由于您使用的客户端或浏览器所致。