php mysql html表单提交错误

时间:2014-02-13 22:24:29

标签: php html mysql forms submission

我正在为我的网站制作一个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>

1 个答案:

答案 0 :(得分: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。