我在编辑一个很简单的登陆的时候,发现一个很郁闷的问题下面是代码:
foreach($_POST as $key=>$val){
echo '<br>||||'.$key.'====='.$val.'||||<br>';
}

$fn = null;

if(isset($_POST['action'])){
$fn = $_POST['action'];
}
这样写~这个POST里面全部为空,上面的循环显示POST中的值,一次循环都没有,没有任何变量;
但是如果这样写:
foreach($_POST as $key=>$val){
echo '<br>||||'.$key.'====='.$val.'||||<br>';
}

$fn = null;

if(isset($_POST['action'])){
//$fn = $_POST['action'];
}
上面的循环就有值了,也就是吧下面获取变量的语句去掉,POST就有值;
郁闷了我很久很久啊~~各位前辈快来赐教啊~~~

解决方案 »

  1.   


    是不是 post给变量后就被回收了?
      

  2.   

    <?php
    foreach($_POST as $key=>$val){
                    echo '<br>||||'.$key.'====='.$val.'||||<br>';
                }
                
                $fn = null;
                
                if(isset($_POST['action'])){
                    $fn = $_POST['action'];
                }?>
    <form action="?action=save" method="post">
    <input name="v1" type="text" value="1" />
    <input name="v2" type="text" value="2" />
    <input name="v3" type="text" value="3" />
    <input type="submit" name="Submit" value="提交" />
    </form>
    不存在你说的情况,你是不是有些地方写错了?
      

  3.   

    你说的这种情况不可能发生··肯定是哪里写错了~~~也不能说 $_POST赋值后被回收~~~查查你的代码吧呵呵·
      

  4.   

    你应该把这段代码直接写到一个文件下试一下,就知道是不是在函数中的问题还是post的问题,正常来说post不会出现这样的问题
      

  5.   

     if(isset($_POST['action'])){
                    $fn = $_POST['action'];
                }
    根本不会执行