现在我已经将内容发布到我的 PHP 脚本中,我该如何获取它

Now that I've posted content to my my PHP script, how do I fetch it?

本文关键字:何获取 获取 脚本 我的 PHP      更新时间:2023-09-26

我使用以下代码发布了内容:

function checkphp() {
    var xml = new XMLHttpRequest();
    xml.open("POST", 'testphp.php');
    xml.setRequestHeader("Content-type","application/x-www-form-urlencoded");
    xml.send('alame=Henry');
    xml.onreadystatechange = function() {
        if (xml.readyState == 4 && xml.status == 200) {
            document.body.innerHTML = xml.responseText;
        }
    }
}

我试过这个:

echo($_POST['alame']) or die("Nothing was posted");

但它不起作用...它吐出"1"。有什么好处吗?

我测试了你的脚本,我们可以看到你用testphp的消息.php像这样:

<?php
//
//var_dump($_POST);
//echo($_POST['alame']) or die("Nothing was posted");
//
echo $_POST['alame'];
?>

"亨利"将按预期显示在文档正文中。

有了这个:

echo($_POST['alame']) or die("Nothing was posted");

返回 1。

echo 在这里用作函数,但不能,请参阅 http://fr.php.net/echo:

echo 实际上不是一个函数(它是一个语言结构),所以你 不需要使用括号。回声(不像其他一些 语言构造)的行为不像函数,所以它不能 始终在函数的上下文中使用。

所以在这种情况下,1 是一个不可预测的结果,我没有解释。

或者你可以使用这个:

echo isset($_POST['alame']) ? $_POST['alame'] : "Nothing was posted";

你得到1,因为PHP正在回显($_POST['alname'])(true)的值或死亡;

$someVar = 'test';
$someBool = false;
$a = ($someVar) || die();
echo $a; // 1
var_dump($a); //bool(true)
$a = ($someBool) || die(); // dies

在 JavaScript 等语言中,您可能会期望不同的行为:

// In JS
var someVal = false;
var somethingElse = someVal || "fallback";
console.log(somethingElse); // "fallback"

然而,在 PHP 中,整个表达式都是计算的,所以

// In PHP
$someVal = false;
$somethingElse = $someVal || "fallback";
echo $somethingElse; // 1

$someVal || "fallback"评估为 true,因为 PHP 将它们归结为(false || true) => true

@jacouh 是错误的,获取1是不可预测的,但非常正确的是,您应该以不同的方式检查变量,例如三元或一些类似的方法,例如

if(!isset($_POST['alame']))
    die("Noting was posted");
// Continue and do something with $_POST['alame'];