php中的POST方法
我不知道如何处理这个错误。我只想将值传递到另一个页面。我用“得到”的方法,没关系。但是,它不使用“POST”方法 错误: 未定义索引:第18行C:\Users\x\x\x\x中的数据 Testing.html: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
<!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)
?>