2012-11-21 59 views
1

好吧我一直在試驗PHP和我的SQL在最後一天左右。PHP的HTML下拉到MySQL

但我一直在試圖做一個簡單的輸入表單,用戶將填寫一個網頁,然後它流入到我的(mysql)服務器到目前爲止,我有它採取名字姓氏性別和城市但下一個問題是狀態,並提出了一個問題,我有一個下拉所有50個州,但我認爲我的HTML是缺少一個女巫的因素將允許我的PHP腳本抓住它

這是我的國家代碼drop下來

State: <select> 
<option value="Alabama">Alabama</option> 
<option value="Alaska">Alaska</option> 
<option value="Arizona">Arizona</option> 
<option value="Arkansas">Arkansas</option> 
<option value="California">California</option> 
<option value="Colorado">Colorado</option> 
<option value="Connecticut">Connecticut</option> 
<option value="Delaware">Delaware</option> 
<option value="Florida">Florida</option> 
<option value="Georgia">Georgia</option> 
<option value="Hawaii">Hawaii</option> 
<option value="Idaho">Idaho</option> 
<option value="Illinois">Illinois</option> 
<option value="Indiana">Indiana</option> 
<option value="Iowa">Iowa</option> 
<option value="Kansas">Kansas</option> 
<option value="Kentucky">Kentucky</option> 
<option value="Louisiana">Louisiana</option> 
<option value="Maine">Maine</option> 
<option value="Maryland">Maryland</option> 
<option value="Massachusetts">Massachusetts</option> 
<option value="Michigan">Michigan</option> 
<option value="Mississippi">Mississippi</option> 
<option value="Missouri">Missouri</option> 
<option value="Montana">Montana</option> 
<option value="Nebraska">Nebraska</option> 
<option value="Nevada">Nevada</option> 
<option value="New Hampshire">New Hampshire</option> 
<option value="New Jersey">New Jersey</option> 
<option value="New Mexico">New Mexico</option> 
<option value="New York">New York</option> 
<option value="North Carolina">North Carolina</option> 
<option value="North Dakota">North Dakota</option> 
<option value="Ohio">Ohio</option> 
<option value="Oklahoma">Oklahoma</option> 
<option value="Oregon">Oregon</option> 
<option value="Pennsylvania">Pennsylvania</option> 
<option value="Rhode Island">Rhode Island</option> 
<option value="South Carolina">South Carolina</option> 
<option value="South Dakota">South Dakota</option> 
<option value="Tennessee">Tennessee</option> 
<option value="Texas">Texas</option> 
<option value="Utah">Utah</option> 
<option value="Vermont">Vermont</option> 
<option value="Virginia">Virginia</option> 
<option value="Washington">Washington</option> 
<option value="West Virginia">West Virginia</option> 
<option value="Wisconsin">Wisconsin</option> 
<option value="Wyoming">Wyoming</option> 
</select><br> 

這裏是我是如何被optaining其他元素

<?php 
include"config.php"; 
$FirstName = $_POST['FirstName']; 
$LastName = $_POST['LastName']; 
$Gender = $_POST['Gender']; 

$insert = 'INSERT into content(FirstName, LastName, Gender)  VALUES("'.$FirstName.'","'.$LastName.'", "'.$Gender.'")'; 
mysql_query($insert); 

不知道該怎麼做?

+4

首先,mysql_函數現在處於棄用過程,避免使用它們。其次,你在這裏容易受到SQL注入攻擊。 – Lior

+0

我不知道你怎麼解釋? –

+0

閱讀http://php.net/PDO或http://php.net/manual/en/book.mysqli.php 並使用準備好的語句。 – Lior

回答

3

給你選擇控制名稱:

<select name="State"> 

從你的PHP腳本抓住它想:

$state = $_POST['State'] 
0

你得給<select>標籤的ID或名字,像這樣:

<select id="state" name="state"> 

然後,你得到它在PHP這樣的:

$state= $_POST['state']; 
+2

你需要給它一個不屬於ID的名稱屬性,所以''select name =「state」>' – swiss196

+0

@ swiss196你說得對,實際上我通常都是把它們加起來。 – Lior

+1

這個id是專門用於客戶端,其中他的名字是通過服務器端的。 – 2012-11-21 02:21:16

0

HTML

State: <select name="State"> 
<option value="Alabama">Alabama</option> 
<option value="Alaska">Alaska</option> 
<option value="Arizona">Arizona</option> 
<option value="Arkansas">Arkansas</option> 
<option value="California">California</option> 
<option value="Colorado">Colorado</option> 
</select> 

PHP

$State = $_POST['State']; 

使用的mysqli或PDO連接到MySQL,不使用易受攻擊的代碼如上。

+0

即時通訊如此困惑,每個人都在說易受攻擊的代碼,但這就是YouTube上的每一個教程如何顯示我建立這個即時通訊如此失去如何保護這個我有兩天投資在這個,現在擔心。 –

+0

@bushman Omg,你在youtube上學習php?嘗試[php.net](http://php.net) –

+0

大聲笑如何從YouTube上學習降級它必須是最活躍的教程社區之一 –

5

首先你<select>需要一個name屬性:

<select name="state"> 

然後,你需要捕獲它在PHP:

$state = $_POST['state']; 

然後,你需要將它添加到您的SQL語句

$insert = 'INSERT into content(FirstName, LastName, Gender, State)  VALUES("'.$FirstName.'","'.$LastName.'", "'.$Gender.'", "'.$state.'")'; 

這是假設您在您的content中有一列表稱爲狀態,它直接位於性別之後。

並一如既往不使用mysql_ *函數。使用mysqli或PDO。

1

把name屬性的標籤:

<select name="State"> ... 

是的,mysql_功能已被棄用。尋找mysqli_ ...或者更好的,考慮從成熟的框架中使用ORM。

0

你的狀態列表框中選擇需要name屬性

< select name="state" value="Alabama">Alabama</select>

,那麼你可能捕捉值是這樣的:

$state= $_POST['state']; 

然後在你的SQL語句添加。

就是這樣。