如何基于PHP中的访问者给出$ _SESSION值?

时间:2014-03-06 15:31:09

标签: php session session-variables

我遇到了这个令人讨厌的问题,我无法找到答案。基本上我的php页面上有多个表单。我需要根据访问者使用的表单传递$ _SESSION值。

例如,如果他使用一个表单,我需要这些值

session_start();
    $_SESSION['socnetwork'] = '1';
    $_SESSION['cost'] = '15';
    $_SESSION['soccount'] = '100';

如果他在该页面上使用其他表单,我需要在submit =“somepage.php”上传递不同的值,例如

session_start();
    $_SESSION['socnetwork'] = '2';
    $_SESSION['cost'] = '55';
    $_SESSION['soccount'] = '700';

你会如何推荐我接近这个?变量需要安全!我无法通过URL传递它们,尽管这样会很方便。

3 个答案:

答案 0 :(得分:0)

你可以在会话中存储数组,所以制作像$_SESSION['custom_pages']这样的东西,其中每个键是页面(或id)和值的名称 - 是'socnetwork','cost',...的数组。

session_start();
$_SESSION['form1'] = ['socnetwork'> = '1',
                     'cost' => '15',
                     'soccount' => '100];
....
....
$_SESSION['form2'] = ['socnetwork'> = '2',
                     'cost' => '55',
                     'soccount' => '700];

答案 1 :(得分:0)

在客户端,您可以使用if语句(在这种情况下您需要JavaScript)并使用POST request将所需信息发送到PHP服务器端。

在服务器端,您可以创建一个处理代码,该代码会将所需的值设置为$_SESSION变量。

或者,如果值是固定的,您可以不发送值,而是从客户端向服务器端发送一些整数或字符串代码(可以使用纯HTML完成),然后使用if服务器端的语句(在您的情况下为PHP)。在这种情况下,也可以使用PHP将数字插入HTML表单:

<input type='hidden' name="category" value=" <?php echo $some_code; ?> " />  

答案 2 :(得分:0)

提交按钮会将其名称添加到$_POST按钮,因此,如果您为按钮命名,则会知道访问者使用了哪个按钮。

E.g

<form action="somepage.php">
    <input type="submit" name="form1" value="Submit!">
</form>

<form action="somepage.php">
    <input type="submit" name="form2" value="Submit other form!">
</form>

<?php var_dump($_POST); ?>

会给出

  

array(1){[&#34; form1&#34;] =&gt;字符串(7)&#34;提交!&#34; }

     

array(1){[&#34; form2&#34;] =&gt; string(18)&#34;提交其他表格!&#34; }

从那时起,检查某个密钥是否存在就成了问题。