php中的POST方法

php中的POST方法,php,post,methods,Php,Post,Methods,我不知道如何处理这个错误。我只想将值传递到另一个页面。我用“得到”的方法,没关系。但是,它不使用“POST”方法 错误: 未定义索引:第18行C:\Users\x\x\x\x中的数据 Testing.html: <!DOCTYPE html> <html lang="en"> <head> </head> <body> <form method="POST" action="testing.php"> <in

我不知道如何处理这个错误。我只想将值传递到另一个页面。我用“得到”的方法,没关系。但是,它不使用“POST”方法

错误: 未定义索引:第18行C:\Users\x\x\x\x中的数据

Testing.html:

<!DOCTYPE html>
<html lang="en">
<head>

</head>
<body>

 <form method="POST" action="testing.php">
  <input name="data" type="text">
  <input type ="submit" value="send">
 </form>

</body>
</html>

testing.php

<?php

$data = $_REQUEST["data"];
if (isset($data)) {
    echo $data;
}
else
{
    echo "No data ";
}

?>

在检查是否存在局部变量之前,不能将其分配给局部变量。您需要调用
isset
了解您真正关心的事情:

if (isset($_POST["data"])) {
    $data = $_POST["data"];
试试这个:

<?php

$data=trim($_POST['data']);

if(empty($data){
    echo "no data";
} else {
    echo $data;
}

?>

此示例确实有效-与send方法(GET/POST)无关。
这些情况已经得到处理(您可能也应该这样做):

  • 变量“数据”未传输
  • 变量“数据”已传输但为空
  • 变量“数据”已传输且具有内容
HTML代码

PHP脚本

后果 任何一个

未发送数据

发送的数据:myData


数据已发送但为空

您应该如何检查数据是否已实际传递。更改您的php,如下所示:

 <?php 
 $data = (isset($_REQUEST["data"]) && $_REQUEST["data"] != "") ? $_REQUEST["data"]: "no data" ;
 echo $data;
 //this should print value of data (or "no data" if no value passed)
 ?>


这一次,没有显示错误消息,但我仍然无法将数据值传递到另一页否,因为我不知道您要做什么。只想使用POST方法将数据值传递到另一页。。。。问题是我不能只传递值..这个“其他页面”是PHP脚本还是再次包含表单的HTML代码,或者..?我只想从testing.PHP中的HTML“Data”中获取值检查输入表单上的属性名称是否为如上所述的数据。很容易不小心使用id而不是名称。我在记事本++中尝试了它,它可以工作。。。。但是试一下phpstorm(php intellij),它失败了…@soul299文件编码问题?我不认为这是编码问题。很显然,参数$_POST['data']没有按应有的方式传输。根据你的密码,我说不出原因。因此,PHP脚本发现“数据”未定义。编码与字符集(拉丁语1、utf-8等)有关,在不匹配时会产生无法读取的字符,但无论如何都可以工作。不过,编辑器可以在输入字段的名称中插入一个字符。我也看到了类似的效果。顺便说一句,if(isset($data)){如果其中的数据字段为空,也会是真的。但是在这种情况下,您不会从PHP收到错误消息。我的意思是编辑代码,使用缩进,使其更易于阅读。我是为您做的
<?php

if (isset($_REQUEST["data"])) {
    $data = trim($_REQUEST["data"]);
    if (strlen($data) > 0) {
        echo "Data sent: $data";
    } else {
        echo "Data sent but EMPTY";
    }
} else {
    echo "NO DATA sent";
}

?>
 <?php 
 $data = (isset($_REQUEST["data"]) && $_REQUEST["data"] != "") ? $_REQUEST["data"]: "no data" ;
 echo $data;
 //this should print value of data (or "no data" if no value passed)
 ?>