使用 Telegram webhook 执行代码时 $_POST 变量为空
$_POST variable is empty when code is executed using Telegram webhook
我正在使用 PHP 创建 Telegram 机器人。我已将 webhook 设置为“https://example.com/bot.php”。正如您在下面看到的,我使用 echo 来 运行 创建 HTML 表单的脚本。创建后,表单会自动提交,我使用 POST 方法获取变量。
echo "<script>
document.write('<form method=\"post\" action=\"\" id=\"myForm\">');
document.write('<textarea name=\"price\">' + 12345 + '</textarea><br>');
document.write('<input type=\"submit\" value=\"submit\"></form>');
</script>";
if (!isset($_POST['price']) ) {
echo "<script>document.getElementById(\"myForm\").submit();</script>";
}
$price = $_POST['price'];
如果我 运行 "bot.php
" 手动(使用 URL),代码工作正常。但是,当我在 Telegram 机器人中发送命令时,$_POST['price']
returnsempty
。
检查我是否将 isset($_POST['price'])
作为消息发送给了机器人,并且我收到了 0
.
如您所知,JS 是客户端,这就是为什么它可以在您的网络浏览器上运行,但不能在 Bot 请求上运行,因为机器人不能 运行 JavaScript。
我正在使用 PHP 创建 Telegram 机器人。我已将 webhook 设置为“https://example.com/bot.php”。正如您在下面看到的,我使用 echo 来 运行 创建 HTML 表单的脚本。创建后,表单会自动提交,我使用 POST 方法获取变量。
echo "<script>
document.write('<form method=\"post\" action=\"\" id=\"myForm\">');
document.write('<textarea name=\"price\">' + 12345 + '</textarea><br>');
document.write('<input type=\"submit\" value=\"submit\"></form>');
</script>";
if (!isset($_POST['price']) ) {
echo "<script>document.getElementById(\"myForm\").submit();</script>";
}
$price = $_POST['price'];
如果我 运行 "bot.php
" 手动(使用 URL),代码工作正常。但是,当我在 Telegram 机器人中发送命令时,$_POST['price']
returnsempty
。
检查我是否将 isset($_POST['price'])
作为消息发送给了机器人,并且我收到了 0
.
如您所知,JS 是客户端,这就是为什么它可以在您的网络浏览器上运行,但不能在 Bot 请求上运行,因为机器人不能 运行 JavaScript。