2016-01-22 92 views
0

我一直在爲此而頭痛。我認爲這應該是一個無法找到的簡單錯誤,我正在尋找新的眼睛來幫助解決。爲什麼我無法將數據傳遞給數據庫

我想通過PHP將表單(「myForm」)的內容更新到mysql數據庫(「dbcerberus」),出於某種原因,不能。

這裏是我的HTML

<div id="form"> 
     <select></select> 
     <form id="postForm" method="POST" action="userForm.php"> 
      <p>Nome:</p> 
      <input id="_nome"> 
      <p>CPF:</p> 
      <input id="_cpf"> 
      <p>Telefone:</p> 
      <input id="_tel"> 
      <p>Endereço:</p> 
      <input id="_adress"> 
      <button id="submit">Save</button> 
     </form> 
     <button id="openVideoButton">LOAD</button> 
    </div> 

這裏是MAIS postForm.php和connect.php提前

connect.php 
<?php 

// Create connection 
$conn = mysql_connect('localhost', 'root', ''); 
$db = mysql_select_db(dbcerberus); 

?> 






postForm.php 
<?php 

    include_once('connect.php'); 

    $name = $_POST['_nome']; 
    $cpf = $_POST['_cpf']; 
    $tel = $_POST['_tel']; 
    $address = $_POST['_adress']; 

    if(mysql_query("INSERT INTO tbvisitante VALUES('$cpf', '$name', '$address', '$tel')")) 
     echo "Succes" 
    else 
     echo "Error" 

?> 

感謝。 P.s .:抱歉我的英文不好。

+2

**危險**:您正在使用[an **過時的**數據庫API](http://stackoverflow.com/q/12859942/19068),並應使用[現代替換](http:///php.net/manual/en/mysqlinfo.api.choosing.php)。你很容易受到[SQL注入攻擊](http://bobby-tables.com/)**現代的API會使它更容易[防禦](http://stackoverflow.com/questions/60174/最好的方式,以防止SQL注入在PHP)自己從。 – Quentin

+0

嗨盧卡斯只考慮調查PDO而不是mysql_connect –

+0

您表單上的action屬性需要更新爲postForm.php。 – Rhuarc13

回答

3

更改此:

<div id="form"> 
    <select></select> 
    <form id="postForm" method="POST" action="userForm.php"> 
     <p>Nome:</p> 
     <input id="_nome"> 
     <p>CPF:</p> 
     <input id="_cpf"> 
     <p>Telefone:</p> 
     <input id="_tel"> 
     <p>Endereço:</p> 
     <input id="_adress"> 
     <button id="submit">Save</button> 
    </form> 
    <button id="openVideoButton">LOAD</button> 
</div> 

要這樣:

<div id="form"> 
    <select></select> 
    <form id="postForm" method="POST" action="userForm.php"> 
     <p>Nome:</p> 
     <input name="_nome"> 
     <p>CPF:</p> 
     <input id="_cpf" name="_cpf"> 
     <p>Telefone:</p> 
     <input name="_tel"> 
     <p>Endereço:</p> 
     <input name="_adress"> 
     <button id="submit">Save</button> 
    </form> 
    <button id="openVideoButton">LOAD</button> 
</div> 

注:id不被使用。它並沒有受到傷害,但它並沒有用在表單文章中。另一方面,name成爲變量名稱,而字段內容是該變量的值。


另外,糾正你的mysql_query聲明:

mysql_query("INSERT INTO tbvisitante (`cpf`,`name`,`address`,`tel`) VALUES('$cpf', '$nome', '$adress', '$tel') ") 

注:變量$名稱也必須完全拼寫相同的HTML元素的屬性name=

注2:我是,假設,我已經正確地猜出了你的MySQL數據庫的字段名稱。如有必要請糾正它們。

強制性聲明:您也應該使用mysqli_PDO,而不是已棄用的mysql_命令。

+0

看,知道這是一個愚蠢的錯誤。我在整個早上看了這段代碼,並沒有提到。非常感謝你。 嗯,是的,一個使用'msqli',但我更改爲'mysql'看看是否是這個問題。 –

+0

*「您還應該使用mysqli_或PDO」* - 「具有」準備好的聲明。僅僅使用它們自己不會保護它們免受可能的SQL注入;-) –

+0

@LucasLeite是不是很好?我在這裏提供的答案和我在提問時一樣多。請提供所有有用的答案 - 昆汀有我的答案不包括的一些好的提示。 – gibberish

1

表單控件的name屬性決定了將值發送到服務器時如何標記其值。

表單控件沒有name s不成功,根本不會發送。

你只給你這是用於客戶端交互id屬性(如結合的for屬性的<label>的(你should be using))。

相關問題