PHP会话问题

时间:2014-12-02 01:07:59

标签: php session

我有一个带有几个按钮的html页面,我想带我到另一个PHP页面,这个页面将处理所有逻辑,但我在设置会话时遇到了问题。

我可能会以错误的方式解决这个问题,所以如果有人指出我正确的方向,我会很感激。

这是我正在使用的HTML页面代码:

        <form action="reportPage.php">
            <center><input type="submit" value="View customers"></center>
            <?php
                $_SESSION['customer'] = "checkCusTrains";
            ?>
        </form>

        <form action="reportPage.php" mehtod="post">
        <center><input type="submit" value="View admins"></center>
            <?php
                $_SESSION['admins'] = "checkCusAdmin";
            ?>
        </form>

我希望每个按钮都转到reportUser.php页面,但是使用不同的会话,因为我在报告页面中设置了if / else语句,这些语句将显示与该会话相对应的信息。

我怎样才能做到这一点?目前,两个会话变量都已设置

4 个答案:

答案 0 :(得分:2)

我建议您使用查询但不使用会话来实现此目的:

<form action="reportPage.php?customer=checkCusTrains">
    <center><input type="submit" value="View customers"></center>
</form>

<form action="reportPage.php?admins=checkCusAdmin" mehtod="post">
    <center><input type="submit" value="View admins"></center>
</form>

在您的reportPage.php

<?php
    if(!empty($_GET['customer']) && $_GET['customer'] == 'checkCusTrains'){
        //do something
    }

    if(!empty($_GET['admins']) && $_GET['admins'] == 'checkCusAdmin'){
        //do something else
    }
?>

答案 1 :(得分:2)

您需要在表单中添加隐藏字段以保存会话的价值,如果会话的值已经像'checkCusTrains'和'checkCusAdmin'那样给出,则不需要使用会话,只需要隐藏输入框中的值。

<form action="reportPage.php">
     <input type="hidden" name="session" value="checkCusTrains">
     <center><input type="submit" value="Check customers"></center>
</form>
<form action="reportPage.php">
     <input type="hidden" name="session" value="checkCusAdmin">
     <center><input type="submit" value="Check admins"></center>
</form>

在你的reportPage.php

您可以按$_POST['session'];获取值,然后使用if else语句执行任何操作。

答案 2 :(得分:1)

在表单中包含一个可以检查服务器端的变量:

<form action="reportPage.php" method="post">
   <input type="hidden" name="session" value="checkCusAdmin">
   <input type="submit" ...>
</form>

通过这种方式,每个表单都可以提供一个特殊的字段变量,该变量对用户是隐藏的,但对服务器可用。它可以识别提交的表单或对数据采取的操作。

在你的情况下,&#34;隐藏&#34;字段可能包含会话的名称。

答案 3 :(得分:0)

我建议您使用查询或使用jQuery cookie并将Cookie设置绑定到按钮点击操作。您发布的代码不符合您的想法。在该代码中,两个cookie都在页面加载时设置,即PHP设置cookie时。