表单不传递POST数据

时间:2012-11-13 18:54:42

标签: php forms variables post send

我一直有这个问题,这是我的表格的代码:

    <form action="site/Main.php" method="post">
        <p><label for="user" style="text-indent:415px;">User</label> <input type="text" name="user" /></p>
        <p><label for="password">Password</label> <input type="password" name="password" /></p>
        <p class="submit"><input type="submit" value="log in" /></p>
    </form>

此表单位于我的admin.php页面,我想将变量“user”和“password”传递给我的site / main.php页面,但是,当我尝试访问变量时,php告诉我他们这样做了不存在,这是我在site / main.php页面上的代码:

    <?php
    if(isset($_POST)){
        if($_POST["user"] == "Project" && $_POST["password"] == "Project2012"){
            echo "Welcome!";
        } else{
            echo "Wrong username or password!";
        }
    }
    ?>

我一直收到以下错误:

(!)注意:未定义的索引:第10行的C:\ wamp \ www \ site \ Main.php中的用户

为什么看起来$ _POST变量似乎没有发送到我的主页?

非常感谢您的帮助!

3 个答案:

答案 0 :(得分:0)

使用empty()not isset()检查$ _POST数组。此外,在尝试比较或使用之前,请始终检查数组的索引。

<?php
   if(!empty($_POST)){
     if(isset($_POST["user"])  && 
       isset($_POST["password"]) && 
       $_POST["user"] == "Project" && 
       $_POST["password"] == "Project2012"){
         echo "Welcome!";
     } else{
         echo "Wrong username or password!";
     }
 ?>

答案 1 :(得分:0)

  

C:\瓦帕\ WWW \站点\ Main.php

实际上是正确的文件夹/文件?
正如其他用户所提到的,你应该使用

if(isset($_POST['user']))

但是,您仍然在表单中使用site / Main.php作为路径。您发布的错误消息告诉我们$ _POST数据正在发送到C:\wamp\www\site\Main.php - 这是您的文件所在的位置吗?如果没有,那就是错误。

最诚挚的问候,

Stephan S.

编辑:如上所述,这实际上不是错误。我建议您在Main.php中使用var_dump($_POST);print_r($_POST);

:这实际上是你的代码吗?我的意思是在你的代码示例中,你的Main.php中甚至不存在第10行

答案 2 :(得分:0)

这很奇怪,但经过几次尝试后,我所做的就是改变:

    <form action="site/Main.php" method="post">

有:

    <form action="Main.php" method="post">

它开始工作,然后我把它改回原来的形式,它继续工作。感谢大家的评论,他们都以不同的方式帮助我检查我的变量,感谢大家的帮助。