【问题标题】:PHP $_POST data not being passed between pagesPHP $_POST 数据未在页面之间传递
【发布时间】:2018-09-13 09:07:42
【问题描述】:

我一直在尝试制作一个简单的 html 表单,将数据传递到 php 页面,最终插入到 sql 数据库中。我已成功制作表单,但由于某种原因无法找到在此实例中未传递的数据。

使用 var_dump($_POST),我看到在提交 html 表单时没有数据被传输。我在 if(isset($_POST['submit'])) {} 内外都尝试了 var_dump,但都没有成功。我开始认为这可能是我的 php 安装或类似问题的问题?

HTML 表格:

<form action="programinsert.php" method="POST">
<p>
<label for="program_title"> Program Title: </label>
<input name="program_title" type="text" id="program_title">
</p>
<input type="submit" value="Submit">
</form>

programinsert.php:

<?php
session_start();
define('DB_NAME', 'rluh_website');
define('DB_USER', 'root');
define('DB_PASS', 'swang');
define('DB_HOST', 'localhost');
$link = mysqli_connect(DB_HOST, DB_USER, DB_PASS);
if(!$link) {
    die('Error: ' . mysqli_error($link));
}
$db_select = mysqli_select_db($link, DB_NAME);
if(!$db_select) {
    die('Cannot use ' . DB_NAME . ': ' . mysqli_error($link));
}
var_dump($_POST);
?>

【问题讨论】:

  • 看起来应该可以,这是在本地主机上吗? php 在网络服务器上运行?表单提交后的url为:http://..../programinsert.php ?
  • 确保您没有发生重定向
  • var_dump($_REQUEST);结果如何?
  • Errrrmm if(isset($_POST['submit'])) {} 提交按钮上没有name 属性,所以post 数组中不会有$_POST['submit']。所以修改为&lt;input name="submit" type="submit" value="Submit"&gt;

标签: php html mysql mysqli


【解决方案1】:

感谢大家的回复。最后的问题似乎是从我正在使用的 IDE PhpStorm 运行网页(在本地托管)时。 PhpStorm 在 localhost:63342 下打开页面,而不是普通的 localhost。擦除这些数字可以让数据按预期通过。

【讨论】:

    【解决方案2】:

    我认为您需要获取表单发布的内容。

    以下是该问题的简化版: https://embed.plnkr.co/uLnaPnHFtrmE6Dr6101F/

    【讨论】:

    • 帖子应该可以正常工作,更改操作不是解决已发布问题的方法
    • 我的措辞不佳。我更想指出的是 php 文件中没有任何地方可以从表单中收集值。
    【解决方案3】:

    您确定数据库信息正确吗?并尝试添加一个“/”

    【讨论】:

    • 问题是关于发布数据的。
    猜你喜欢
    • 1970-01-01
    • 2014-04-22
    • 1970-01-01
    • 2010-11-13
    • 2011-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多