一些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 相关文章推荐
自己动手做一个SQL解释器
Oct 09 PHP
WML,Apache,和 PHP 的介绍
Oct 09 PHP
笑谈配置,使用Smarty技术
Jan 04 PHP
zf框架的registry(注册表)使用示例
Mar 13 PHP
thinkphp实现like模糊查询实例
Oct 29 PHP
PHP获取服务器端信息的方法
Nov 28 PHP
对PHP PDO的一些认识小结
Jan 23 PHP
服务器上配置PHP运行环境教程
Feb 12 PHP
php实现屏蔽掉黑帽SEO的搜索关键字
Apr 15 PHP
学习php设计模式 php实现观察者模式(Observer)
Dec 09 PHP
php生成与读取excel文件
Oct 14 PHP
PHP从零开始打造自己的MVC框架之类的自动加载实现方法详解
Jun 03 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
详解:――如何将图片储存在数据库里
2006/12/05 PHP
Windows下的PHP 5.3.x安装 Zend Guard Loader教程
2014/09/06 PHP
php中namespace use用法实例分析
2016/01/22 PHP
php二维码生成以及下载实现
2017/09/28 PHP
PHP常见的序列化与反序列化操作实例分析
2019/10/28 PHP
js中的异常处理try...catch使用介绍
2013/09/21 Javascript
JQuery实现倒计时按钮具体方法
2013/11/14 Javascript
javascript学习笔记_浅谈基础语法,类型,变量
2016/09/19 Javascript
jQuery视差滚动效果网页实现方法经验总结
2016/09/29 Javascript
js实现随机数字字母验证码
2017/06/19 Javascript
webpack将js打包后的map文件详解
2018/02/22 Javascript
vue2.0 如何在hash模式下实现微信分享
2019/01/22 Javascript
JS利用prototype给类添加方法操作详解
2019/06/21 Javascript
vue导航栏部分的动态渲染实例
2019/11/01 Javascript
Python中使用 Selenium 实现网页截图实例
2014/07/18 Python
简单的Python2.7编程初学经验总结
2015/04/01 Python
python 列表转为字典的两个小方法(小结)
2019/06/28 Python
Python中断多重循环的思路总结
2019/10/04 Python
python中dict()的高级用法实现
2019/11/13 Python
Python如何计算语句执行时间
2019/11/22 Python
Python Sympy计算梯度、散度和旋度的实例
2019/12/06 Python
python之pymysql模块简单应用示例代码
2019/12/16 Python
Python基础之函数基本用法与进阶详解
2020/01/02 Python
对django 2.x版本中models.ForeignKey()外键说明介绍
2020/03/30 Python
python编写扎金花小程序的实例代码
2021/02/23 Python
CSS3 实现的加载动画
2020/12/07 HTML / CSS
借助HTML5 Canvas来绘制三角形和矩形等多边形的方法
2016/03/14 HTML / CSS
html5应用缓存_动力节点Java学院整理
2017/07/13 HTML / CSS
当x.equals(y)等于true时,x.hashCode()与y.hashCode()可以不相等,这句话对不对
2015/05/02 面试题
2014年大班保育员工作总结
2014/12/02 职场文书
军训个人总结
2015/03/03 职场文书
python 模拟在天空中放风筝的示例代码
2021/04/21 Python
pandas中DataFrame数据合并连接(merge、join、concat)
2021/05/30 Python
CSS基础详解
2021/10/16 HTML / CSS
mysql 索引的数据结构为什么要采用B+树
2022/04/26 MySQL
教你win10系统中APPCRASH事件问题解决方法
2022/07/15 数码科技