一些PHP写的小东西
2018-09-07 13:55
一些小东西有时候可能用得上!
1.得到客户端IP地址
functiongetip(){
if(!empty($_SERVER[HTTP_X_FORWARDED_FOR])){//使用代理的情况
$tip=split(,,$_SERVER[HTTP_X_FORWARDED_FOR]);
$cip=$tip[0];
}
else
$cip=$_SERVER[REMOTE_ADDR];[
returndechex(ip2long($cip));
}
2.session控制的函数
functionsession_begin(){
global$userid,$sid,$ip,$session,$db,$islogin;
$ip=getip();
/*短期而言,系统默认需要支持cookie.*/
if(!isset($_COOKIE[userid]))returnfalse;
else$userid=$_COOKIE[userid];
if(!isset($_COOKIE[sid]))returnfalse;
else$sid=$_COOKIE[sid];
/*以上返回false意味着用户没有登陆,页面将跳转至首页(登陆页).*/
$query=SELECT*FROMuserWHEREnickname=$userid;
$result=$db->sql_query($query);
if($row=$db->sql_fetchrow($result)){
if($row[sid]!=$sid)returnfalse;/*cookie传送的sid和数据库保存的不吻合*/
if($row[lastloginip]!=$ip)returnfalse;/*IP不吻合*/
/*是否要考虑session的过期问题呢?*/
}
elsereturnfalse;/*没有这个userid*/
$session=$row;
//$session[]=$row[];
unset($row);
$islogin=true;
returntrue;
}
/*boolsession_end(int$userid,string$sid)*/
functionsesssion_end($userid,$sid){
returntrue;
}
3.做选美的投票程序
<?php
header(Refresh:0;url=./);//一秒刷新
?>
<script>alert(<?php
require_once(mysql.php);
require_once(functions.php);
$db=newsql_db(localhost,root,,selectmm);
$user_id=$_GET[user_id];
$ip=getip();
$deltime=time()0;//减去一小时
$sql=deletefromvotewheretime<$deltime;//删除掉过期的数据
$db->sql_query($sql);
$sql=selectipfromvotewhereip=$ipanduser_id=$user_id;//查看一小时内是否投过
$linkid=$db->sql_query($sql)ordie(mysql_error());
$count=$db->sql_affectedrows();
if($count)
{
echo您已经投过票了!;
}
else
{
$sql=updateusersetvote_count=vote_count+1WHEREuser_id=$user_id;
$db->sql_query($sql);
$count=$db->sql_affectedrows();
if($count)
{
echo投票成功!;
$sql=insertintovote(`ip`,`user_id`,`time`)values($ip,$user_id,.time().);//投票成功就插入一条记录。
$db->sql_query($sql);
}
else
{
echo投票失败!;
}
}
?>);
//history.back();
</script>
4.smarty的搜索程序
<?php
require_once(mysql.php);
$db=newsql_db(localhost,root,,selectmm);
require_once(functions.php);
require_once(session.php);
session_begin();
require(./Libs/Smarty.class.php);
$smarty=newSmarty;
$title=首页;
$smarty->assign(islogin,$islogin);
$smarty->assign(title,$title);
$age=$_GET[age];
$arr=explode(,,$age);
$y=date(Y);
$md=date(-m-d);
$begin=($y-$arr[1]).$md;
$end=($y-$arr[0]).$md;
$link=$db->sql_query($sql)ordie(mysql_error());
$row=$db->sql_fetchrowset($link);
$db->sql_freeresult();
$smarty->assign(pic,$row);
$smarty->display(index.tpl.htm);
?>
5.注册程序
<?
require(mysql.php);
$str=newsql_db(localhost,root,,selectmm);
$METHOD=$_POST;
if(isset($METHOD[nickname])&&$METHOD[nickname]!=)$nickname=$METHOD[nickname];
else{echo<script>alert(用户昵称不能为空.)</script>;echo<script>location=register.php</script>;}
if(isset($METHOD[password])&&strlen($METHOD[password])>=6)$password=$METHOD[password];
else{echo<script>alert(密码至少6位)</script>;echo<ahref=javascript:history.go(-2);>;}
$password2=$METHOD[password2];
if($password!=$password2)
{echo<script>alert(两次输入密码不一致)</script>;echo<script>location=register.php</script>;}
if(isset($METHOD[name])&&$METHOD[name]!=)$name=$METHOD[name];
else{echo<script>alert(用户名不能为空.)</script>;echo<script>location=register.php</script>;}
$birthday=$METHOD[Year].$METHOD[Month].$METHOD[Day];
$stature=$METHOD[stature];
$astrology=$METHOD[astrology];
$bloodtype=$METHOD[bloodtype];
$goodat=$METHOD[goodat];
$work=$METHOD[work];
$educate=$METHOD[educate];
$homeplace=$METHOD[homeplace];
$address=$METHOD[address];
$tel=$METHOD[tel];
$qq=$METHOD[qq];
if(isset($METHOD[email])&&$METHOD[email]!=)$email=$METHOD[email];
else{echo<script>alert(Email不能为空)</script>;echo<script>location=register.php</script>;}
if(!eregi(^[0-9a-z.-_]+@[0-9a-z.]+.[a-z]$,$email)){echo<script>alert(电子邮件格式不合法)</script>;echo<script>location=register.php</script>;}
$dian=$METHOD[dian];
if(isset($METHOD[myself])&&$METHOD[myself]!=)$myself=$METHOD[myself];
else{echo<script>alert(用.....不能为空)</script>;echo<script>location=register.php</script>;}
if(isset($METHOD[enounce])&&$METHOD[enounce]!=)$enounce=$METHOD[enounce];
else{echo<script>alert(.....不能为空)</script>;echo<script>location=register.php</script>;}
$query=SELECT*FROMuserWHEREnickname=$nicknameoremail=$email;
$result=$str->sql_query($query)ordie(mysql_error());;
if($row=$str->sql_fetchrow($result))
{echo<script>alert(对不起,该用户已经注册)</script>;echo<script>location=register.php</script>;}
$password=md5($password);
$query=INSERTINTO`user`(`nickname`,`password`,`name`,`birthday`,`astrology`,`bloodtype`,`stature`,`goodat`,`work`,`educate`,`homeplace`,`address`,`tel`,`email`,`qq`,`dian`,`myself`,`enounce`)VALUES($nickname,$password,$name,$birthday,$astrology,$bloodtype,$stature,$goodat,$work,$educate,$homeplace,$address,$tel,$email,$qq,$dian,$myself,$enounce);
if($str->sql_query($query))
$str->sql_close();
echo<script>alert(恭喜你,注册成功)</script>;
echo<script>location=login.php</script>;
?>
6.提交参数JS控制
echo<td><ahref=delete.php?nickname=onclick=returnconfirm(确定删除吗?rn此操作不可恢复)><fontcolor=red>删除该用户</font></a></td>;
7.在给同事做一个文本处理,两个文档一个有7万条记录,开始用嵌套循环,php死了,后面用数组解决了问题
<?php
if(($fp=fopen(1.txt,a+))===false)
{
die(打开文件失败);
}
$data1=file(old.txt)ordie(打开文件失败);
$data2=file(sports.txt)ordie(打开文件失败);
foreach($data1as$data)
{
$x=split([./],$data);
$name=$x[count($x)-2];
$a[$name][md5]=$data;
}
foreach($data2as$data)
{
$x=split([,./],$data);
$name=$x[count($x)-2];
if(isset($a[$name]))
$a[$name][name]=$x[0];
}
foreach($aas$value)
{
$str=$value[md5].,.$value[name];
fwrite($fp,$str);
echo$value[md5].,.$value[name].<br>;
fwrite($fp,$str);
}
?>
8.验证码
<?php
/*
*Filename:authimg.php
*/
Header(Content-type:image/PNG);
session_start();
$auth_num=;
/*创建一个基于调色板的图像*/
$im=imagecreate(63,20);
/*初始化一个随机种子*/
srand((double)microtime()*1000000);
$auth_num_k=md5(rand(0,9999));
$auth_num=substr($auth_num_k,17,5);
/*赋值会话变量*/
$_SESSION[authnum]=$auth_num;
$black=ImageColorAllocate($im,0,0,0);
$white=ImageColorAllocate($im,255,255,255);
$gray=ImageColorAllocate($im,200,200,200);
ImageFill($im,63,20,$black);
imagestring($im,5,10,3,$auth_num,$gray);
for($i=0;$i<200;$i++){
$randcolor=ImageColorallocate($im,rand(0,255),rand(0,255),rand(0,255));
imagesetpixel($im,rand()%70,rand()%30,$randcolor);
}
ImagePNG($im);
ImageDestroy($im);
?>