2015-07-10 105 views
-1

所以新來堆棧交換,但這裏什麼也沒有。所以當我發送表單到我的apache服務器時,我的數據只顯示爲1和0。使用var_dump [_ $ POST];在傳遞給MySQL之前顯示我的所有數據都是正確的。 我的HTML表單:

<form method="POST" action="submit.php" class="subForm"> 
     <input type="text" name = "item1" value="0"> 
     <input type="text" name="item2" value="0"> 
     <input type="text" name="item3" value="no"> 
     <input type="text" name="item4" value="no"> 
     <input type="text" name="item5" value="no"> 
     <input type="text" name="item6" value="no"> 
     <input type="submit" id = "form2"> 
    </form> 

我的PHP:

$connect = mysqli_connect('*****','*****','*****','*****'); 
if(!$connect){ 
    die('Could not Connect: ' . mysqli_error($connect)); 
} 
$NoR = isset($_POST["item1"]); 
$CC = isset($_POST["item2"]); 
$SD = isset($_POST["item3"]); 
$HD = isset($_POST["item4"]); 
$pack1 = isset($_POST["item5"]); 
$pack2 = isset($_POST["item6"]); 
$sql = "INSERT INTO form_test (item_1,item_2,item_3,item_4,item_5,item_6) VALUES (".$NoR.",".$CC.",".$SD.",".$HD.",".$pack1.",".$pack2.")"; 
mysqli_query($connect, $sql); 
mysqli_close($connect); 
var_dump($_POST) 

var_dumb顯示所有數據輸入是正確的,但在表本身都顯示爲1和0。有什麼建議?

+0

是的,已經在那。目前這只是一些簡單的形式測試。對我來說,下一步是確保我的表單再次感謝您的建議。 – Hans

回答

-1

isset只會在給定值時給你。 1如果設置,否則爲0

使用

if(isset($_POST["item1"])){ 
    $NoR = $_POST["item1"];` 
} 

更新:我爲你做SUDE ISSET值僅轉到INSERT查詢代碼!

$arrColumns = $arrValues = array(); 
foreach($_POST as $key=>$value){ 
    $arrColumns[] = key($key); 
    $arrValues[] = $value; 
} 
if(is_array($arrValues)){ 
    $sql = "INSERT INTO form_test (implode(',',$arrColumns)) 
      VALUES(implode(',',$arrValues)"; 
    mysqli_query($connect, $sql); 
} 
mysqli_close($connect); 
+0

謝謝你的答案,但是,沒有去。現在開始不再發布到數據庫了。給我一個未定義的索引錯誤。 – Hans

+0

使用這種方法,他將需要在sql語句之前驗證$ Nor是否被設置,因此,雙重驗證。 – taxicala

+0

終於明白了。非常感謝你的幫助! – Hans

1

在PHP中,(如果它設置爲true,否則爲false)isset將返回一個boolean值,當您嘗試打印在PHP中的boolean,它會顯示爲1或0。我建議使用在代碼中三元相比較,它比有一噸的if語句更短,更易於閱讀:

$NoR = isset($_POST["item1"]) ? $_POST["item1"] : ''; 
$CC = isset($_POST["item2"]) ? $_POST["item2"] : ''; 
$SD = isset($_POST["item3"]) ? $_POST["item3"] : ''; 
$HD = isset($_POST["item4"]) ? $_POST["item4"] : ''; 
$pack1 = isset($_POST["item5"]) ? $_POST["item5"] : ''; 
$pack2 = isset($_POST["item6"]) ? $_POST["item6"] : ''; 
0

在HTML窗體添加此

<input type="text" name="action" value="submit"> 

和PHP代碼將是

if (isset($_POST['action']) && ($_POST['action']) == 'submit') { 
    $NoR = mysqli_real_escape_string($_POST["item1"]); 
    $CC = mysqli_real_escape_string($_POST["item2"]); 
    $SD = mysqli_real_escape_string($_POST["item3"]); 
    $HD = mysqli_real_escape_string($_POST["item4"]); 
    $pack1 = mysqli_real_escape_string($_POST["item5"]); 
    $pack2 = mysqli_real_escape_string($_POST["item6"]); 
    $sql = "INSERT INTO form_test (item_1,item_2,item_3,item_4,item_5,item_6) VALUES (".$NoR.",".$CC.",".$SD.",".$HD.",".$pack1.",".$pack2.")"; 
    mysqli_query($connect, $sql); 
    mysqli_close($connect); 
    //var_dump($_POST) 
}