一些总结

php表单验证终极版
存数据时

inject_check_all(addslashes(htmlspecialchars(trim($_post['username']))));

 过滤非法关键字  给特殊字符加/   编辑HTML代码  去空格

读取显示的时候

$Content=htmlspecialchars_decode($row['cont'])
if(get_magic_quotes_gpc()){
 $Content=stripslashes($Content); 
}
echo $Content

 

------------------------------------
mysql防注入

mysql_real_escape_string


$user = mysql_real_escape_string($user);
$pwd = mysql_real_escape_string($pwd);

$sql = "SELECT * FROM users WHERE user='" . $user . "' AND password='" . $pwd . "'"


-------------------------------------------
HTML:让表单 文本框 只读,不可编辑的方法

方法1: onfocus=this.blur()
<input type="text" name="input1" value="中国" onfocus=this.blur()> 

方法2:readonly
<input type="text" name="input1" value="中国" readonly> 
<input type="text" name="input1" value="中国" readonly="true"> 

方法3: disabled
<input type="text" name="input1" value="中国" disabled> 

 

-------------------------------------------
隐藏域提交

<input type="hidden" name="id" value="<?php echo $row['pid'] ?>" />

 

-------------------------------------------
php中textarea文本换行提交到数据库代码

写库
$pcont = str_replace("\r\n","<br />",$_POST['pcont']);
读库
<?php echo $pcont=str_replace("<br />","\r\n",$row['pcont']); ?>


-------------------------------------------
返回上一页并刷新页面传递

if ($_SESSION['refresh_flage']){
 echo "<script language='javascript'>location.reload();</script>";
 $_SESSION['refresh_flage']=false;
}

if($result_d=$db->query($delsql)){
 $_SESSION['refresh_flage'] = true;
 echo "<script LANGUAGE='javascript'>alert('反审核成功!');history.go(-1);</script>";
 }else{
 echo "<script LANGUAGE='javascript'>alert('反审核失败!请返回重新操作。');history.go(-1);</script>";
 }

 

----------------------------------------
htmlspecialchars() 函数把一些预定义的字符转换为 HTML 实体。
语法为:htmlspecialchars(string,quotestyle,character-set)
例 &(和号) 成为&amp;

htmlspecialchars_decode() 函数把一些预定义的 HTML 实体转换为字符。
语法:htmlspecialchars_decode(string,quotestyle)
例 &amp; 成为 &(和号)

-----------------------------------------
关于提交数据的处理

addslashes()加个\,stripslashes()去个\

简单说:
不管magic_quotes_gpc是On还是Off,咱添加数据时都用addslashes(),

显示数据的时候
当On时,必须使用stripslashes(),Off时则不能用stripslashes()。

最后举例:
//提交数据,或者变量准备:
$Content=addslashes("这里面是数据,不管有没单引号或者还是变量");

//开始显示数据
$Content="从数据库读取的数据";
if(get_magic_quotes_gpc()){ $Content=stripslashes($Content); }
echo $Content


-----------------------------------------

一个小时表示为UNIX时间戳格式为:3600秒;一天表示为UNIX时间戳为86400秒,闰秒不计算。

-----------------------------------------

php 表单防刷新

提交页

<?php
session_start();                //根据当前SESSION生成随机数
$myrefurbish = mt_rand(0,1000000);
$_SESSION['myrefurbish'] = $myrefurbish;      //将此随机数暂存入到session
?>
表单加个隐藏域
<input type="hidden" name="originator" value="<?php echo $myrefurbish;?>">

接收页
<?php
session_start();
if(isset($_POST['originator'])) {
    if($_POST['originator'] != $_SESSION['myrefurbish']){
 echo "请不要刷新本页面或重复提交表单";        
    }else{
        unset($_SESSION["myrefurbish"]);              //将其清除掉此时再按F5则无效
    }
}
?>


-----------------------------------------
删除两个关联表的各一行
delete t1,t2 from sh_sale as t1 inner join geren as t2 on t1.ssid = t2.grform where t1.ssid=15

 

-----------------------------------------
遍历数据  进行处理后 存入新数组  带上原来的下标

$myrow=array();
 foreach($row as $key => $val){
 $myrow_temp=htmlspecialchars_decode($val);
 if(get_magic_quotes_gpc()){
  $myrow_temp=stripslashes($myrow_temp); 
 }
 $myrow[$key]=$myrow_temp;
}

---------------------------------
文本框显示提示文件 

<input name="searchkey" type="text" id="searchkey" value="<?php echo $searchkey_value ?>" size="14" class='keyinput'onfocus="cls()" onblur="res()" />
<script language="javascript">
function cls(){ 
with(event.srcElement) 
if(value==defaultValue) value="" 
} 
function res(){ 
with(event.srcElement) 
if(value=="") value=defaultValue 
} 
</script>

 

explode -- 使用一个字符串分割另一个字符串
此函数返回由字符串组成的数组,每个元素都是 string 的一个子串,它们被字符串 separator 作为边界点分割出来。如果设置了 limit 参数,则返回的数组包含最多 limit 个元素,而最后那个元素将包含 string 的剩余部分。
explode ( string separator, string string [, int limit] )


时间戳转 正常显示
date("Y-m-d h:i:s".$row['sadddate']


取出文章里的图片地址

preg_match_all("/<img.*src\s*=\s*[\"|\']?\s*([^>\"\'\s]*)/i",str_ireplace("\\","",$content),$arr);
$myimg=$arr[1][0];

----------------------------------------------------------------

忘记mysql root密码
我的环境是winxp / win2003 + mysql5,均成功了!希望对存在困扰的朋友有所帮助。

操作命令列表:

bin>mysqld-nt.exe --skip-grant-tables &
bin>mysql -u root
mysql> use mysql;
mysql> update user set password=password('新密码') where user='root';
mysql> flush privileges;
mysql> quit
bin>mysqladmin-u root -p shutdown


 

你可能感兴趣的:(一些总结)