2014-03-29 33 views
0

我嘗試使用php從窗體發送數據到MySQL數據庫時出現了一些問題。我知道如何解決這個問題時,我將窗體操作設置爲anothen頁面(但是<form action="example.php>,但我想,所有procces停留在一個頁面上。 運行我的PHP腳本,並在這兩個字段中輸入名稱去送,只URL頁面的變化,什麼else.Hope u能幫助me.Thanks嘗試從PHP發送數據從窗體到MySql時出錯使用PHP

<?php 
$con=mysqli_connect("localhost","root","","test"); 
if (mysqli_connect_errno()) 
{ 
echo"Error connecting to database". mysqli_connect_error(); 
} 
if (isset($_POST['input_send'])) 
{ 
$name=($_POST['input_name']); 
$lastname=($_POST['input_lastname']); 
$insert="INSERT INTO test_mysql (name, lastname) VALUES ('$name', $lastname)"; 
echo"record added"; 
} 
?> 
<form action="" action="post"> 
First name: <input type="text" name="input_name"/> 
Last name: <input type="text" name="input_lastname"/> 
<input type="submit" value="send" name="input_send"/> 
</form> 
+0

錯誤信息是?連接到數據庫時出錯? –

+0

你能澄清你的問題到底是什麼嗎?目前還不清楚.. – LazerSharks

+0

這是沒有錯誤信息。只有問題是,當我點擊發送只有頁面的URL更改爲'http://localhost/form_2/guestbook.php?input_name = myname&input_lastname = mylastname&input_send =發送' – RIfet

回答

0

改變這種

$insert="INSERT INTO test_mysql (name, lastname) VALUES ('$name', $lastname)"; 

mysqli_query("INSERT INTO test_mysql (name, lastname) VALUES ('$name', '$lastname')"); 

action="post" 

method="post" 

和逃避你的變量那樣:

$name=mysqli_real_escape_string($_POST['input_name']); 
$lastname=mysqli_real_escape_string($_POST['input_lastname']); 
+0

我做了所有的改變,但是當我點擊發送它說「記錄添加」,但它沒有被添加到數據庫。 – RIfet

+0

我編輯了插入的查詢,試試吧 –

+0

它現在有效。謝謝你的每一件事:D – RIfet

0
<form action="<?=echo $_SERVER['PHP_SELF']?>" method='post'> 

您可以從服務器上獲取有關網頁網址的信息。

它基本上行動到同一頁,我的意思是它本身。

1

你的錯誤是您鍵入

action="post" 

,而不是

method="post" 

沒有規定的方法,PHP將回退到GET。 因此您isset($_POST)將返回錯誤的,你看不到「記錄添加」

另一個錯誤,如echo_ME指出的是,你是不是在提交的MySQL數據庫查詢:

$insert="INSERT INTO test_mysql (name, lastname) VALUES ('$name', $lastname)"; 

隨着功能mysqli_query可以執行查詢:

mysqli_query($insert); 

正如其他人指出你應該逃脫你的變量,以防止SQL Injections

+0

謝謝你幫我:D – RIfet

相關問題