表單提交到資料庫
9.1 表單我們平時打開網頁的時候,會提示我們輸入一些信息,然後點擊"確定"。這個時候,就向伺服器後台提交了一個表單,這個表單包含剛才您輸入的信息。概括的說,表單就是前端向後端的程序提交信息。而我們的PHP程序是後端程序,負責接收這些信息,並做相應的處理。9.2 一個簡單的表單例子9.2.1 前端端9.2.1.1 文件名 文件名:件名:front.html9.l9.2.1.2 代碼 代碼<html><body><!--前端要提交數據到數據到back.php-->--><form action="n="back.php" me" method="post"><!--對話框輸入名字-->Name: <input type="text" name="name"><br><!--對話框輸入郵件地址-->E-mail: <input type="text" name="email"><br><!--提交按鍵--><input type="submit"></form></body></html>9.3.1 後端端9.3.1.1 文件名 文件名:件名:back.php9.p9.3.1.2 代碼 代碼 <?php//獲取前端發來表單里的nameecho "your Name is ".$_POST["name"];//獲取前端發來表單里的emailecho " and your email is ".$_POST["email"];?>9.4 表單提交有兩種方式:post、get。前端和後端需要協調一致才可以獲取到數據。如果前端的方法是get提交,那麼在後端需要通過$_GET獲取。反之,如果是post提交,後端通過$_POST來獲取。9.5 通過瀏覽器提交get表單通過互聯網來訪問網站的時候,其實也是在向網站後端提交get請求。下面我們來演示通過瀏覽器訪問提交get請求。9.5.1 文件名文件名back.php 9 9.5.2 代碼<?php//獲取前端發來表單里的nameecho "your Name is ".$_GET["name"];//獲取前端發來表單里的emailecho " and your email is ".$_GET["email"];?>9.5.3 瀏覽器訪問方式在瀏覽器里輸入 輸入 http://localhost/back.php?name=bianchengniuren&[email protected] 就可以 就可以提交表單了。這種通過URL提交表單的方式,使用非常普遍。
第一種方式 post 提交數據
我們在前台創建一個 front.html ,通過post 的方式提交表單
接下來實現代碼
<!DOCTYPE html><html><head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>前台頁面</title> <link rel="stylesheet" href=""></head><body> <!-- 前端要提交到back.php --> <form action="back.php" method="post"> <!-- 對話框輸入名字 --> Name:<input type="text" name="name" id="name"><br/> <!-- 在對話框輸入郵箱地址 --> Email:<input type="email" name="email" id="email"><span id="tip" style="color: red"></span><br/> <!-- 提交按鈕 --> <input type="submit" value="提交" id="submit"> </form> <script> (function(){ // 簡化函數 let get = function(id){ return document.getElementById(id) }; //判斷用戶輸入的電子郵箱格式是否正確 // function checkEmail(){ var myforms=document.forms; var myemail=myforms[0].email.value; // 郵箱驗證格式 var myReg=/^[a-zA-Z0-9_-]+@([a-zA-Z0-9]+.)+(com|cn|net|org)$/; if(myReg.test(myemail)){ return true; }else{ return false; } } // 獲取元素 let oName = get(name); let oEmail = get(email); let oTip = get(tip); let oSubmit = get(submit); // 在提交按鈕點擊的時候 // 才進行判斷 oSubmit.onclick = function(){ if(oName.value==){ alert(用戶名不能為空); return false; } if(checkEmail()){ // 檢查通過 // 符合格式驗證 // 將提示語清空 oTip.innerHTML = ; // 可以提交 return true; }else{ // 否則不通過 // 不符合格式驗證 // 將提示語賦值 oTip.innerHTML = 您的郵箱格式不正確; // 重新聚焦到email輸入框 oEmail.focus(); // 不讓他提交 return false; } } })() </script></body></html>
後台配置文件 config.php
主要是配置一些公共的數據
<?php $cfg=array( "host"=>"localhost", "user"=>"root", "pwd"=>"root", "dbname"=>"user", "charset"=>"utf-8" ); return $cfg;?>
後台檢測郵箱 checkemail.php
<?php $checkmail="/w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*/";//定義正則表達式 if(isset($_POST[email]) && $_POST[email]!=""){ //判斷文本框中是否有值 $mail=$_POST[email]; //將傳過來的值賦給變數$mail if(preg_match($checkmail,$mail)){ //用正則表達式函數進行判斷 echo "<script> alert(電子郵箱格式正確); // location=./front.html; </script>"; }else{ echo "<script> alert(電子郵箱格式不正確); // location=./front.html; </script>"; } } ?>
在資料庫創建數據表
-- 創建user數據表create table user( id int primary key auto_increment not null, name varchar(20) not null, email varchar(100) not null )charset=utf8;
後台處理程序 back.php
<?php include(./config.php); if(!isset($_GET[name]) && !isset($_GET[email])){ echo "<script> location=./front.html; </script>"; exit(); } var_dump($_GET); $get = $_GET; echo "<br/>"; // 拼接查詢語句 // 插入的數據表 "insert into "."user" // 獲取post 欄位 " (".implode(,,array_keys($post)).") " // 獲取post 欄位對應的數據 " values (".implode(",",array_values($post)).")" $sql = "insert into "."user"; $sql.=" (".implode(,,array_keys($get)).") "; $sql.=" values (".implode(",",array_values($get)).")"; echo $sql; echo "<br/>"; // 鏈接資料庫 $conn = new Mysqli($cfg[host],$cfg[user],$cfg[pwd],$cfg[dbname]); $conn->set_charset(utf8); if($conn->connect_error){ echo "資料庫連接失敗了"." 出錯的原因是 ".$conn->connect_error; } // 插入數據 if ($conn->query($sql) === TRUE) { echo "您插入的用戶名稱為:".$get[name]; echo "<br/>"; echo "您插入的郵箱地址為:".$get[email]; } else { echo "Error: " . $sql . "<br>" . $conn->error; } // // 關閉連接 // $conn->close();?>
到此結束
上圖看效果

第二種方式使用 get 的方式提交數據
我是通過 a 鏈接傳遞數據的
<!DOCTYPE html><html><head> <title>前台頁面</title> <meta charset="utf-8"></head><body> <!-- 通過a鏈接提交數據 --> <!-- 也可以通過form表單的get方式提交數據 --> <a href="./back.php?name=ken&[email protected]">點我提交啊</a></body></html>
資料庫配置文件 config.php
<?php $cfg=array( "host"=>"localhost", "user"=>"root", "pwd"=>"root", "dbname"=>"user", "charset"=>"utf-8" ); return $cfg;?>
後台程序處理 back.php
<?php include(./config.php); if(!isset($_GET[name]) && !isset($_GET[email])){ echo "<script> location=./front.html; </script>"; exit(); } var_dump($_GET); $get = $_GET; echo "<br/>"; // 拼接查詢語句 // 插入的數據表 "insert into "."user" // 獲取post 欄位 " (".implode(,,array_keys($post)).") " // 獲取post 欄位對應的數據 " values (".implode(",",array_values($post)).")" $sql = "insert into "."user"; $sql.=" (".implode(,,array_keys($get)).") "; $sql.=" values (".implode(",",array_values($get)).")"; echo $sql; echo "<br/>"; // 鏈接資料庫 $conn = new Mysqli($cfg[host],$cfg[user],$cfg[pwd],$cfg[dbname]); $conn->set_charset(utf8); if($conn->connect_error){ echo "資料庫連接失敗了"." 出錯的原因是 ".$conn->connect_error; } // 插入數據 if ($conn->query($sql) === TRUE) { echo "您插入的用戶名稱為:".$get[name]; echo "<br/>"; echo "您插入的郵箱地址為:".$get[email]; } else { echo "Error: " . $sql . "<br>" . $conn->error; } // // 關閉連接 // $conn->close();?>
推薦閱讀:
※墨子學院:做seo要注意這幾個常見問題
※榮耀「平板」手機大勢來襲!
※Chrome擴展推薦:更智能的隱私廣告攔截工具來了
※Win32多線程程序設計-進程與線程


