【问题标题】:Simple PHP Form Not Submitting简单的 PHP 表单未提交
【发布时间】:2014-03-09 01:14:22
【问题描述】:

页面似乎没有写入数据库。我感觉这可能是数据库错误,而不是表单提交本身。我没有发现任何错误,我似乎无法弄清楚为什么数据库不接受我的参数。请参阅下面的代码和数据库结构。如果您需要更多信息,请告诉我。

    <?php
session_name('shipshapeLogin');
session_set_cookie_params(2*7*24*60*60);
session_start();

define('INCLUDE_CHECK',true);

require('connect.php');
//require_once('business.php');

if(empty($_SESSION['id']))
{
    header("Location: index.php");
    exit;
}

?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8" />
    <title>Ad Posting</title>
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
    <script src="https://code.jquery.com/jquery-1.9.1.js"></script>
    <script src="https://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
    <link rel="stylesheet" type="text/css" href="advertise.css" />
    <link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
    <script>
  $(function() {
    $( "#from" ).datepicker({
      defaultDate: "+1w",
      changeMonth: true,
      numberOfMonths: 3,
      onClose: function( selectedDate ) {
        $( "#to" ).datepicker( "option", "minDate", selectedDate );
      }
    });
    $( "#to" ).datepicker({
      defaultDate: "+1w",
      changeMonth: true,
      numberOfMonths: 3,
      onClose: function( selectedDate ) {
        $( "#from" ).datepicker( "option", "maxDate", selectedDate );
      }
    });
  });
  </script>
</head>
<body>
<div class="container">
<form action="" method="post" class="advertiseform">
<div>
<input class="field" type="text" name="business" id="business" disabled="disabled" placeholder="Business Name" value="<?php echo $_SESSION['username']?>"  required="true" />
</div>
<div>
<input class="field" type="text" name="title" id="title" placeholder="Title" value="" size="23" required="true" />
</div>
<div>
<textarea input class="field" type="textarea" name="ad" id="ad" placeholder="Body" required="true">
</textarea>
</div>
<div>
<input type="text" id="from" name="from" placeholder="Valid from:" required="true">
</div>
<div>
<input type="text" id="to" name="to" placeholder="To:" required="true">
</div>
<div>
<button type="button" id="clearbtn">Clear Advertisement</button>
<input type="submit" name="submit" value="Post Advertisement" class="submit" />
</div>
</form>
</div>

<?php


$business_name = $_POST['business'];
$title = $_POST['title'];
$body = $_POST['ad'];
//$valid_date= $_POST['from']." to ". $_POST['to'];
$fromDate = $_POST['from'];
$toDate = $_POST['to'];


$query = "INSERT INTO Businesses_ads ( business_name, title, from, to, body, posted) VALUES ( :business_name, :title, :from, :to, :body, NOW())";


    $query_params = array(

        ':business_name' => $business_name,
        ':title' => $title,
        ':from' => $fromDate,
        ':to' => $toDate,
        ':body' => $body,
    );

        try{

        $stmt   = $db->prepare($query);
        $result = $stmt->execute($query_params);

        }
        catch(PDOException $ex)
        {
            echo $ex;
        }

?>
</body>
</html>

【问题讨论】:

  • 您是否测试了与数据库的连接?
  • 为什么要使用多个 jQuery 内核?您不检查是否设置了 POST-Request。
  • 是的,连接有效。我检查了每个 $_POST 变量。
  • pastebin.com/Q7UbqpFv 你没有检查 POST-Vars。您只将其定义为变量。
  • 我之前检查过它们。它们似乎输出了正确的值。

标签: php mysql pdo mysqli innodb


【解决方案1】:

tofromreserved words,必须用反引号括起来

变化:

( business_name, title, from, to, body, posted)

到:

( business_name, title, `from`, `to`, body, posted)

【讨论】:

  • 这不起作用,我是否也应该反引号查询的值侧?如果没有,您能否提供整个查询?
  • 不,您不会为您的 VALUES 加上反引号。 @user2793987
  • $query = "INSERT INTO Businesses_ads (business_name, title, from, to, body, posted) VALUES (:business_name, :title, :from, :to, :body, NOW ())";似乎什么也没做。包括反引号。
  • 我也怀疑这个value="&lt;?php echo $_SESSION['username']?&gt;" 这个$business_name = $_POST['business']; 很可能应该是$business_name = $_SESSION['username']; @user2793987 有些事情自相矛盾。或者尝试完全删除value="&lt;?php echo $_SESSION['username']?&gt;",因为它来自(POST)表单并且尚未分配会话变量。
  • 不客气,很高兴我能帮上忙。会话有时会变得棘手,它们确实需要匹配。 @user2793987 如果一个失败,其余的执行也将随之而来。享受吧,干杯。
猜你喜欢
  • 1970-01-01
  • 2014-01-18
  • 1970-01-01
  • 2013-11-27
  • 1970-01-01
  • 2017-12-21
  • 1970-01-01
  • 2020-02-10
  • 1970-01-01
相关资源
最近更新 更多