为什么我的post方法的PHP代码不起作用?

时间:2013-01-11 04:33:28

标签: php post login

我在index.php

中有以下表格
    <form action='login.php' method='POST'>
    Log in Here:<br><br>
    Username:<input type='text' name='User_name' value='username' onFocus="clearText(this)" id='fn'>
    <br><br>
    Password:<input type='password' name='_password' ><br><br>
    <input  value='Log in' type="image" src="client-login-buttonclient-login-button.jpg" ><br><br>
    <input type="checkbox" name="checkbox"  id="checkbox" />
    Remember password</span></p>
    </form>

我将表单字段发布到另一个名为login.php

的php页面
  <?php

    session_start();
    $username=$_POST['User_name'];
    $password=$_POST['_password'];
    if($username && $password){
    echo $username;
    echo $password;
    }
    else {
    echo 'A field is empty';
    }

但是当我这样做时,它会给我以下错误

 Notice: Undefined index: User_name in login.php on line 4
 Notice: Undefined index: _password in login.php on line 5

为什么post方法不起作用?

4 个答案:

答案 0 :(得分:0)

错误表示未传递变量。为了绕过错误并仍然捕获字段为空,请使用isset()

$username = (isset($_POST['User_name']) ? $_POST['User_name'] : '');

这将检查变量是否被传递,如果是,则将相应的变量设置为该值,否则将其设置为''(或您选择的其他值)。

答案 1 :(得分:0)

尝试将isset放入if条件中,然后看看

 if(isset($_POST['User_name']) && isset($_POST['_password'])){
            echo $_POST['User_name'];
            echo $_POST['_password'];
    }else {
            echo 'A field is empty';
    }

答案 2 :(得分:0)

  <?php

    session_start();
    if($_POST)
    {
    $username=$_POST['User_name'];
    $password=$_POST['_password'];
    if($username && $password){
    echo $username;
    echo $password;
    }
    else {
    echo 'A field is empty';
    }

    }


  ?>

答案 3 :(得分:-1)

您需要提交按钮发布您的表单或至少使用javascript执行此操作并使用isset()检查这些发布变量是否首先包含值,然后尝试分配值。

if(isset($_POST['UserName']){
$username=$_POST['User_name'];
}