数据库中未输入数据


Data not entered in database

为什么我无法在数据库中输入数据?

<?php include ( './includes/header.php' ); 
$error = "";
if (@$_POST['send']) {
 $name = mysql_real_escape_string(strip_tags($_POST['name']));
 $email = mysql_real_escape_string(strip_tags($_POST['email']));
 $message = mysql_real_escape_string(strip_tags($_POST['message']));
 if ($name == "") {
  $error = "Name cannot be left empty.";
 }
 else if ($email == "") {
        $error = "Enter valid email id";
 }
 else if ($message == "") {
  $error = "Message cannot be left empty.";
 }
 else{
 //send message
 $sendmessage = mysql_query("INSERT INTO contact VALUES('','$name','$email','$message')",$db1) or die(mysql_error());
 $error = "Message sent!!";
    }
 }
?>
<meta property="og:title" content="Contact Us" />
<meta property="og:description" content="For any help, drop us a mail" />
<meta property="og:image" content="http://studyfoyer.org/images/contactus.jpg" />
<title>Contact Us</title>
</head>
<?php include('includes/navigation.php');?>

    <div class="container">   
        <div class="row">
            <form class="log-page" action="contact.php" method="POST">
                <h2 class="form-signin-heading">Get in touch</h2>   
                <div class="input-prepend">
                    <label for="InputUsername">Name</label>
                    <input type="text" class="form-control" name='name' placeholder="Name" required autofocus>
                </div>
                <div class="input-prepend">
                    <label for="InputEmail">Email</label>
                    <input type="email" class="form-control" name='email' placeholder="Email address" required>
                </div>
                <div class="input-prepend">
                    <label for="InputMessage">Message</label>
                    <textarea class="form-control" rows="3" name="message" placeholder="Your message" required></textarea>
                </div>
                <div class="controls form-inline">
                    <button class="btn btn-primary" name='send' type="submit">Send</button>
                </div>
                    <?php echo $error; ?>
                </div>
            </form>
        </div>
    </div>

Db连接是通过header.php完成的我有两个网站(都在localhost上)使用相同的数据库来获取联系信息。这会影响吗?因为代码似乎在另一个上运行良好。

它应该是if (isset($_POST['send']))而不是if (@$_POST['send'])。如果$_POST['send']为"set",则isset函数将返回true。数据库连接的相同文件不会影响任何内容。

您的代码容易受到SQL注入的攻击。您必须使用准备好的语句来安全地净化用户的输入。