2013-06-29 38 views
0

您好,我正在嘗試將頁面連接到MySQL數據庫以進行簡報註冊。我有3個字段,id,姓名,電子郵件的數據庫。該數據庫被命名爲newsletter,該表被命名爲newsletter。一切似乎是罰款,但我收到此錯誤將表單連接到數據庫錯誤

注意:未定義指數:名稱在C:\ WAMP \ WWW \ insert.php上線12 注意:未定義指數:名稱在C:\ WAMP \ www \ insert.php on line 13

這是我的表單代碼。

<form action="insert.php" method="post"> 
<input type="text" value="Name" name="Name" id="Name" class="txtfield" onblur="javascript:if(this.value==''){this.value=this.defaultValue;}" onfocus="javascript:if(this.value==this.defaultValue){this.value='';}" /> 
<input type="text" value="Enter Email Address" name="Email" id="Email" class="txtfield" onblur="javascript:if(this.value==''){this.value=this.defaultValue;}" onfocus="javascript:if(this.value==this.defaultValue){this.value='';}" /> 
<input type="submit" value="" class="button" /> 
</form> 

這是我的insert.php文件。

<?php 
$host="localhost"; // Host name 
$username="root"; // Mysql username 
$password=""; // Mysql password 
$db_name="newsletter"; // Database name 
$tbl_name="newsletter"; // Table name 
// Connect to server and select database. 
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB"); 

// Get values from form 
$name=$_POST['Name']; 
$email=$_POST['Email']; 

// Insert data into mysql 
$sql="INSERT INTO $tbl_name(name, email)VALUES('$name', '$email')"; 
$result=mysql_query($sql); 

// if successfully insert data into database, displays message "Successful". 
if($result){ 
echo "Successful"; 
echo "<BR>"; 
echo "<a href='index.html'>Back to main page</a>"; 
} 

else { 
echo "ERROR"; 
} 
?> 

<?php 
// close connection 
mysql_close(); 
?> 
+0

顯示'insert.php'文件 – dimaninc

+0

請編輯帖子以包含PHP文件,特別是有問題的行。另外,你在桌子上使用任何索引嗎? –

+0

錯誤位於您的insert.php文件中,我們需要查看它的代碼才能找到問題。 – MrByte

回答

0

該錯誤指示索引Name不在$_POST[]陣列中找到。這是一個PHP通知,並不是一個停止顯示的錯誤,而是爲了表明您正在引用一個不存在的值。如果正常/預期此值可能爲空/空,則通知可以安全地忽略。

$name = mysql_real_escape_string($_POST['Name']); 
$email = mysql_real_escape_string($_POST['Email']); 

其他一些注意事項:

除了這個問題,你應該在SQL語句中引用,即之前被消毒公共價值

  • 在調用mysql_connect()是無需將變量$host,$username$password用引號括起來。撥打mysql_select_db()$db_name也是如此。它們已經是上面定義的字符串了,所以這太過分了。

  • 也許在SQL查詢之前對$_POST[]中的值進行驗證可能是一個好主意?例如,如果Name值爲空,則可以輸出錯誤。