5.
編輯與刪除資料
一、 刪除資料庫中的資料
- 刪除資料的指令是delete,其指令如下:
delete from 資料表名稱 [where 篩選條件] [limit 筆數]
- 注意喔!若是沒有where,那就相當於要把整個資料表的資料清空!不可不慎喔!
二、 確認刪除
- 確認後刪除可以用最基本的javascript來做:
<script>
function del_func(sn){
var sure = window.confirm('確定要刪除此資料?');
if (!sure) return;
location.href="xxx.php?op=del&sn=" + sn;
}
</script>
- 刪除的連結可以改為:
<a href='javascript:del_func($sn)'>刪除</a>
三、 修改(更新)資料
- 修改(更新)資料的SQL語法:
update 資料表 set 欄位1=值1,欄位2=值2,... [where 篩選條件] [limit 筆數]
- 記得!一定要有where,否則的話,會所有欄位全部被更新!
四、 設計修改功能的步驟
- 按下修改連結時,將欲修改的資料流水號傳給程式(請用get方式傳遞參數)。
- 程式接收後,判斷若有接收到流水號,則為修改模式,否則為新增模式。
- 接著利用接收的流水號從資料庫取得該筆資料。
- 將取得之資料塞回去原來的填寫表單。
- 用隱藏欄位來存放模式狀態,以利送出時程式判斷該新增或更新。
五、 欄位資料的還原
- 文字框:<input type="text" name="名稱" value="預設值" size="大小">
- 單選框:<input type="radio" name="名稱" value="值" checked>選項文字
- 複選框:<input type="checkbox" name="名稱[]" value="值" checked>選項
- 下拉選單:<option value="值" selected>選項文字</option>
- 大量文字框:<textarea name="名稱" >預設值</textarea>
六、 避免被隱碼攻擊
- get_magic_quotes_gpc()偵測PHP魔術引號的設定值,magic_quotes_gpc =on時,會動替輸入之特殊符號加上「\」,使之喪失原有功能。但PHP5.3已取消該設定。
- stripslashes()是用來去除斜線用;addslashes()則是加上斜線。
- mysql_real_escape_string()可以替特殊符號加上「\」,使之喪失原有功能。注意,需要連上 MySQL 資料庫才能用該函數。
function check_input($value){
// 去除斜線
if (get_magic_ quotes_gpc()){
$value = stripslashes($value);
}
// 如果不是數字則加上引号並對特殊字元加上斜線
if (!is_numeric($value)){
$value = "'" . mysql_real_escape_string($value) . "'";
}
return $value;
}
因為網站安全機制關係,有些關鍵字不給發布,故請自行將 get_magic_ quotes_gpc() 刪除中間空白改為 get_magic_quotes_gpc()
-
若不想套用mysql_real_escape_string(),也可以改用以下簡單一點的方式:
//替特殊符號加入反斜線
function check_input($value){
if (!get_magic_quotes_gpc()){
$value = addslashes($value);
}
return $value;
}
七、加入QR Code
- 請連至:https://createqrcode.appspot.com/
- 輸入網址,選擇適當大小,並將產生的語法複製起來,例如:
http://chart.apis.google.com/chart?cht=qr&chs=200x200&chl=http%3A//www.tad0616.net&chld=H|0
- 接著將其中的網址替換成自己的網址即可。
- 接著將該連結塞入圖片的HTML語法中:
<img src="http://chart.apis.google.com/chart?cht=qr&chs=200x200&chl=http%3A//163.26.52.243/%7Etad1032/index.php&chld=H|0" alt="QR Code">
- 自動抓網址的語法:
$url=$_SERVER["SERVER_ADDR"].$_SERVER['REQUEST_URI'];
- 記得用urlencode()來替網址編碼:
$url=urlencode("http://".$_SERVER["SERVER_NAME"].$_SERVER['REQUEST_URI']) ;