我无法取消为PHP函数设置会话变量,
从下面的代码中,如果我在网站上输入评论,请使用
$_SESSION['KEYWORD']
数据会发布正确的数据,但如果我愿意的话
通过另一个$_SESSION
变量进行另一次审核,一旦将其添加到MySQL,它会显示我在此示例中输入的第一次审核$_SESSION['KEYWORD']
的值...
<?php session_start(); ?>
<?php include('db_connect.inc');?>
<link rel="stylesheet" type="text/css" href="style.css" />
<?php
if (isset($_SESSION['SUBURB'])) {
$VAR = $_SESSION['SUBURB'];
Set_Review($VAR);
unset($VAR);
} elseif (isset($_SESSION['KEYWORD'])) {
$VAR = $_SESSION['KEYWORD'];
Set_Review($VAR);
unset($VAR);
} elseif (isset($_SESSION['LOCATION'])) {
$VAR = $_SESSION['LOCATION'];
Set_Review($VAR);
unset($VAR);
} elseif (isset($_SESSION['RATING'])) {
$VAR = $_SESSION['RATING'];
Set_Review($VAR);
unset($VAR);
}
?>
<?php
function Set_Review($VAR) {
include('db_connect.inc');
$result = $conn->prepare("INSERT INTO dog_parks.reviews (review_text, username, date, rating, item) VALUES (:review, :id, :date, :rating, :park_value)");
$result->bindParam(':review', $value1);
$result->bindParam(':id', $value2);
$result->bindParam(':date', $value3);
$result->bindParam(':rating', $value4);
$result->bindParam(':park_value', $value5);
$value1 = $_POST['review'];
$value2 = $_SESSION['id'];
$value3 = $date = date("Y-m-d");
$value4 = $_POST['rating'];
$value5 = trim($VAR, "'\"");
$result->execute();
echo "<h3>Review entry Successful, you will now be redirected to the home page</h3>";
header( "refresh:5; url=index.php" );
unset($VAR);
}
?>
答案 0 :(得分:2)
通过引用传递:function Set_Review(&$VAR)
。使用&#34;&amp;&#34;在$ VAR之前。
http://php.net/manual/en/language.references.pass.php
您将传递$ _SESSION变量的内存地址,然后您可以按照您想要的方式取消设置($ VAR)。
答案 1 :(得分:1)
您取消设置$VAR
变量,而不是$_SESSION
变量。尝试:
unset($_SESSION['KEYWORD'];
答案 2 :(得分:0)
我认为unset()
数组$_SESSION
是一种不好的方法。
只需致电session_destroy()
http://php.net/manual/it/function.session-destroy.php
如果您只想删除部分会话数据,请尝试将所有这些数据包含在数组中:
$_SESSION["deleteme"] = array();
$_SESSION["deleteme"]["val1"] = "someval";
然后:
unset($_SESSION["deleteme"]);
答案 3 :(得分:0)
我已经解决了这个问题..
在每个声明中我添加了unset($ _ SESSION ['session name here']);
<?php
if (isset($_SESSION['SUBURB'])) {
$VAR = $_SESSION['SUBURB'];
Set_Review($VAR);
unset($_SESSION['SUBURB']);
} elseif (isset($_SESSION['KEYWORD'])) {
$VAR = $_SESSION['KEYWORD'];
Set_Review($VAR);
unset($_SESSION['KEYWORD']);
} elseif (isset($_SESSION['LOCATION'])) {
$VAR = $_SESSION['LOCATION'];
Set_Review($VAR);
unset($_SESSION['LOCATION']);
} elseif (isset($_SESSION['RATING'])) {
$VAR = $_SESSION['RATING'];
Set_Review($VAR);
unset($_SESSION['RATING']);
}
?>