2013-02-25 44 views
0

我的問題是,當我將數據輸入到我的html表單並單擊提交時,它會調用我的php文件,但它不會發送參數。HTML表單不會將變量發送到PHP/MySQL

我甚至嘗試使用工作代碼來測試它,甚至工作代碼不通過變量。我不確定爲什麼這樣做,壞的PHP安裝?不知道。

這是它,如果你想看看它是否至少適合你。但我沒有得到任何傳遞到我的PHP文件中的變量。謝謝您的幫助。

<html> 
    <head> 
    <title>Home</title> 
    </head> 
<body> 

<form method="get" action="reg.php"> 
Firstname: <input type="text" name="firstname"> 
Lastname: <input type="text" name="lastname"> 
Age: <input type="text" name="age"> 
<input type="submit" value="Submit"> 
</form> 

</body> 
</html> 

這裏是php文件:

<?php 
echo $_SERVER['REQUEST_METHOD']; 

if(isset($_GET['firstname'])){ 
    $firstname = $_GET['firstname']; 
} 
else{ 
    $firstname = 'null'; 
} 
if(isset($_GET['lastname'])){ 
    $lastname = $_GET['lastname']; 
} 
else{ 
    $lastname = 'null'; 
} 
if(isset($_GET['age'])){ 
    $age = $_GET['age']; 
} 
else{ 
    $age = 'null'; 
} 

$con = mysqli_connect("127.0.0.1","root","", "my_db"); 


$sql="INSERT INTO persons (FirstName, LastName, Age) 
VALUES 
('$firstname','$lastname','$age')"; 
$result = mysqli_query($con, $sql); 
if ($result) 
    { 
echo "1 record added"; 
    } 
else{ 
    echo "Did not work"; 
} 


error_reporting(E_ALL); 
mysqli_close($con); 
?> 

當我看到錯誤報告,它說未定義指數每一次,每件工作我測試代碼。我測試了4個工作代碼文件,但都沒有工作,但被證明他們做到了。我開始認爲我有一個不好的PHP安裝或更深入的問題。再次感謝。

+2

'$ _GET'的輸出是什麼?做一個'var_dump($ _ GET)'。 – mcryan 2013-02-25 13:10:53

+1

你很容易受到[SQL注入攻擊](http://bobby-tables.com/)**,並且應該學會如何[防禦](http://stackoverflow.com/questions/60174/best-way -to-prevent-sql -injection-in-php)你自己。 – Quentin 2013-02-25 13:10:56

+0

它表示未定義索引處於打開狀態?另外,通過將變量聲明爲空,您可以大大減少代碼行數 – bizzehdee 2013-02-25 13:11:55

回答

-5

三件事:

  1. 我會建議你使用的不是GET POST。
  2. 給你的輸入字段一個ID,它應該工作。
  3. 在將數據寫入數據庫之前,您需要清理數據。
+5

1.應該發表評論。 2.'id'只用於客戶端,如何在這裏添加一個幫助? 3.應該發表評論。 – Quentin 2013-02-25 13:13:29

+3

我上次檢查'id'與提交表單完全無關。只有'name'屬性才能起作用。 – 2013-02-25 13:13:35

+0

@TillHelgeHelwig真的嗎?然後,我一生都給我的投入一個不需要的ID。抱歉! – Sven 2013-02-25 13:15:40