我正在使用 cURL 登录网站。[编辑:他们设置 cookie 并生成令牌。我抓住他们的令牌。用它做一些计算并登录。这就是保持会话打开很重要的原因。] 我有一个文件可以加载另一个文件。这是在PHP中:
文件1.php
<?php
session_start();
$_SESSION['var'] = $var;
header("Location: file2.php");
?>
文件2.php
<?php
session_start();
$var = $_SESSION['var'];
?>
这行得通,但是,我必须使用 Javascript 进行一些计算,然后使用 GET 将这些变量传递给 file2.php(并且有一个变量是会话变量)。所以:
文件1.php
<?php
session_start();
$_SESSION['var'] = $var;
?>
<script type="text/javascript">
var var1 = 'car';
window.location = "file2.php?var1=" + var1;
</script>
文件2.php
<?php
session_start();
$var1= $_GET['var1'];
$var2 = $_SESSION['var'];
?>
我尝试window.location.href
了而不是window.location
尝试使用document.cookie
并尝试将cookie(with setcookie("PHPSESSID", [string]
)设置为存储在PHPSESSID中的内容(其他变量- JSESSIONID 和session_id
- 都是NULL)。我尝试将其设置为整个字符串。
我试过了
session_name('login_session');
session_set_cookie_params(0, '/');
session_start();
我在这里找到的:https ://stackoverflow.com/a/5438521 。在两个页面上的脚本开头。
我还尝试session_write_close();
在file1.php中的 php 脚本末尾。
更新。我一直在阅读并认为如果我使用 Ajax/jquery,我也许可以让它工作。我试过了:
文件1.php
<html><head>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
</script>
</head></html>
<?php
session_start();
$_SESSION['var'] = $var;
?>
<script type="text/javascript">
var var1 = 'car';
function runLogin() {
$.ajax({
<strike>type: "GET",</strike>
type: "POST",
url: "file2.php",
<strike>data: "var="+var1</strike>
data: {'var': var1}
});
}
runLogin();
</script>
文件2.php
<?php
session_start();
<strike>$var1= $_GET['var1'];</strike>
$var1 = $_REQUEST;
$var2 = $_SESSION['var'];
?>
但是会话仍然丢失。我第一次运行它时,我做了上面的事情。我include_once('file2.php');
在 session_start() 下的 file1.php 中添加了第二个,在 file2.php 中添加了相反的内容
解决了:
文件1.php
<?php
$session = session_id();
$_SESSION['var'] = var;
?>
<script type="text/javascript">
var var1= "<?=$session ?>";
function runLogin(session) {
$.ajax({
type: "POST",
url: "file2.php",
data: {'session': session}
});
}
runLogin(var1);
</script>
文件2.php
<?php
$posted = $_REQUEST;
$sew = $posted['session'];
session_id($sew);
session_start();
$var = $_SESSION['var'];
?>
我搜索了我的历史记录,但找不到我发现这个想法的页面。