双文件PHP联系表

问题描述:

psw index.php部分似乎工作正常,但处理程序抛出内部服务器错误(500)。双文件PHP联系表

的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>"; 
} 
+1

检查你的日志,使用PDO,阅读FAQ。 – Brad 2011-04-19 03:14:44

+3

你可能想从帖子中删除你的root密码。 – Mikecito 2011-04-19 03:16:47

+0

@Mikecito,你刚刚吹入我们的唯一进入国家安全局吗? – 2011-04-19 03:31:58

我觉得你有与您的查询字符串的错误。它应该看起来像

$query = "INSERT INTO contact (name, email, website, message, added_date)VALUES ('$name','$email','$sub','$msg',NULL)"; 

双引号打破了你的字符串,并且不连接不同的部分。

+0

感谢您将主键我注意到,我没有想到问题出现在数据库中,但是一旦我将主值和日期列添加了DEFAULT值,它就可以很好地工作。 – TwoRoses 2011-04-19 22:39:50

正如Mikecito所说。您将要删除NULL附近的引号。

$query = "INSERT INTO contact (pk_contact, name, email, website, message, added_date)VALUES (NULL,'$name','$email','$sub','$msg',NULL)"; 

假设你已经设置你的MySQL表所以added_date场是一个MySQL时间戳格式,试图进入'NULL'入表将导致MySQL错误。

还要确保mysql表中允许将空值输入pk_contactadded_date字段。