php mysql html表单提交错误

Posted

技术标签:

【中文标题】php mysql html表单提交错误【英文标题】:Php mysql html form submission error 【发布时间】: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都匹配了,还是不行。 【参考方案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。

【讨论】:

以上是关于php mysql html表单提交错误的主要内容,如果未能解决你的问题,请参考以下文章

HTML 表单和 PHP 脚本 - 不向 MySQL 数据库表提交数据

php 表单提交错误后返回数据消失问题的解决方法

连接 PHP 源代码并提交表单到 MySQL 数据库

PHP 表单提交到 MySQL,无需刷新/重定向

提交带有空复选框的 HTML 表单

php代码 potst 提交的问题?