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


Passing PHP form variables from one page to other

我在服务器上的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'];

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

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);
}

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

这是您的代码:

<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=&b=&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> ";
?>

我对你的问题的猜测是,公式中的那些值实际上是空的,这就是为什么你什么都没收到。