1. 怎麼用php把html表單內容寫入資料庫
1:首先要使用PHP的超全局變數 $_GET 和 $_POST 用於收集表單數據(form-data)
2:然後使用INSERT INTO 語句用於向資料庫表中插入新記錄。
具體示例:
(1)首先創建了一個名為 "Persons" 的表,有三個列:"Firstname", "Lastname" 以及 "Age"。
<?php
$con=mysql_connect("localhost","peter","abc123");
if(!$con)
{
die('Couldnotconnect:'.mysql_error());
}
mysql_select_db("my_db",$con);
mysql_query("INSERTINTOPersons(FirstName,LastName,Age)
VALUES('Peter','Griffin','35')");
mysql_query("INSERTINTOPersons(FirstName,LastName,Age)
VALUES('Glenn','Quagmire','33')");
mysql_close($con);
?>
(2)其次創建一個 HTML 表單,這個表單可把新記錄插入 "Persons" 表。
<html>
<body>
<formaction="insert.php"method="post">
Firstname:<inputtype="text"name="firstname"/>
Lastname:<inputtype="text"name="lastname"/>
Age:<inputtype="text"name="age"/>
<inputtype="submit"/>
</form>
</body>
</html>
(3)接著當用戶點擊上例中 HTML 表單中的提交按鈕時,表單數據被發送到 "insert.php"。"insert.php" 文件連接資料庫,並通過
$_POST 變數從表單取回值。然後,mysql_query() 函數執行 INSERT INTO 語句,一條新的記錄會添加到資料庫表中。
<?php
$con=mysql_connect("localhost","peter","abc123");
if(!$con)
{
die('Couldnotconnect:'.mysql_error());
}
mysql_select_db("my_db",$con);
$sql="INSERTINTOPersons(FirstName,LastName,Age)
VALUES
('$_POST[firstname]','$_POST[lastname]','$_POST[age]')";
if(!mysql_query($sql,$con))
{
die('Error:'.mysql_error());
}
echo"1recordadded";
mysql_close($con)
?>
2. php表單怎樣提交到當前頁面,並用$_POST獲取其值
按照這樣輸入:
<?php
$username=$_POST['username'];
?>
<form action="" ><input type="text" name="username"><input type="submit" name="submit" value="提交"></form>
3. php避免form表單重復提交
php避免form表單重復提交
重復提交我們在php中的防止方法許多最常用的就是資料庫限制了,當然也有可以直接在客戶端進行限制了,具體的來看php重復提交防止示例會有哪些呢?
下面的情況就會導致表單重復提交:
點擊提交按鈕兩次。
點擊刷新按鈕。
使用瀏覽器後退按鈕重復之前的操作,導致重復提交表單。
使用瀏覽器歷史記錄重復提交表單。
瀏覽器重復的HTTP請求。
網頁被惡意刷新。
下面是幾種解決辦法:
一:利用js設置按鈕點擊後變成灰色
<form name=form1 method=”POST” action=”/” target=_blank>
<p>
<input type=”text” name=”T1″ size=”20″>
<input type=”button” value=”提交” onclick=”javascript:{this.disabled=true;document.form1.submit();}”>
</p>
</form>
點擊完按鈕之後變成灰色就不能點擊了,用戶需要再次提交表單的話就要刷新頁面之後重新填寫數據再提交了。
二:利用session
在session中???放一個特殊標志。當表單頁面被請求時,生成一個特殊的字元標志串,存在session中,同時放在表單的隱藏域里。接受處理表單數據時,檢查標識字串是否存在,並立即從session中刪除它,然後正常處理數據。
如果發現表單提交里沒有有效的.標志串,這說明表單已經被提交過了,忽略這次提交。
這使你的web應用有了更高級的XSRF保護
載入提交的頁面時候,生成一個隨機數,
$code = mt_rand(0,1000000);
存儲在表單的隱藏輸入框中:
< input type=”hidden” name=”code” value=””>
在接收頁面的PHP代碼如下:
<?php
session_start();
if(isset($_POST[‘code’])) {
if($_POST[‘code’] == $_SESSION[‘code’]){
// 重復提交表單了
}else{
$_SESSION[‘code’] =$_POST[‘code’]; //存儲code
}
}?>
三:利用cookies
原理和session差不多,但是cookies一旦用戶瀏覽器禁用cookies,這功能就失效了
if(isset($_POST[‘submit’])){
setcookie(“tempcookie”,””,time()+30);
header(“Location:”.$_SERVER[PHP_SELF]);exit();
}
if(isset($_COOKIE[“tempcookie”])){
setcookie(“tempcookie”,””,0);echo “您已經提交過表單”;
}
四:利用header函數跳轉
一旦用戶點擊提交按鈕,處理完數據後跳到其他頁面
if (isset($_POST[‘submit’])) {
header(‘location:success.php’);//處理數據後,轉向到其他頁面
}
五:利用資料庫來添加約束
直接在資料庫里添加唯一約束或創建唯一索引,一旦發現用戶重復提交了,直接拋出警告或者提示,或者只處理第一次提交的數據,這是最直接有效的方法,要求前期的資料庫設計和架構要考慮周全.
六:Post/Redirect/Get模式
在提交後執行頁面重定向,這就是所謂的Post-Redirect-Get (PRG)模式。簡言之,當用戶提交了表單後,你去執行一個客戶端的重定向,轉到提交成功信息頁面。
if (isset($_POST[‘action’]) && $_POST[‘action’] == ‘submitted’) {
//處理數據,如插入數據後,立即轉向到其他頁面
header(‘location:submits_success.php’);
}
這能避免用戶按F5導致的重復提交,而其也不會出現瀏覽器表單重復提交的警告,也能消除按瀏覽器前進和後退按導致的同樣問題。
;4. PHP處理表單換行
首先~資料庫中是不會儲存回車的~所以,你把這個值傳到資料庫中的時候要用函數進行替換,比如回車換成[BR] 空格換成[NBSP],具體的回車 空格 等資料庫不支持的字元 要自己去差回車好像是\n 然後讀取的時候 從資料庫中取出內容在替換回回車(<br>)就OK了~~~~
5. php表單提交
1 用JS提交表單的方法
首先通過JS判斷選擇的是哪個項目 然後 在條件里 提交到不同的頁面
2 建一個PHP頁面 判斷提交來的選項里是哪個項目
再通過GET方式將表單的內容傳到相應的頁面
3 可以將1.PHP和2.PHP 寫在一個文件里 然後判斷選項來選擇處理代碼
6. PHP表單提交不同數據到資料庫的不同表的不同欄位怎麼實現
你可以用 PHP 的 MySQLi 或 PDO 庫來實現。
首先,你需要使用這些庫中的函數連接資料庫,然後把表單中的欄位值插入到相應的數據表中。
例如,如果你使用 MySQLi,你可以這樣寫:
$conn = mysqli_connect("hostname", "username", "password", "database_name");
$rwid = $_POST['rwid'];
$rwdj = $_POST['rwdj'];
$rwzb = $_POST['rwzb'];
$sql1 = "INSERT INTO table_a (s) VALUES ('$rwid')";
mysqli_query($conn, $sql1);
$sql2 = "INSERT INTO table_b (d) VALUES ('$rwdj')";
mysqli_query($conn, $sql2);
$sql3 = "INSERT INTO table_c (f) VALUES ('$rwzb')";
mysqli_query($conn, $sql3);
如果你使用 PDO,你可以這樣寫:
$conn = new PDO("mysql:host=hostname;dbname=database_name", "username", "password");
$rwid = $_POST['rwid'];
$rwdj = $_POST['rwdj'];
$rwzb = $_POST['rwzb'];
$stmt1 = $conn->prepare("INSERT INTO table_a (s) VALUES (:s)");
$stmt1->bindParam(':s', $rwid);
$stmt1->execute();
$stmt2 = $conn->prepare("INSERT INTO table_b (d) VALUES (:d)");
$stmt2->bindParam(':d', $rwdj);
$stmt2->execute();
$stmt3 = $conn->prepare("INSERT INTO table_c (f) VALUES (:f)");
$stmt3->bindParam(':f', $rwzb);
$stmt3->execute();
希望這個答案對你有幫助。
7. php中如何自動填寫表單
你在page1.php裡面傳參數給page2.php應該是採用<FORM>的方式,page1.php的代碼結果應該象下面這樣:
<form action=page2.php method=post>
用戶名:<input type=text name=username>
...其它輸入內容,比如密碼、性別、年齡等....
<input type=submit value='提交'>
</form>
這樣page2.php就能檢測到page1提交來的數據,當page2.php需要調用page3.php並且也傳遞參數的時候,可以採用類似的辦法。不過如果你不想把數據顯示在page2.php的頁面上,那麼可以使用<input type=hidden>。另外如果你想page2.php自動調用page3.php,無需用戶點確認按鈕,那麼可以使用javscript來實現,page2.php的代碼結構大致應該如下:
echo <<<END
<form name=form0 action=page3.php method=post>
<input type=hidden name=username value='$username'>
</form>
<script type=text/javascript>document.form0.submit();</script>
END;
8. PHP下拉表單菜單
1、新建一個php文件,命名為test.php,用於講解PHP實現下拉表單菜單。