PHP生成随机字符串

PHP生成随机字符串的函数,下面是我在网上找到的2个关于PHP随机字符串的函数,希望大家喜欢。
第一个实例
< ?
function genRandomString($len)
{
$chars = array(
"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k",
"l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v",
"w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G",
"H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R",
"S", "T", "U", "V", "W", "X", "Y", "Z", "0", "1", "2",
"3", "4", "5", "6", "7", "8", "9"
);
$charsLen = count($chars) - 1;
shuffle($chars); // 将数组打乱
$output = "";
for ($i=0; $i<$len; $i++)
{
$output .= $chars[mt_rand(0, $charsLen)];
}
return $output;
}

$str = genRandomString(25);
$str .= "
“;
$str .= genRandomString(25);
$str .= “
“;
$str .= genRandomString(25);
echo $str;
?>

第二个示例
/* Generate Password
* Length : 8
*/
$str = "0123456789abcdefghijklmnopqrstuvwxyz"; // 输出字符集
$n = 8; // 输出串长度
$len = strlen($str)-1;
for($j=0 ; $j<200 ; $j++){
for($i=0 ; $i<$n; $i++){
$s .= $str[rand(0,$len)];
}
echo $s . "
“;
$s = “”;
}

?>

标签Tags:, , , ,

PHP安全之数据过滤

在指南的开始,我们说过数据过滤在任何语言、任何平台上都是WEB应用安全的基石。这包含检验输入到应用的数据以及从应用输出的数据,而一个好的软件设计可以帮助开发人员做到:

确保数据过滤无法被绕过,确保不合法的信息不会影响合法的信息,并且识别数据的来源。

关于如何确保数据过滤无法被绕过有各种各样的观点,而其中的两种观点比其他更加通用并可提供更高级别的保障。
(更多…)

标签Tags:, , , , , , , , , , , , , , , , , , , , , , ,

PHP代码安全点滴

我们来看看有那几点是需要注意的。

初始化你的变量
我们看下面的代码:
if ($admin)
{
echo ‘登陆成功!’;
(‘admin.’);
}
else
{
echo ‘你不是管理员,无法进行管理!’;
}
我们看上面的代码好像是能正常运行,没有问题,那么假如我提交一个非法的参数过去,那么效果会如何呢?比如我们的这个页是 http://www.traget.com/login.php,那么我们提交:http://www.target.com/login.php?admin=1,呵呵,你想一想,我们是不是直接就是管理员,可以直接进行管理了?
当然,可能你会觉得不会犯这么简单错的错误,可最近暴出来的phpwind 1.3.6论坛漏洞,导致能够直接拿到管理员权限,就是因为有个$skin变量没有初始化,导致了后面一系列问题。 (更多…)

标签Tags:, , ,

PHP的三点精华介绍

我发现很多的PHP程序员,尤其是学习还不是很久的,都不知道PHP的精华所在。Perl当年如何在商界出名?其强大的正则表达式。而PHP呢?他是一门从Unix下发展起来的语言,当然也就继承了Perl的很多特点,同时C的优点都有。快速、简洁、明了,尤其是C程序员,PHP是至爱,我就是深爱着“”(都忘了女友了:))。这里,我想来写一篇PHP的变量、数组应用技巧和PHP的正则表达式、PHP的模板应用,以后有时间再写PHP与COM、PHP与XML的完全结合。 
(更多…)

标签Tags:, , ,

PHP封装常用Javascript为JS类以便快速调用

<?php
# $Id: js.class.php,v 0.1 p $

// 禁止直接访问该页面
if (basename($HTTP__VARS['PHP_SELF']) == "js.class.php") {
     header("HTTP/1.0 404 Not Found");
}

# Purpose 封装了一些常用的Javascript代码,以便在PHP中快速调用

class JS{
     function JS(){}

     #返回上页
     # @param $step 返回的层数 默认为1
     function Back($step = -1){
         $msg = "history.go(".$step.");";
         JS::_Write($msg);
         JS::FreeResource();
         exit;
     }

    # 弹出警告的窗口
    # @param $msg 警告信息
     function Alert($msg){
         $msg = "alert(\"".$msg."\");";
         JS::_Write($msg);
     }

    # 写js
    # @param $msg
     function _Write($msg) {
         echo "<script language=\"\">\n";
         echo $msg;
         echo "\n</SCRIPT>";
     }

     # 刷新当前页
     function Reload(){
         $msg = "location.reload();";
         JS::FreeResource();
         JS::_Write($msg);
         exit;
     }

     #刷新弹出父页
     function ReloadOpener(){
         $msg = "if (opener)     opener.location.reload();";
         JS::_Write($msg);
     }

     #跳转到url
     #@param $ 目标页
     function Goto($url){
         $msg = "location.href = ‘$url’;";
         JS::FreeResource();
         JS::_Write($msg);
         exit;
     }

     #关闭窗口
     function Close(){
         $msg = "window.close()";
         JS::FreeResource();
         JS::_Write($msg);
         exit;
     }

     #提交表单
     #@param $frm 表单名
     function Submit($frm){
         $msg = $frm.".submit();";
         JS::_Write($msg);
     }

    #关闭数据库连接
    function FreeResource(){
         // 数据库连接标志
         global $conn;
         if (is_resource($conn))
             @_close($conn);
     }
}
?>

标签Tags:, , , , , , , , , , , , , , , , , , , ,

