会话块无效

时间:2017-12-28 17:25:51

标签: php

我是编程新手并正在尝试会话。我相信我写的代码是正确的,但是花了很多时间试图围绕这个概念,我无法弄清楚为什么程序不起作用。

当我调试session-page.php中的代码时,控件转到if(isset...)但是然后转到下一个会话变量,而不是在浏览器上输入代码块或显示提交按钮。请有人向我解释为什么这件事无法正常工作。

另外,我可以不使用<form>而只使用isset($_GET[ ])吗?

会话page.php文件[CODE]

<?php
session_start();
if(isset($_POST['sub']))
{
    $_SESSION['xyz']="Hello World";
}
$_SESSION['abc']="Hey Buddy!";
?>

<form method="post">
<a href="test-page.php"><input type='submit' name='sub' value='redirect'></a>
</form>

测试page.php文件[CODE]

<?php
session_start();
if($_SESSION['xyz']!="Hello World")
{
    header("location:session-page.php");    
}
echo $_SESSION['abc'];
?>

2 个答案:

答案 0 :(得分:2)

您希望拥有此类工作流程(基于您目前拥有的工作流程):

<强> /session-page.php

<?php
session_start();
if(!empty($_POST['sub'])) {
    $_SESSION['xyz'] = "Hello World";
    header('Location: test-page.php');
    exit;
}
if(empty($_SESSION['abc']))
    $_SESSION['abc']="Hey Buddy!";
?>

<form method="post" action="#">
    <input type='submit' name='sub' value='redirect'>
</form>

<强> /test-page.php

<?php
session_start();
if($_SESSION['xyz'] != "Hello World") {
    header("location:session-page.php");    
    exit;
}

echo $_SESSION['abc'];
?>

答案 1 :(得分:0)

试试这个。

<form method="post" action="" >
<input type='submit' name='sub'value='redirect'>
</form>