两文件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

pswtheindex.php部分似乎工作正常,但处理程序抛出一个内部服务器错误(500)

index.php

    <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列,它就可以完美地工作了。