一些PHP写的小东西


Posted in PHP onDecember 06, 2006

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

1.得到客户端IP地址 

function getip(){ 
       if (! empty($_SERVER["HTTP_X_FORWARDED_FOR"])){ //使用代理的情况 
               $tip = split(",", $_SERVER["HTTP_X_FORWARDED_FOR"]); 
               $cip = $tip[0]; 
       } 
       else 
               $cip = $_SERVER["REMOTE_ADDR"];[ 
       return dechex(ip2long($cip)); 

2.session控制的函数 

function session_begin(){ 
       global $userid, $sid, $ip, $session, $db, $islogin; 
       $ip = getip(); 
       /* 短期而言,系统默认需要支持cookie. */ 
       if (!isset($_COOKIE['userid'])) return false; 
       else $userid = $_COOKIE['userid']; 
       if (!isset($_COOKIE['sid'])) return false; 
       else $sid = $_COOKIE['sid']; 
       /* 以上返回false意味着用户没有登陆,页面将跳转至首页(登陆页). */ 

       $query = "SELECT * FROM user WHERE nickname = '$userid'"; 
       $result = $db->sql_query($query); 
       if ($row = $db->sql_fetchrow($result)){ 
               if ($row['sid'] != $sid) return false; /* cookie传送的sid和数据库保存的不吻合 */ 
               if ($row['lastloginip'] != $ip) return false; /* IP不吻合 */ 
               /* 是否要考虑 session的过期 问题呢? */ 
       } 
       else return false; /* 没有这个userid */ 
       $session = $row; 
//        $session[''] = $row['']; 
       unset($row); 

       $islogin = true; 
       return true; 

/* bool session_end(int $userid, string $sid) */ 
function sesssion_end($userid, $sid){ 
       return true; 

3.做选美的投票程序 

<?php 
header("Refresh:0;url=./");  //一秒刷新 
?> 
<script>alert('<?php 
require_once('mysql.php'); 
require_once('functions.php'); 
$db = new sql_db('localhost','root','','selectmm'); 
$user_id = $_GET['user_id']; 
$ip = getip(); 
$deltime = time()-3600;  //减去一小时 
$sql = "delete from vote where time <$deltime"; //删除掉过期的数据 
$db->sql_query($sql); 

$sql = "select ip from vote where ip='$ip' and user_id='$user_id'"; //查看一小时内是否投过 
$linkid=$db->sql_query($sql) or die(mysql_error()); 
$count=$db->sql_affectedrows(); 
if($count) 

echo "您已经投过票了!"; 

else 

$sql = "update user set vote_count=vote_count+1 WHERE user_id='$user_id'"; 
$db->sql_query($sql); 
$count=$db->sql_affectedrows(); 
if($count) 

 echo "投票成功!"; 
    $sql = "insert into vote (`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 = new sql_db('localhost','root','','selectmm'); 
require_once('functions.php'); 
require_once('session.php'); 
session_begin(); 
require('./Libs/Smarty.class.php'); 
$smarty = new Smarty; 
$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="select p.* from pic_info p,user u where p.user_id=u.user_id and u.birthday between '$begin' and '$end' group by u.user_id"; 
$link=$db->sql_query($sql) or die(mysql_error()); 
$row = $db->sql_fetchrowset($link); 
$db->sql_freeresult(); 
$smarty->assign("pic",$row); 
$smarty->display('index.tpl.htm'); 
?> 

5.注册程序 

<? 
require('mysql.php'); 
$str=new sql_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 "<a href='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 * FROM user WHERE nickname ='$nickname' or email='$email'"; 
   $result = $str->sql_query($query)or die(mysql_error()); ; 
   if ($row = $str->sql_fetchrow($result)) 
    { echo "<script>alert("对不起,该用户已经注册")</script>"; echo "<script>location="register.php"</script>"; } 
   $password = md5($password); 
   $query = "INSERT INTO `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><a href='delete.php?nickname=' onclick="return confirm('确定删除吗?rn此操作不可恢复')"><font color=red>删除该用户</font></a></td>"; 

7.在给同事做一个文本处理,两个文档一个有7万条记录,开始用嵌套循环,php死了,后面用数组解决了问题 

<?php 
if(($fp=fopen("1.txt","a+"))===false) 
  { 
          die("打开文件失败"); 
  } 
$data1=file("old.txt") or die("打开文件失败"); 
$data2=file("sports.txt") or die("打开文件失败"); 
foreach($data1 as $data) 

$x = split("[./]",$data); 
$name = $x[count($x)-2]; 
$a[$name]['md5']=$data; 

foreach($data2 as $data) 

$x = split("[,./]",$data); 
$name = $x[count($x)-2]; 
if(isset($a[$name])) 
$a[$name]['name']=$x[0]; 

foreach($a as $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); 
?>

PHP 相关文章推荐
PHP_Flame(Version:Progress)的原代码
Oct 09 PHP
PHP MySQL应用中使用XOR运算加密算法分享
Aug 28 PHP
解析PHP 5.5 新特性
Jul 02 PHP
五款PHP代码重构工具推荐
Oct 14 PHP
C# WinForm中实现快捷键自定义设置实例
Jan 23 PHP
php类自动加载器实现方法
Jul 28 PHP
PHP中Array相关函数简介
Jul 03 PHP
PHP入门教程之字符串处理技巧总结(转换,过滤,解析,查找,截取,替换等)
Sep 11 PHP
WAF的正确bypass
Jan 05 PHP
YII2 实现多语言配置的方法分享
Jan 11 PHP
php实现自定义中奖项数和概率的抽奖函数示例
May 26 PHP
windows下的WAMP环境搭建图文教程(推荐)
Jul 27 PHP
关于时间计算的结总
Dec 06 #PHP
一段防盗连的PHP代码
Dec 06 #PHP
PHP安全配置
Dec 06 #PHP
PHP一些有意思的小区别
Dec 06 #PHP
弄了个检测传输的参数是否为数字的Function
Dec 06 #PHP
PHP4 与 MySQL 数据库操作函数详解
Dec 06 #PHP
PHP 5.0 Pear安装方法
Dec 06 #PHP
You might like
PHP 截取字符串函数整理(支持gb2312和utf-8)
2010/02/16 PHP
PHP 小心urldecode引发的SQL注入漏洞
2011/10/27 PHP
ThinkPHP实现静态缓存和动态缓存示例代码
2017/05/02 PHP
javascript实现 在光标处插入指定内容
2007/05/25 Javascript
iframe 自适应高度[在IE6 IE7 FF下测试通过]
2009/04/13 Javascript
jQuery学习笔记之jQuery的动画
2010/12/22 Javascript
基于jQuery的倒计时实现代码
2012/05/30 Javascript
jquery scrollTop方法根据滚动像素显示隐藏顶部导航条
2013/05/27 Javascript
网页下载文件期间如何防止用户对网页进行其他操作
2014/06/27 Javascript
抛弃Nginx使用nodejs做反向代理服务器
2014/07/17 NodeJs
jQuery实用函数用法总结
2014/08/29 Javascript
jQuery关键词说明插件cluetip使用指南
2015/04/21 Javascript
小心!AngularJS结合RequireJS做文件合并压缩的那些坑
2016/01/09 Javascript
全面理解闭包机制
2016/07/11 Javascript
AngularJS基础 ng-options 指令详解
2016/08/02 Javascript
jQuery中ajax错误调试分析
2016/12/01 Javascript
jQuery EasyUI ProgressBar进度条组件
2017/02/28 Javascript
React Native模块之Permissions权限申请的实例相机
2017/09/28 Javascript
vue中vee validate表单校验的几种基本使用
2018/06/25 Javascript
详解关于element el-button使用$attrs的一个注意要点
2018/11/09 Javascript
修改Python的pyxmpp2中的主循环使其提高性能
2015/04/24 Python
按日期打印Python的Tornado框架中的日志的方法
2015/05/02 Python
linux下python抓屏实现方法
2015/05/22 Python
python实现简单登陆系统
2018/10/18 Python
Django 限制访问频率的思路详解
2019/12/24 Python
python多线程实现代码(模拟银行服务操作流程)
2020/01/13 Python
Python3 hashlib密码散列算法原理详解
2020/03/30 Python
Python基于callable函数检测对象是否可被调用
2020/10/16 Python
董事长职责范文
2013/11/08 职场文书
《小蝌蚪找妈妈》教学反思
2014/02/21 职场文书
县政府办公室领导班子个人对照检查材料
2014/09/16 职场文书
镇副书记专题民主生活会对照检查材料思想汇报
2014/10/02 职场文书
中职班主任培训心得体会
2016/01/07 职场文书
golang中字符串MD5生成方式总结
2021/07/04 Golang
深入解析MySQL索引数据结构
2021/10/16 MySQL
python和C/C++混合编程之使用ctypes调用 C/C++的dll
2022/04/29 Python