標籤:info mysqli 運算 login bsp 對話 cti 布爾 val
1、先做一個登陸介面
<form action="chuli.php" method="post"> <div>使用者名稱:<input type="text" name="uid" /></div> <div>密碼:<input type="text" name="pwd" /></div> <div><input type="submit" name="" value="確定" /></div></form>
2、訪問資料庫進行帳號密碼驗證(拿使用者名稱查密碼,再進行驗證)
$uid = $_POST["uid"];$pwd = $_POST["pwd"];$db = new MySQLi("localhost","root","159357","shuiguo");$sql = "select password from login where username=‘{$uid}‘"; //當用此方法時會出現不輸入資料就能直接登入,所以要加if判斷密碼不等於空$reslut = $db->query($sql);$n = $reslut->fetch_row();if($uid !="" && $pwd != "") //判斷使用者名稱跟密碼不等於空{ if($n[0]==$pwd) //當用此方法時會出現不輸入資料就能直接登入,所以要加if判斷密碼不等於空 { header("location:main.php"); } else { echo "使用者名稱或密碼錯誤!"; }}else{ echo "使用者名稱密碼不可為空";}
3、登入後跳轉到首頁:通過查資料庫裡面的內容,返回一張表、增加操作列(刪除)
<table width="100%" border="1" cellpadding="0" cellspacing="0"> <tr> <td>代號</td> <td>姓名</td> <td>性別</td> <td>民族</td> <td>生日</td> <td>操作</td> </tr><?php$db = new MySQLi("localhost","root","159357","renyuanxinxi");$sql = "select * from info";$result = $db->query($sql);$attr = $result->fetch_all();foreach($attr as $v){ $sex = $v[2]?"男":"女"; //三維運算子 $name = NationName($v[3]); /*$sname = "select name from nation where code=‘{$v[3]}‘"; //根據民族代號查詢民族名稱 $rname = $db->query($sname); //執行返回rname結果集 $aname = $rname->fetch_row();*/ //返回數組aname 裡面存民族名稱 查到了一個 echo "<tr>"; echo "<td>{$v[0]}</td> <td>{$v[1]}</td> <td>{$sex}</td> <td>{$name}</td> <td>{$v[4]}</td> <td><a href=‘shanchu.php?c={$v[0]}‘ onclick=\"return confirm(‘主人真的不要我了嗎?‘)\">刪除</a></td>";
//傳主索引值c,根據主索引值刪除資料
//confirm 帶確定的對話方塊(如果使用者點確定就返回true 點取消就返回false) // \反斜線 逸出字元 //第一種方法:直接寫<td> /*foreach($v as $v1) //第二種方法:用迴圈代替<td> { echo "<td>{$v1}</td>"; } echo "</tr>";*/}function NationName($code) //如果覺得上面寫的比較亂,可以用封裝 //給一個民族代號返回民族名稱{ $db = new MySQLi("localhost","root","159357","renyuanxinxi"); $sql = "select name from nation where code=‘{$code}‘"; $result = $db->query($sql); $attr = $result->fetch_row(); return $attr[0];}?></table><a href="add.php"><input type="button" value="點我添加" /></a>
4、刪除操作(根據主索引值來進行單條刪除)
<?php$code = $_GET["c"];$db = new MySQLi("localhost","root","159357","renyuanxinxi");$sql = "delete from info where code=‘{$code}‘";$r = $db->query($sql);if($r){ header("location:main.php");}else{ echo "刪除失敗!";}
5、做一個添加頁面(民族列訪問資料庫,建立下拉式清單)
<form action="addchuli.php" method="post"> <div>代號:<input type="text" name="code" /></div> <div>姓名:<input type="text" name="name" /></div> <div>性別: <input type="radio" name="sex" value="1" checked="checked" />男 <input type="radio" name="sex" value="0" />女 </div> <div>民族: <select name="nation"> <?php $db = new MySQLi("localhost","root","159357","renyuanxinxi"); $sql = "select * from nation"; //尋找民族資訊 $result = $db->query($sql); $result = fetch_all(); foreach($attr as $v) { echo "<option value=‘{$v[0]}‘>{$v[1]}</option>"; //所有表單提交的是value值 } ?> </select> </div> <div>生日:<input type="text" name="birthday" /></div> <div><input type="submit" value="添加"</div></form>
6、設定添加頁面,更加人性化(使用者不知道怎麼填,可以做選擇等)
$code = $_POST["code"];$name = $_POST["name"];$sex = $_POST["sex"];$nation = $_POST["nation"];$birthday = $_POST["birthday"];$db = new MySQLi("localhost","root","159357","renyuanxinxi");$sql = "insert into info values(‘{$code}‘,‘{$name}‘,{$sex},‘{$nation}‘,‘{$birthday}‘)"; //‘{$name}‘字串往布爾型裡面扔永遠是true$db->query($sql);header("location:main.php"); //在添加性別與民族的時候要寫 1或者0 民族代號
小插曲(sql注入攻擊)
sql語句代碼 $sql = "select count(*) from login where username=‘{$uid}‘ and password=‘{$pwd}‘"用特定字串登入 a‘ or ‘1‘=‘1解決方案針對php來說:1、最佳化語句 2、處理使用者輸入內容,用函數判斷有無特殊符號 3、PDO方法:分兩次發送
php資料訪問增刪查