【问题标题】:Php mysql html form submission errorphp mysql html表单提交错误
【发布时间】:2014-02-13 22:24:29
【问题描述】:

我正在为我的网站创建一个 cms,但此表单未提交。我知道这是一个查询问题,但我不知道出了什么问题。有什么帮助吗?此外,$db 在我的配置中,我确实将它包含在页面顶部。问题是它没有提交,它所做的一切都是刷新,没有别的。我也想稍后在表格中显示表单提交,但我不知道该怎么做,如果有人能帮助我完成那部分,那也很棒。

php:

    <?php
if(isset($_POST['submit']))
{
  $c_name = $_POST['channel_username'];
  $v_link = $_POST['video_link'];
  $v_title = $_POST['video_title'];
  $v_desc = $_POST['vido_description'];
  $v_tags = $_POST['video_tags'];
  $m_sources = $_POST['music_sources'];
  $s_requests = $_POST['special_requests'];

  if(empty($c_name) or empty($v_link) or empty($v_title) or empty($v_title) or empty($v_desc) or empty($v_tags))
  {
    echo 'You must fill in the first 5 fields.';
  }
  else
  {
    $getRank = $db->query("SELECT * FROM users WHERE username = '".$_SESSION['username']."'");
    while ($row = $getRank->fetch_assoc())
    {
      $usename = $row['username'];
      $rank = $row['rank'];
    }
   $db->query("INSERT INTO submitted_forms (username, rank, channel_username, video_link, video_title, video_description, video_tags, music_sources, special_requests) VALUES ('$username', '$rank', '$c_name', '$v_link', '$v_title', '$v_desc', '$v_tags', '$m_sources', '$s_requests')");
    echo 'Form submitted successfully.';
    }
  }
?>

HTML:

    <form method="POST">
  <p>Channel name <input type="text" name="channel_name" required>*</p>
  <p>Video Link   <input type="text" name="video_link" required>*</p>
  <p>Video Title  <input type="text" name="video_title" required>*</p>
  <p>Video Description <input type="text" name="video_description" required>*</p>
  <p>Video Tags   <input type="text" name="video_tags" required>*</p>
  <p>Music Sources <input type="text" name="music_sources"></p>
  <p>Special Requests <input type="text" name="special_requests"></p>
  <br></br>
  <p><input type="submit" name="submit" value="Submit"></p>
</form>

【问题讨论】:

  • 抱歉,HTML 和 PHP 中的字段名称有点不匹配。因此,这个问题是没有用的。
  • 除了表单字段/帖子键不匹配(c_name != channel_username 等),您的查询有不匹配的单引号/双引号 -> "INSERT INTO submitted_forms ... VALUES (''.$username.'', 应该是 "INSERT INTO submitted_forms ... VALUES ('".$username."',或者干脆"INSERT INTO submitted_forms ... VALUES ('$username',
  • 另外,您正在检查if(isset($_POST['submit'])),但您的提交按钮没有名称submit -> &lt;input type="submit" value="Submit"&gt; 应该是&lt;input type="submit" name="submit" value="Submit"&gt;。看起来您需要检查 html 和 php,并确保每个表单元素与每个 php post 变量相同。
  • 我匹配了 html 和 php 并将查询更改为下面的人发布的内容,但仍然没有工作。我现在要做提交按钮,看看是否有效
  • 是啊,我改了按钮,还是不行,我改了查询,还是不行,我把所有的html都匹配了,还是不行。

标签: php html mysql forms submission


【解决方案1】:

如果问题确实出在查询上,那么很可能是这样的:

$db->query("INSERT INTO submitted_forms (username, rank, channel_username, video_link, video_title, video_description, video_tags, music_sources, special_requests) VALUES (''.$username.'', ''.$rank.'', ''.$c_name.'', ''.$v_link.'', ''.$v_title.'', ''.$v_desc.'', ''.$v_tags.'', ''.$m_sources.'', ''.$s_requests.'')");

我认为,你想要:

$db->query("INSERT INTO submitted_forms (username, rank, channel_username, video_link, video_title, video_description, video_tags, music_sources, special_requests) VALUES ('$username', '$rank', '$c_name', '$v_link', '$v_title', '$v_desc', '$v_tags', '$m_sources', '$s_requests')");

-- 编辑--

除此之外,虽然它不会按原样给你一个错误,但你真的不应该在其中插入新的 POST 数据。至少你可能想在上面使用 mysqli_real_escape_string。

【讨论】:

    猜你喜欢
    • 2017-08-30
    • 2017-08-28
    • 2019-03-12
    • 2014-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-10
    相关资源
    最近更新 更多