繁体   English   中英

会话在PHP中不起作用

[英]Session doesn't work in PHP

我有两个文件,一个文件名为Get_url.php,另一个文件名为Next.php。 但是,会话对我不起作用-不会记住会话值。 我究竟做错了什么?

这是我的Get_url.php代码:

<!DOCTYPE html>

<html>
<body>
<?php
function curPageURL() {
 $pageURL = 'http';
 if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
 $pageURL .= "://";
 if ($_SERVER["SERVER_PORT"] != "80") {
  $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
 } else {
  $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
 }
 return $pageURL;
}

//connection
$con= mysql_connect("splasjcom.ipagemysql.com","splasj","Password") or die ("Could not connect");
mysql_select_db("splasj") or die ("Could not select db");

$query = "SELECT id FROM articles WHERE url = '". curPageURL() . "'";
$result = mysql_query($query);

while($row = mysql_fetch_array($result)) {
 $idie = $row['id'];

 $Next = $idie +1;
 }
$queryy = "SELECT url FROM articles WHERE id = '$Next'";
$resultt = mysql_query($queryy);

while($roww = mysql_fetch_array($resultt)) {
 $idiee = $roww['url'];

 echo $idiee;
}

session_start();
$_SESSION['Get_url']=$idiee;
?>




</body>
</html>

这是我的Next.php代码:

<!DOCTYPE html>

<html>
<body>
<?php include ('Get_url.php');
echo $idiee;
session_start();
echo $_SESSION['Get_url'];
?>
</body>
</html>

您首先需要将值设置为$ variable

在Hey.php中

<?php
session_start();
$variable = 'test';
$_SESSION['hey']=$variable;
?>

这里有两个问题。 首先,您需要先开始会话,然后再将任何输出发送到客户端。 例如,您的文件应这样开始:

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

如果以其他方式进行操作(在会话开始之前发送DOCTYPEHTML ),则PHP会发送所有待处理的HTTP标头,后跟内容。 通过HTTP协议的工作方式,一旦发送了任意数量的内容,您就无法重新发送标头。 因此,后期会话启动(需要设置Cookie标头)将无法正常工作。

第二个问题是您要在Get_url.php中调用session_start() ,然后在Next.php中对其进行include()编辑,后者还具有session_start() 当您调用第二个session_start()它将使用新的session_id覆盖第一个会话。

因此,总而言之:

  1. 在向用户输出数据之前使用session_start()
  2. 一次仅一个session_start() 如果必须包含另一个可能具有session_start()的文件,则可能需要使用以下内容:

     $sid = session_id(); if(empty($sid)) session_start(); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM