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
-> <input type="submit" value="Submit">
应该是<input type="submit" name="submit" value="Submit">
。看起来您需要检查 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表单提交错误的主要内容,如果未能解决你的问题,请参考以下文章