【问题标题】:POST Method in phpphp中的POST方法
【发布时间】:2016-02-13 12:42:17
【问题描述】:

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

错误: 未定义索引:第 18 行 C:\Users\x\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 ";
}

?>

【问题讨论】:

  • 检查您是否将属性名称作为输入表单上的数据,如上所述。很容易不小心使用 id 而不是 name。

标签: php post methods


【解决方案1】:

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

  • 变量“数据”未传输。
  • 变量“数据”传输但为空
  • 传输的可变“数据”并具有内容

HTML 代码

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

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";
}

?>

结果

其中之一...

NO DATA sent
Data sent: myData
Data sent but EMPTY

【讨论】:

  • 我在 notepad++ 中尝试过,它可以工作....但是在 phpstorm (php intellij) 中尝试,它失败了...
  • @soul299 文件编码问题?
  • 我不认为这是编码问题。显然,参数 $_POST['data'] 没有按应有的方式传输。根据您的代码,我无法说出原因。结果,PHP 脚本发现“数据”未定义。编码与字符集(latin1、utf-8 等)有关,并且在不匹配时会产生不可读的字符,但无论如何它都会起作用。编辑器可以插入一个字符,例如但是,在输入字段的名称中。我也看到了类似的效果。
  • 顺便说一句,如果数据字段为空,if (isset($data)) { 也会为真。但在这种情况下,您不会收到来自 PHP 的错误消息。
【解决方案2】:

恕我直言,您应该检查数据是否实际被传递。更改您的 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)
 ?>

【讨论】:

    【解决方案3】:

    在检查它是否存在之前,您不能将其分配给局部变量。你需要打电话给isset你关心的实际事情:

    if (isset($_POST["data"])) {
        $data = $_POST["data"];
    

    【讨论】:

    • 这次没有显示错误信息,但我仍然无法将数据值传递到另一个页面
    • 不,因为我不知道你想做什么。
    • 只想通过POST方法将数据值传递到另一个页面..问题是我不能只传递值..
    • 这个“其他页面”是 PHP 脚本,还是包含表单的 HTML 代码,还是......?
    • 我只想从 testing.php 中的 html "Data" 获取值
    【解决方案4】:

    试试这个:

    <?php
    
    $data=trim($_POST['data']);
    
    if(empty($data){
        echo "no data";
    } else {
        echo $data;
    }
    
    ?>
    

    【讨论】:

    • 我的意思是编辑代码,使用缩进,让它更容易阅读。我为你做的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-10
    • 1970-01-01
    相关资源
    最近更新 更多