一些PHP写的小东西

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

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

(0)

相关推荐

  • 一些PHP写的小东西

    一些小东西有时候可能用得上! 1.得到客户端IP地址 function getip(){         if (! empty($_SERVER["HTTP_X_FORWARDED_FOR"])){ //使用代理的情况                 $tip = split(",", $_SERVER["HTTP_X_FORWARDED_FOR"]);                 $cip = $tip[0];         }    

  • 阿望教你用vue写扫雷小游戏

    前言 话说阿望还在大学时,某一天寝室突然停网了,于是和室友两人不约而同地打开了扫雷,比相同难度下谁更快找出全部的雷,玩得不亦乐乎,就这样,扫雷伴我们度过了断网的一周,是整整一周啊,不用上课的那种,可想而知我们是有多无聊了. 这两天临近过年了,该放假的已经放假了,不该放假的已经请假了,公交不打挤了,地铁口不堵了,公司也去了大半部分的人了,就留阿望这种不得不留下来值班的人守着空荡荡的办公室了,于是,多年前那种无所事事的断网心态再次袭来,于是,想玩扫雷的心再次蹦跶出来,于是,点开了电脑的附件,于是,发

  • 手写个小组件(组件入门)asp版

    动手写个小组件(组件入门) 这篇文章主要是为想将自己的ASP水平提高的人写的! 把ASP代码变成组件,开发者不仅是加快了ASP的速度,而且也能保护自己的代码.这篇文章写出来,也是为了给想开发组件网友上一堂入门课! 下面,我们会来编写一个非常简单的组件,重点是知道怎样开发DLL组件,而不是其复杂的代码!这些都要靠你们自己以后的努力了. 服务器端组件 首先,服务器端的组件要有别于客户端的组件.客户端的组件是通过网络传输,依靠HTML来起作用.而且只能在IE上有用.但是服务器端的组件是运行在服务器端,

  • 菜单制作学习一个小东西 原创

    提示菜单用的东西,我想学习一下,一个小东西,研究一下 大家好啊 var h,l,t,w,mX,mY,e,srcE,thediv function showMenu(){ e=window.event?window.event:e; srcE=e.srcElement?e.srcElement:e.target; if(!srcE)return; thediv=document.getElementById('menudiv') h=srcE.offsetHeight; w=srcE.offset

  • 使用Python写一个小游戏

    引言 最近python语言大火,除了在科学计算领域python有用武之地之外,在游戏.后台等方面,python也大放异彩,本篇博文将按照正规的项目开发流程,手把手教大家写个python小游戏,来感受下其中的有趣之处.本次开发的游戏叫做alien invasion. 安装pygame并创建能左右移动的飞船 安装pygame 本人电脑是windows 10.python3.6,pygame下载地址: 传送门 请自行下载对应python版本的pygame 运行以下命令 $ pip install wh

  • Python写安全小工具之TCP全连接端口扫描器

    目录 一个简单的端口扫描器 多线程版本 前言: 通过端口扫描我们可以知道目标主机都开放了哪些服务,下面通过TCP connect来实现一个TCP全连接端口扫描器. 一个简单的端口扫描器 #!/usr/bin/python3 # -*- coding: utf-8 -*- from socket import * def portScanner(host,port): try: s = socket(AF_INET,SOCK_STREAM) s.connect((host,port)) print

  • 发两个小东西,ASP/PHP 学习工具。 用JavaScript写的

    对于任何初学 ASP,PHP 或者其他语言的初学者来说,每个人都应该会有过这种经历. 把帮助手册, MSDN上看到 一个函数/对象 的示范代码,复制到自己的asp/php页面, 然后执行,修改他们来加深学习印象. 我当时也是这样做的,不过我是写了一个javascript小程序来帮助自己 上面文本框,输入代码片断,下面直接显示结果. 对输入的代码还可以加色. 方便,快捷. 我现在温习PHP的函数,还用他呢,现提供下载 以下版本只支持ie 1. asp 版本  (能高亮显示代码出错行)  点这里下载

  • 使用Python写个小监控

    1.入门 首先你得用过C/C++.java.Javascript等的一种,编程小白估计比较艰难,有一定编程经验的python小白相对简单些. 1.1 Hello World! Python安装比较简单,到官网上下载安装包,一路下一步就可以了.因为我的服务器上安装的是2.6.6,所以我也下了这个版本.话说2.x的差别不是很大,如果想用3.x,可能下面的代码直接运行不过,不过也差不多,稍微改改即可. 新建一个文件,命名为hello.py.使用python的IDLE打开hello.py,写入以下代码:

  • 微信小程序登录按钮遮罩浮层效果的实现方法

    前言 近期在写一点小东西,碰到遮罩...所以将实现的过程分享出来,供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 逻辑如下: 1:第一次登陆的时候会有一个登录按钮遮罩浮层提示去授权登录 2:在弹出的授权框里,拒绝授权按钮的时候,界面的数据没有办法加载出来,允许授权的时候,界面就能渲染从后端拿过来的数据 3:判断是否授过权(判断是第一次登录还是第n次),如果用户第一次已经登录授权,后面继续登录的时候悬浮框就不会再出现 效果如下: 代码如下: index.html <!-- 授权弹框提示 -

  • vue-cli的webpack模板项目配置文件分析

    由于最近在vue-cli生成的webpack模板项目的基础上写一个小东西,开发过程中需要改动到build和config里面一些相关的配置,所以刚好趁此机会将所有配置文件看一遍,理一理思路,也便于以后修改配置的时候不会"太折腾". 一.文件结构 本文主要分析开发(dev)和构建(build)两个过程涉及到的文件,故下面文件结构仅列出相应的内容. ├─build │ ├─build.js │ ├─check-versions.js │ ├─dev-client.js │ ├─dev-ser

随机推荐