两文件PHP联系人表单
pswtheindex.php部分似乎工作正常,但处理程序抛出一个内部服务器错误(500) index.php两文件PHP联系人表单,php,mysql,forms,contact,Php,Mysql,Forms,Contact,pswtheindex.php部分似乎工作正常,但处理程序抛出一个内部服务器错误(500) index.php <div id="contact"> <h1>Contact us</h1> <form id="ContactForm" method="post" action="submit.php"> <p> <label>Na
<div id="contact">
<h1>Contact us</h1>
<form id="ContactForm" method="post" action="submit.php">
<p>
<label>Name<span>(optional)</span></label>
<input id="name" name="name" class="inplaceError" maxlength="120" type="text" autocomplete="on"/>`enter code here`
<span class="error" style="display:none;"></span>
</p>
<p>
<label>Email<span>(optional)</span></label>
<input id="email" name="email" type="text" />
</p>
<p>
<label>Subject<span>(optional)</span></label>
<input id="website" name="website" />
</p>
<p>
<label>Your message<br /> <span>700 characters allowed</span></label>
<textarea id="message" name="message" cols="6" rows="5"></textarea>
</p>
<p class="submit">
<input id="send" type="submit" value="Submit" name="submit"/>
<span id="loader" class="loader" style="display:none;"></span>
</p>
<input id="newcontact" name="newcontact" type="hidden" value="1"></input>
</form>
submit.php -->
if(isset($_POST['submit'])) {
$name = $_POST['name'];
$email = $_POST['email'];
$website = $_POST['website']; //subject
$message = $_POST['message'];
$connection = mysql_connect ("localhost", "root", "pswd") or die ('DB connection fail:' .mysql_error());
mysql_select_db ("contactform");
$query = "INSERT INTO contact (pk_contact, name, email, website, message, added_date)VALUES ('NULL','$name','$email','$sub','$msg','NULL')";
//good to know about the quotes, but the page still insist there's an error
mysql_query($query) or die ('Error uploading DB');
mysql_close($connection);
echo "<span id="success_message" class="success">YAY! It worked.</span>";
} else {
echo "<span class='error'>Try again.</span>";
}
联系我们
名称(可选)
`在这里输入代码`
电子邮件(可选)
主题(可选)
您的邮件
允许包含700个字符
submit.php-->
如果(isset($_POST['submit'])){
$name=$_POST['name'];
$email=$_POST['email'];
$website=$_POST['website'];//主题
$message=$_POST['message'];
$connection=mysql\u connect(“localhost”、“root”、“pswd”)或die(“DB连接失败:”.mysql\u error());
mysql_select_db(“contactform”);
$query=“在联系人(主键联系人、姓名、电子邮件、网站、消息、添加日期)中插入值('NULL'、'$name'、'$email'、'$sub'、'$msg'、'NULL');
//很高兴知道这些引语,但页面仍然坚持认为有错误
mysql_query($query)或die('Error upload DB');
mysql_close($connection);
回声:“耶!成功了。”;
}否则{
回声“再试一次。”;
}
我认为您的查询字符串有错误。应该是这样的
$query = "INSERT INTO contact (name, email, website, message, added_date)VALUES ('$name','$email','$sub','$msg',NULL)";
双引号打断了字符串,不同的部分没有连接起来。正如Mikecito提到的那样。您将要删除NULL周围的引号
$query = "INSERT INTO contact (pk_contact, name, email, website, message, added_date)VALUES (NULL,'$name','$email','$sub','$msg',NULL)";
假设您已将mysql表设置为added\u date
字段为mysql时间戳格式,尝试在表中输入'NULL'
将导致mysql错误
还要确保mysql表允许在
pk_contact
和added_date
字段中输入空值。检查日志,使用PDO,阅读常见问题解答。您可能想从帖子中删除根密码。@Mikecito,您是不是刚刚将我们的唯一密码写入了NSA?如果您引用空值,SQL会认为您试图插入一个值为“NULL”的字符串。删除撇号并查看返回的错误。pk_contact是表的主键吗?我认为不能为主键插入NULL。如果您将它设置为autoincrement,您可以从查询中忽略它,我想您会没事的。更新我的答案以反映这一点。感谢您让我注意到主键。我不认为问题出在数据库上,但一旦我添加了值为DEFAULT的primary和date列,它就可以完美地工作了。