将PHP表单变量从一个页面传递到另一个页面

时间:2012-02-28 17:02:32

标签: php

我在服务器上的php配置显示我可以将变量发布到最大大小高达8MB,这就够了..但是如何检查变量的数量,服务器正在运行ubuntu 4.4,php。

我有一个页面,它接受学生标记并将它们发送到一个动作页面,但是在动作页面上为后期变量做回声没有显示任何内容,在哪里做回声“你好”;这表明......

这是发送变量的页面

<form name="frm" action="marklistI.php" method="POST" class="" >
    <?php $tb->displayTable() ?>
    <div class="mainframe">
        <input type="hidden" name="batch" value="<?php print $_GET['batch']; ?>"/>
        <input type="hidden" name="sem" value="<?php print $_GET['sem']; ?>" />
        <input type="hidden" name="chance" value="<?php print $_GET['chance']; ?>"/>
        <input name="submit" type="submit" class="hide" value="Save"/>
        <input type="hidden" name="url" value="<?php print $_SERVER['REQUEST_URI']; ?>"/>
    </div>
</form>

这是变量即将进入行动页面..但是在回声中它们没有显示任何值。

$dept =$_COOKIE['dept'];
$join=$_POST['batch'];
$type='e';
$sem=$_POST['sem'];
$chance=$_POST['chance'];

2 个答案:

答案 0 :(得分:1)

尝试将此代码放在您的操作页面上:

if (isset($_GET)) {
    echo "<h3>GET METHOD</h3>";
    var_dump($_GET);
}
if (isset($_POST)) {
    echo "<h3>POST METHOD</h3>";
    var_dump($_POST);
}
if (isset($_COOKIE)) {
    echo "<h3>COOKIE METHOD</h3>";
    var_dump($_COOKIE);
}

查看哪个方法返回您的变量并使用它,否则,您没有填写表单上的任何值。

答案 1 :(得分:0)

这是你的代码:

<form name="frm" action="marklistI.php" method="POST" class="" > 
<?php $tb->displayTable(); ?>
<div class="mainframe"> <input type="hidden" name="batch" value="<?php print $_GET['batch']; ?>"/> 
<input type="hidden" name="sem" value="<?php print $_GET['sem']; ?>" />
<input type="hidden" name="chance" value="<?php print $_GET['chance']; ?>"/> 
<input name="submit" type="submit" class="hide" value="Save"/> 
<input type="hidden" name="url" value="<?php print $_SERVER['REQUEST_URI']; ?>"/> 
</div> 
</form> 

您的问题的一个可能原因:
你在这里使用“_GET []”变量,但表格是POST。 GET和POST是两种不同的发送数据的方法,GET位于URL路径中(a =&amp; b =&amp; c =),而POST隐藏在HTML标题中。
因此,请确保将这些结果读作“$ _POST ['name']”而不是GET。

我建议在“接收脚本”中进行调试:

var_dump($_GET); 
var_dump($_POST);

在浏览器中使用Chrome或Firefox + Firebug并按“f12” 在该调试器中,您可以在单击按钮时捕获POST,并查看已发送的变量 这应该可以帮助您快速调试您的问题。

另外一个建议,我个人会写代码少“混合”。 这使得它难以阅读并且难以修改。 为什么不这样:

<?php
echo "
<form name='frm' action='marklistI.php' method='POST' class='' >".
$tb->displayTable().
"<div class='mainframe'> 
<input type='hidden' name='batch'  value='$_GET[batch]'/> 
<input type='hidden' name='sem'    value='$_GET[sem]' />
<input type='hidden' name='chance' value='$_GET[chance]'/> 
<input name='submit' type='submit' class='hide' value='Save'/> 
<input type='hidden' name='url'    value='$_SERVER[REQUEST_URI]'/> 
</div> 
</form> ";
?>

我对你的问题的猜测是,公式中的那些值实际上是空的,这就是你没有收到任何东西的原因。