mysql优化及全文搜索

my.cnf文件常见优化模块
[mysqld]
port = 3306
-id = 1
socket = /tmp/mysql.sock

# 避免MySQL的外部锁定,减少出错几率增强稳定性。
skip-locking

# 禁止MySQL对外部连接进行DNS解析
skip-name-resolve

# 指定MySQL可能的连接数量
back_log = 256
(更多…)

标签Tags:, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

eAccelerator与memcache的区别与用途

eAccelerator和memcache,是目前较为主流的两个可使用在PHP之中的缓存加速工具.

eAccelerator专门为PHP开发,而memcache不仅仅用在PHP之中,其他所有的语言都可以使用.

 eAccelerator的主要功能:
   1. 缓存PHP文件的执行代码:在被缓存的代码再次被调用时,将直接从内存读取,从而在很大程度了PHP运行的速度.
   2. 提供了共享内存操作函数:用户可以将自己的常见非资源对像,保存到内存之中,并可以随时读取出来.

 memcache的主要功能:
 提供共享内存操作函数,可以保存和读取数据

 两者的共同点:
 共同点:都提供了共享内存操作函数,可以用来保存和读取自己的数据

 两者的区别:
 eAccelerator作为PHP的扩展库存在,那么仅在PHP运行时,可以操作和读写共享内存,一般情况,只能由操作共享内存的程序自己调用.
 同时,eAccelerator可以缓存PHP程序的执行代码,提升程序的调入和执行速度.
 memcache主要作为一个共享内存服务器,其PHP扩展库仅仅作为PHP到memcache的连接库存在,类似MySQL扩展库.因而,memcache可以完全脱离PHP,其共享的数据,可以被不同的程序调用.

 根据两者的不同,我们将他们使用在真真需要的地方:
 eAccelerator主要用于单机PHP提速,缓存中间数据.对于实时性高,但数据操作量小的情况下,非常实用.
 memcache用于分布式或者集群系统,多台服务器可以共享数据.对于实时性高,同时数据操作量大的情况下,非常实用.

标签Tags:, , , , , , , , , , , , , ,

nginx的rewrite规则

正则表达式匹配,其中:

* ~ 为区分大小写匹配
* ~* 为不区分大小写匹配
* !~和!~*分别为区分大小写不匹配及不区分大小写不匹配
文件及目录匹配,其中:

* -f和!-f用来判断是否存在文件
* -d和!-d用来判断是否存在目录
* -e和!-e用来判断是否存在文件或目录
* -x和!-x用来判断文件是否可执行
flag标记有:

* last 相当于Apache里的[L]标记,表示完成rewrite
* break 终止匹配, 不再匹配后面的规则
* redirect 返回302临时重定向 地址栏会显示跳转后的地址
* permanent 返回301永久重定向 地址栏会显示跳转后的地址
一些可用的全局变量有,可以用做条件判断(待补全) (更多…)

标签Tags:, , , , , , , , , , , , , , , , , , , , , , , , , , ,

PHP中的Memcache函数库(Memcache Functions)

/usr/local/bin/memcached -d -m 10 -u root -l 127.0.0.1 -p 11211 -c 256 -P /tmp/memcached.pid
memcached 的服务正式启动

Memcache::add — 添加一个值,如果已经存在,则返回false
Memcache::addServer — 添加一个可供使用的服务器地址
Memcache::close — 关闭一个Memcache对象
Memcache::connect — 创建一个Memcache对象
memcache_debug — 控制调试功能
Memcache::decrement — 对保存的某个key中的值进行减法操作
Memcache::delete — 删除一个key值
Memcache::flush — 清除所有缓存的数据
Memcache::get — 获取一个key值
Memcache::getExtendedStats — 获取进程池中所有进程的运行系统统计
Memcache::getServerStatus — 获取运行服务器的参数
Memcache::getStats — 返回服务器的一些运行统计信息
Memcache::getVersion — 返回运行的Memcache的版本信息
Memcache::increment — 对保存的某个key中的值进行加法操作
Memcache::pconnect — 创建一个Memcache的持久连接对象
Memcache::replace — R对一个已有的key进行覆写操作
Memcache::set — 添加一个值,如果已经存在,则覆写
Memcache::setCompressThreshold — 对大于某一大小的数据进行压缩
Memcache::setServerParams — 在运行时修改服务器的参数 (更多…)

标签Tags:, , , , , , , , , , , , , , , , , , , ,

URLSEO patchs for PHPOK3.0 simple

作者: 江小邪      [主页]
演示: 点击查看
适用版本: 3.0 Simple
添加日期: 2008-11-16 20:01

phpok基于php自身的伪静态补丁。提供形如下面演示地址的形式的链接。有bugs请跟评论,谢谢~

1、请先删除 data/lock. 文件
2、 压缩包内文件覆盖 phpok目录下的文件
3、运行 http://yoursite/setup.php 进行参数设置。注意务必正确设置phpok安装目录,最后以”/”结束
4、完成后请删除 setup.php
5、程序在phpok 3.0 Simple 下测试成功。
注意:打此补丁前请注意备份,否则所造成后果概不负责。

演示地址:http://phpok3.5bay.cn/html.php/home.html

下载地址:http://mydoc.5bay.cn/phpok3/UrlSeo_patchs_for_phpok3.0S.rar

标签Tags:, , , , , , , , , , , , , ,