建站极客
网络编程 PHP编程 正文
一些PHP写的小东西
所属分类:
网络编程 / PHP编程
阅读数:
815
收藏 0
赞 0
分享
一些小东西有时候可能用得上! 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); ?>