2012-04-26 57 views
0

我很新的PHP & MySQL。只是为朋友设计网站作为爱好,所以任何帮助都非常感谢。当我在我的页面上有一个简单的联系表单时,我会在提交信息时收到错误消息。这里是PHP:PHP和MySQL的初学者问题

<?php 
$con = mysql_connect("localhost","user","password"); 
if (!$con)) { 
die('Could not connect: ' . mysql_error()); 
} 

mysql_select_db("database_name", $con); 

$sql="INSERT INTO contact (first_name, last_name, email, phone, message) 
VALUES 
('$_POST[first_name]','$_POST[last_name]','$_POST[email]','$_POST[phone]','$_POST[message])"; 

if (!mysql_query($sql,$con)) { 
die('Error: ' . mysql_error()); 
} 
echo "1 record added"; 

mysql_close($con); 
?> 

我把我的用户名密码&必要,但我一直“localhost”的存在。它是否正确?我通过webhostingpad进行托管。我也在上面插入我的数据库名称。这里是我的HTML:

<!--Start of order form--> 

<form id="contactform" method="POST" action="http://www.talephotography.com/insert.php"> 
<p><label>First Name:<br /> 
<input type="text" name="first_name" class="textfield" value="" /> 
</label></p> 

<p><label>Last Name:<br /> 
<input type="text" name="last_name" class="textfield" value="" /> 
</label></p> 

<p><label>Email: <br /> 
<input type="text" name="email" class="textfield" value="" /> 
</label></p> 

<p><label>Phone: <br /> 
<input type="text" name="phone" class="textfield" value="" /> 
</label></p> 

<p><label>Message: <br /> 
<textarea name="message" class="textarea" cols="45" rows="5"></textarea> 
</label></p> 

<p><input type="submit" name="submit" class="button" value="Submit" /></p> 
</form> 
<!--End of order form--> 

我可以详细阐述任何必要的。


更改了一些代码,但它只是将电子邮件地址发布到数据库。

mysql_select_db("databasename", $con); 

$first = mysql_real_escape_string($_POST['first']); 
$last = mysql_real_escape_string($_POST['last']); 
$email = strip_tags(mysql_real_escape_string($_POST['email'])); 
$number = preg_replace('/[^0-9]/', '', $_POST['number']); 
$number = (int) $number; 


$sql="INSERT INTO contact (first, last, email, phone); 
VALUES 
('$first','$last','$email','$number')"; 

有我的代码,但是当我检查我的数据库中列出的唯一信息是电子邮件地址。

+1

什么是错误信息? – Tchoupi 2012-04-26 16:30:53

+0

您收到托管邮件时是否收到任何包含信息的电子邮件? – JonathanRomer 2012-04-26 16:31:09

+0

如果您实际上通过复制粘贴它来告诉我们错误,这通常会有所帮助。这使得它不那么麻烦,可以帮助您,因为我们可以在不读取代码块的情况下电视回答问题。 – mjsa 2012-04-26 16:32:05

回答

3

localhost如果数据库服务器与Web服务器在同一台计算机上,则这是正确的。当你建立数据库时,它应该告诉你什么地方你需要连接到什么地方。

撇开,逃离你的-----------输入!

严重的是,把这些变量与mysql_real_escape_string彻底清洗,然后串联他们进入查询。你以后会感谢我。

+4

或使用[PDO](http://php.net/manual/en/book.pdo.php)。 – 2012-04-26 16:32:37

+0

编号还增加了“不要使用---- ing ext/mysql”!使用Mysqli或PDO :-) – prodigitalson 2012-04-26 16:33:01

+0

@prodigitalson只要您知道如何使用它,MySQL(或任何其他系统)没有任何问题。 – 2012-04-26 16:33:57

0

你在你的if语句有一个额外的)

if (!$con)) { 

应该

if (!$con) { 
0
if (!$con)) it is wrong one extra ')' present here, remove ')' and then execute 

例如

 if (!$con){ 

     //do something 

      } 
0

它的查询是错误的,你有一个 ;这是在你的查询中。

$sql="INSERT INTO contact (first, last, email, phone); 
    VALUES 
('$first','$last','$email','$number')"; 

注意它在第一行的末尾。此更改为:

$sql="INSERT INTO contact VALUES 
('$first','$last','$email','$number')"; 
0

问题是与你的第三个行

$con = mysql_connect("localhost","user","password"); 
if (!$con)) { 
die('Could not connect: ' . mysql_error()); 
} 

有一个额外的右括号)在第三行。删除它,然后voilà!

希望这有助于。