最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

php表單提交程序的安全使用方法第1/2頁(yè)

 更新時(shí)間:2008年07月10日 23:41:00   作者:  
是對(duì)一個(gè)接收自由提交表單數(shù)據(jù)的文件進(jìn)行安全性分析,希望對(duì)各位有幫助。首先說(shuō)明一下,代碼中的error()和succeed()是我自定義的函數(shù)
用于顯示錯(cuò)誤信息和成功信息,其實(shí)也可以直接echo出錯(cuò)誤信息,這里我只是想我的出錯(cuò)信息頁(yè)面漂亮點(diǎn),定義了一個(gè)頁(yè)面輸出的函數(shù)罷了。
復(fù)制代碼 代碼如下:

<?php
// savecomment.php// 大家先不要看注釋,看完本文后,再回過(guò)頭來(lái)看
require ("config.php");
mysql_connect($servername,$dbusername,$dbpassword) or die ("數(shù)據(jù)庫(kù)連接失敗");
$name=$_POST['name'];
$content=$_POST['content'];
$blogid=$_POST['blogid'];
$datearray=getdate(time());
$date=date("Y-m-d h:i:s",$datearray[0]);
if (!empty($name) && !empty($content)){               
//用empty函數(shù)判斷表單非空的話則往下。        
if(strlen($name) > 20){         
//通過(guò)非空判斷則開(kāi)始判斷$name的長(zhǎng)度。        
error(“名字超過(guò)20個(gè)字節(jié)(20個(gè)英文或10個(gè)漢字)<br>”);      
}        
f(!is_numeric($_POST['blogid'])){               
error(“隱藏?cái)?shù)據(jù)被非法修改過(guò),請(qǐng)返回<br>”);
        }        
//由于$blogid待會(huì)是要放進(jìn)select的,此變量是用來(lái)標(biāo)示評(píng)論是屬于哪篇文章,它是int類型,雖說(shuō)是隱藏變量,但攻擊者也是可以在本地修改遠(yuǎn)程提交的,所以我們?cè)诜胚M(jìn)select之前需要檢查類型。        
$blogsql = "Select * FROM $comment_table Where blogid=$blogid"        
$blogresult = mysql_db_query($dbname, $blogsql);        
$blog = mysql_fetch_array($blogresult);        
if(strlen($name) == strlen($blog[name]) && strlen($content) == strlen($blog[content])){         
//查詢數(shù)據(jù)庫(kù)的兩個(gè)字段的長(zhǎng)度,因?yàn)槊珠L(zhǎng)度可能相同,但兩個(gè)都相同正常情況下出現(xiàn)的幾率就相當(dāng)小了,所以用&&同時(shí)判斷。      
error(“你欲提交的內(nèi)容評(píng)論里已存在,請(qǐng)返回<br>”);      
}        
//下面就開(kāi)始判斷時(shí)間間隔。更詳細(xì)的說(shuō)明請(qǐng)看文章后面內(nèi)容。        
session_start();         
if(session_is_registered("time") && time()-$_SESSION['time']<60*2){         error(“對(duì)不起,你兩次提交的時(shí)間間隔還不到2分鐘<br>”);        
} else {        
$sql="Insert INTO $comment_table(date,name,content,blogid)        VALUES('$date','$name','$content','$blogid')"      
mysql_db_query($dbname,$sql);      
mysql_close();      
$time=time();        
session_register("time");        
succeed(“評(píng)論提交成功<br>”);   
     }}      
//結(jié)束非空的判斷
error(“你沒(méi)有填寫(xiě)完所有表單<br>”);
?>

上面是一個(gè)記錄評(píng)論數(shù)據(jù)的文件。表單如下:
復(fù)制代碼 代碼如下:

<form action="savecomment.php" method="POST">
<input type="hidden" name="blogid" value="<?=$row[blogid]?>">
您的名字:<input name="name" type="text" size="20" maxlength="100">
評(píng)論內(nèi)容:<textarea name="content" cols="60" rows="8"></textarea>
<input type="submit" name="Submit" value="提交"></form>

相關(guān)文章

最新評(píng)論

东阿县| 铁力市| 平乐县| 天全县| 新宾| 太康县| 宝坻区| 呼玛县| 南京市| 文昌市| 台东市| 全州县| 古浪县| 铁岭县| 抚远县| 绥滨县| 成都市| 龙陵县| 亚东县| 区。| 宁城县| 通州市| 塘沽区| 钟山县| 望谟县| 遂宁市| 乐业县| 临邑县| 沁水县| 永靖县| 社旗县| 连城县| 灌云县| 广河县| 枝江市| 光泽县| 蒲城县| 大丰市| 新乡市| 罗定市| 榕江县|