【问题标题】:PHP Session not working immediately however works after refreshing the pagePHP Session 不能立即工作,但在刷新页面后工作
【发布时间】:2020-01-01 07:24:51
【问题描述】:

会话不工作:

在第 1 页,我正在使用表单获取客户端 ID,并将用户重定向到 auth.marketingcloudapis.com 进行验证,然后重定向到“https%3A%2F%2Fpharmtechsonly.com%2Fwebform%2Fcollect”,这是我的第 2 页。

第 1 页:

<html>
<body>
<?php
session_start();


if(isset($_POST['webform']))
{
	 
$Client_ID = $_POST['Client_ID'];  
    $YOUR_SUBDOMAIN = $_POST['YOUR_SUBDOMAIN'];
    $_SESSION["Client_ID"] = $_POST['YOUR_SUBDOMAIN'];
    $_SESSION["YOUR_SUBDOMAIN"] = $_POST['YOUR_SUBDOMAIN'];
    
    
	$redirect = "https://".$YOUR_SUBDOMAIN.".auth.marketingcloudapis.com/v2/authorize?response_type=code&client_id=".$Client_ID."&redirect_uri=https%3A%2F%2Fpharmtechsonly.com%2Fwebform%2Fcollect%2Dcode&scope=email_read%20email_write%20email_send&state=mystate";
	
	
	
				header("Location: $redirect");
				session_write_close();
exit();
	
}
	?>
	


	
<form action="" method="post">
  Client ID:<br>
  <input type="text" name="Client_ID">
  <br>
    YOUR SUBDOMAIN:<br>
  <input type="text" name="YOUR_SUBDOMAIN">
  <br><br>
  <input type="submit" name="webform" value="Authorize">
</form> 



</body>
</html>

第 2 页:

<?php

session_start();

$Client_ID = $_SESSION["Client_ID"];

echo $Client_ID;
?>

我只是在回显 $_SESSION["Client_ID"],当我到达第 2 页时它不会立即起作用,但是当我点击刷新时会起作用。

【问题讨论】:

  • 我注意到你说它重定向,但它不会。您在标题之前有输出,这会产生错误。 (永远不要以&lt;html&gt; 开始你的脚本,在所有 php 完成之后,它属于最后。)到底发生了什么?还有为什么客户端 ID 会被分配到您的子域?

标签: php session session-variables


【解决方案1】:

您正在分配$_POST['YOUR_SUBDOMAIN']$_SESSION['Client_ID'] 而不是$Client_ID

【讨论】:

  • 在第一步中我这样做了:$Client_ID = $_POST['Client_ID'];
  • 但是你没有将它分配给会话变量
  • 我试过改变这个:$_SESSION["Client_ID"] = $_POST['YOUR_SUBDOMAIN'];对此:$_SESSION["Client_ID"] = $Client_ID;
  • 我也尝试过对 cookie 做同样的事情。还有,当我到达第 2 页时,我看不到客户端 ID,但只要我点击刷新,客户端 ID 就会回显。
猜你喜欢
  • 1970-01-01
  • 2014-11-16
  • 2017-01-19
  • 2021-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-08
  • 2015-08-30
相关资源
最近更新 更多