一些PHP写的小东西

时间:2021-05-25

一些小东西有时候可能用得上!


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();

if(!isset($_COOKIE['userid']))returnfalse;
else$userid=$_COOKIE['userid'];
if(!isset($_COOKIE['sid']))returnfalse;
else$sid=$_COOKIE['sid'];


$query="SELECT*FROMuserWHEREnickname='$userid'";
$result=$db->sql_query($query);
if($row=$db->sql_fetchrow($result)){
if($row['sid']!=$sid)returnfalse;
if($row['lastloginip']!=$ip)returnfalse;

}
elsereturnfalse;
$session=$row;
//$session['']=$row[''];
unset($row);

$islogin=true;
returntrue;
}


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()-3600;//减去一小时
$sql="deletefromvotewheretime<$deltime";//删除掉过期的数据
$db->sql_query($sql);

$sql="selectipfromvotewhereip='$ip'anduser_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;
$sql="selectp.*frompic_infop,useruwherep.user_id=u.user_idandu.birthdaybetween'$begin'and'$end'groupbyu.user_id";
$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='$nickname'oremail='$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);
?>

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章