Php 数据库中未输入数据
为什么我无法在数据库中输入数据Php 数据库中未输入数据,php,mysql,database,Php,Mysql,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_
<?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>
应该是if(isset($\u POST['send'])
而不是if(@$\u POST['send'])
。如果$\u POST['send']为“set”,函数将返回true。db连接的相同文件不会影响任何内容
您的代码易受SQL注入的攻击。您必须使用准备好的语句来安全地清理用户的输入 您遇到了什么错误,$db1
是否正确启动?您是否已确保代码达到else
条件?此外,你已经尝试过什么?请向我们提供更多信息。没有错误$_这个职位不起作用。我以前使用过该代码,它工作得很好。您所说的“$”的确切含义是什么?您的意思是,如果由于未设置$\u POST
而导致块
未首先执行,则整个?如果未设置$\u POST
,请确保表单使用$\u POST
方法将数据传递到此PHP脚本。PS为什么要用@
抑制错误?只需使用isset
或empty
。谢谢,但它以前是如何工作的?你能详细解释一下吗?你能解释一下,如何更安全地输入它吗?Siddharth,为了清理用户的输入以将其安全地存储在数据库中,你需要使用准备好的语句和参数化查询。请参阅和链接。如果某个答案对你有帮助,别忘了给它投票:)