<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Form表单与PHP的连接</title>
</head>
<body>
    <form action="form.php" method="post">
        用名:
        <input type="text" name="users">
        <br/>
        密码:
        <input type="password" name="key">
        <br/>
        <input type="submit">
    </form>
</body>
</html>
<?php
echo "用户:".$_POST['users']."<br/>密码:".$_POST['key'];//
出现错误
Notice: Undefined index: users in F:\Program\Web\form.php on line2Notice: Undefined index: key in F:\Program\Web\form.php on line 2
用户:
密码

解决方案 »

  1.   

    <?php
    echo "用户:".$_POST['users']."<br/>密码:".$_POST['key'];
    改成<?php 
    if($_POST){
    echo "用户:".$_POST['users']."<br/>密码:".$_POST['key'];
    }
      

  2.   

    你这是两个文件? 没输出说明没post成功。
      

  3.   

    嗯,是两个文件,这是为什么呢?用get又没有问题
      

  4.   

    print_r($_POST);看下。你是输入用户名密码提交后出现的这个吗?还是直接访问的form.php
      

  5.   

    echo "用户:".$_POST['users']."<br/>密码:".$_POST['key'];
    这句错了,要使用双引号,你使用了单引号。所以检测不到变量
    改成这确的应该是
    echo "用户:".$_POST[“users”]."<br/>密码:".$_POST["key"];
    还有,php一定要做做表单验证。这边有一篇表单验证的文章http://www.daimatree.com/dll_website/dll_showHTML.php?html_url=php_form_validation
      

  6.   

    echo "用户:".$_POST["users"]."<br/>密码:".$_POST["key"];
    上面users那边使用了中文的双引号了,这边改一下
      

  7.   

    有可能是php.ini的设置问题 检查一下
    php.ini 中配置 enable_post_data_reading 为 On
      

  8.   

    试试file_get_contents("php://input")
      

  9.   

    $_POST 需要从表单提交才有,你不会直接访问form.php的吧?
      

  10.   

    楼主应该是把 html代码  和  php代码放到了  form.php  这一个文件,这就导致到你在第一次加载 form.php文件时,经过解析代码发现 $_POST['users'] 和 $_POST['key']  中的  users和key 变量没有被赋值,所以会有 Notice提示信息;当在表单中输入信息后再次提交信息到本文件即( form.php ) ,那么 users和key 已被赋值同时通过 POST 方式传递过来,所以提交表单后  Notic提示信息  会消失。  最简单的修改意见就是把HTML代码放到form.html文件中,把PHP代码放到form.php文件中,或者楼主需要进行表单验证。
      

  11.   


    应该首先就创建 一个 html form 代码 和另一个php接受脚本。
      

  12.   

    我遇到的情况不知道对你有用吗!我的环境是PHPStorm +XAMPP 由于直接在PHPStorm中点击了浏览器运行,默认的端口号为:63342,而apache的默认端口是80,我把端口号换成了80 就可以post过去数据了。