$ _SESSION我遇到了一个奇怪的问题。
if(isset($_SESSION['passed']))
{
echo "passed";
unset $_SESSION['passed'];
}
else
{
echo "not passed";
}
因此我得到“未通过”,但当我评论“unset $ _SESSION ['pass'];” 我被传递了。我的意图是删除'传递',这样你就不能通过输入网址再次调用文档。我想这与服务器选项有关,但我不知道它可能是哪一个。有谁知道为什么php会这样be风?
编辑:我使用xampp
EDIT2:
抱歉,当我这样做时它会起作用:set_pass.php
<?php
session_start();
$_SESSION['passed']="123";
header('location:check.php');
?>
check.php
<?php
session_start();
if(isset($_SESSION['passed']))
{
echo "passed";
unset($_SESSION['passed']);
}
else
{
echo "not passed";
}
?>
但不是在我的项目中,所有项目都来自index.php而“check.php”显示会话已经开始。
编辑3
好的接近问题我重建了没有视图/模型的mvc系统,而controler在index.php中:
的index.php
<?php
include 'load.php';
$view = (isset($_POST['view'])) ? $_POST['view'] : 'default';
echo "<br><b>".$view."</b><br";
$do = new load();
switch($view)
{
case 'default':
echo $do->_load('captcha.php');
break;
case 'setpass':
echo $do->_load('setpass.php');
break;
}
?>
load.php
<?php
class load
{
public function _load($string)
{
ob_start();
include $string;
$output = ob_get_contents();
ob_end_clean();
return $output;
}
}
?>
captcha.php
<form action="?view=setpass" method="post">
<img id="captcha" src="securimage/securimage_show.php" alt="CAPTCHA Image">
<input type="text" name="captcha_code" size="10" maxlength="6">
<a href="#" onclick="document.getElementById('captcha').src = 'securimage/securimage_show.php?' + Math.random(); return false">[ Different Image ]</a>
<input type="submit" value="GO">
</form>
setpass.php
<?php
session_start();
include_once 'securimage/securimage.php';
$securimage = new Securimage();
if ($securimage->check($_POST['captcha_code']) == false)
{
echo "The security code entered was incorrect.<br /><br />";
echo "Please go <a href='javascript:history.go(-1)'>back</a> and try again.";
exit;
}
else
{
$_SESSION['passed']="123";
header('location:check.php');
}
?>
最后:check.php(与上面相同)
<?php
session_start();
if(isset($_SESSION['passed']))
{
echo "passed";
unset($_SESSION['passed']);
}
else
{
echo "not passed";
}
?>
现在的问题是,当你点击captcha.php中的“Go submit-button”时,没有任何反应。你甚至得不到帖子或得到(我用foreach尝试了一切($ POST)..
我对这种现象没有任何解释,但我是初学者,所以也许你知道它是什么?!
答案 0 :(得分:0)
添加session_start();在你的index.php中。
答案 1 :(得分:0)
我真的很抱歉我的MVC是一个包含两次模板的行,但它 没有在输出中显示。