【问题标题】:POST Issue with PHPPHP 的 POST 问题
【发布时间】:2014-03-28 10:58:18
【问题描述】:

我尝试将一个基本的 jQuery Mobile 页面放在一起,该页面连接到服务器同一路径上的另一个文件以发送数据。我已经在代码的注释部分中单独测试了 PHP。

PHP 文件 - 提交 Harvest.php

$dbConnection = mysqli_connect('*********', '*********', '*********', '*********');

/*
$variety  = "Aji Limon";
$picked   = "11";
$weight = "22";
*/

$variety  = $_POST['variety'];
$picked   = $_POST['picked'];
$weight = $_POST['weight'];

$query = "INSERT INTO `harvest` (`variety`, `picked`, `weight`) VALUES ('$variety', '$picked', '$weight')";

if (mysqli_query($dbConnection, $query)) {
    echo "Successfully inserted " . mysqli_affected_rows($dbConnection) . " row";
} else {
    echo "Error occurred: " . mysqli_error($dbConnection);
}

?>

还有html文件——index.html

<html>
<head>
    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.2/jquery.mobile-1.4.2.min.css" />
    <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script> 
    <script src="http://code.jquery.com/mobile/1.4.2/jquery.mobile-1.4.2.min.js"></script>

    <!--Mobile Device Scaling -->
    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0" />

</head>
<body>
    <div data-role="page" id="harvest">
        <div data-role="header" data-theme="b">
            <h1>Chilli Harvest</h1>
        </div>
    <div data-role="content">
    <form name="harvest" action="submitharvest.php" method="post" data-ajax="false">
        <div data-role="fieldcontain">
          <label for="variety" class="select" >Variety:</label>
            <select name="variety" id="variety" data-theme="b">
                <option value="7 Pot Red">7 Pot Red</option>
                <option value="7 Pot Yellow">7 Pot Yellow</option>
                <option value="Aji Limon">Aji Limon</option>
            </select>
      </div>
      <div data-role="fieldcontain">
        <label for="picked">Qty Picked:</label>
        <input type="range" name="picked" id="picked" value="1" min="0" max="200" step="1" data-theme="b" data-track-theme="c"/>
      </div>
      <div data-role="fieldcontain">
          <label for="weight">Weight (g):</label>
          <input type="number" name="weight" id="weight" value="" data-theme="b" />
      </div>
      <div data-role="fieldcontain">
        <input type="submit" value="Send" id="submit">
      </div>
    </form>
    </div>
</div>
</body>
</html>

添加了 data-ajax="false" 甚至删除了整个查询移动框架后,我遇到了与 php 相同的问题,即“发生错误”,后面没有额外的细节,我看不到任何问题控制台。希望我在这里遗漏了一些非常基本的东西?请帮忙。

所以从下面的前几个 cmets 中尝试了一些东西 - 是不是 dbconnection 也是罪魁祸首?我正在使用带有个人 MySQL 数据库的 NAS 驱动器,是否需要在末尾指定端口号?目前我有:

$dbConnection = mysqli_connect('home IP Address:3306', 'username', 'password', 'databasename');

我见过一些像这样涉及端口号的连接字符串:

$dbConnection = mysqli_connect('家庭IP地址', '用户名', '密码', '数据库名', 3306);

这真的让我更加困惑,因为我已经尝试了以上所有方法,甚至将端口号放在“3306”中......难住了,请问有人有什么进一步的想法吗?

【问题讨论】:

  • 给我们“var_dump($_POST);”的输出以及“回声 $query;”在有效的表格帖子上。它将提供更多见解。
  • 首先,您应该在查询中使用之前转义 POST 变量,其次,尝试打印 $query 以便您可以通过在控制台中执行查询来查看错误
  • 我在 if 语句的 else 部分之前使用了 echo $query,并且 SQL 输出为“INSERT INTO harvest (variety, picked, weight) VALUES ( 'Devils Rib', '1', '2')" 我确认输入 MySQL 数据库时可以正常工作......不得不说我现在很困惑。
  • 你没有得到任何进一步的错误细节,因为你只是 echoihg "Error occurred: " 每次你得到一个错误并且 mysqli_error 不作为一个选项存在----php.net/… -- - 试试这个例子以获得更好的结构,使用带有错误报告的 mysqli --- daniweb.com/web-development/php/code/434480/…
  • 感谢您的帮助,试了一下,我得到了以下信息:连接数据库时出错!未知的 MySQL 服务器主机 'XXXXXXXXX.XXX:3306' (1)

标签: php forms jquery-mobile post


【解决方案1】:

经过数小时的浪费时间后,它所托管的网络服务器通过它的防火墙阻止了 MySQL,所以我的所有检查都没有问题,但网络主机防火墙是罪魁祸首,网络公司添加了一个排除项让它工作!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-01
    • 2019-08-18
    • 1970-01-01
    • 1970-01-01
    • 2012-01-18
    • 2014-03-17
    • 2012-10-16
    • 2023-03-12
    相关资源
    最近更新 更多