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)
例 &(和号) 成为&
htmlspecialchars_decode() 函数把一些预定义的 HTML 实体转换为字符。
语法:htmlspecialchars_decode(string,quotestyle)
例 & 成为 &(和号)
-----------------------------------------
关于提交数据的处理
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