You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

000webhost站点无法接收Python requests发送的POST数据求助

问题原因与解决方案

为什么直接访问网页看不到POST数据

直接访问网页发起的是GET请求,而$_POST仅存储当前请求中通过POST方式提交的数据。HTTP是无状态协议,Python发送的POST请求数据仅在那次请求的生命周期内存在,后续的GET请求无法获取到之前POST的数据,所以执行var_dump($_POST)会返回空数组。

解决办法

要让直接访问网页时能看到之前提交的POST数据,需要把数据持久化存储,以下是两种可行方案:

方案1:将数据写入文件存储

修改page.php代码,把POST接收的数据写入文件,访问时读取文件内容显示:

<?php
// 处理POST请求,将数据写入文件
if(!empty($_POST)){
    $data = $_POST['data'];
    // 写入到当前目录的data.txt文件,注意目录需有写入权限
    file_put_contents('data.txt', $data);
    echo "The message received from HTTP request: $data";
}
// 处理GET请求,读取已存储的数据
else{
    $savedData = file_exists('data.txt') ? file_get_contents('data.txt') : 'No data received yet';
    echo "Saved message: $savedData";
    echo "<meta http-equiv='refresh' content='3'>";
}
?>

方案2:使用Session临时存储(基于用户会话)

如果只需要在当前浏览器会话中查看数据,可以用Session存储:

<?php
// 启动Session,必须放在所有输出之前
session_start();

// 处理POST请求,存入Session
if(!empty($_POST)){
    $_SESSION['data'] = $_POST['data'];
    echo "The message received from HTTP request: " . $_POST['data'];
}
// 处理GET请求,从Session读取数据
else{
    $displayData = isset($_SESSION['data']) ? $_SESSION['data'] : 'No data received yet';
    echo "Last received message: $displayData";
    echo "<meta http-equiv='refresh' content='3'>";
}
?>

注意事项

  • 000webhost环境中,确保脚本所在目录有写入权限,否则file_put_contents会执行失败,可在后台文件管理器中将目录权限设置为755。
  • 使用Session时,session_start()必须放在任何HTML输出或echo之前,否则会报错。

内容的提问来源于stack exchange,提问作者TopCodeG

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 13:35:27