php开发

用php给mysql生成mysql数据字典,非常有用的东东

<?php
/**
 * 生成mysql数据字典
 *
 * @version $id$
 * @author niming<287384795@qq.com>
 */

//配置数据库
$dbserver   = "localhost";
$dbusername = "1234";
$dbpassword = "1234";

$database   = 'blog';

» 阅读全文

关键词: mysql数据字典

跨站请求伪造CSRF的防御实例(PHP版本)

One-Time Tokens(不同的表单包含一个不同的伪随机值)

在实现One-Time Tokens时,需要注意一点:就是“并行会话的兼容”。如果用户在一个站点上同时打开了两个不同的表单,CSRF保护措施不应该影响到他对任何表单的提 交。考虑一下如果每次表单被装入时站点生成一个伪随机值来覆盖以前的伪随机值将会发生什么情况:用户只能成功地提交他最后打开的表单,因为所有其他的表单 都含有非法的伪随机值。必须小心操作以确保CSRF保护措施不会影响选项卡式的浏览或者利用多个浏览器窗口浏览一个站点。

以下我的实现:

1).先是令牌生成函数(gen_token()):

<?php
     function gen_token() {
     //这里我是贪方便,实际上单使用Rand()得出的随机数作为令牌,也是不安全的。
    
          $token = md5(uniqid(rand(), true));
          return $token;
     }
2).然后是Session令牌生成函数(gen_stoken()):


» 阅读全文

关键词: csrf防御

thinkphp在nginx没有pathinfo的情况出现.php的URL的解决方法

thinkphp在nginx没有pathinfo的情况出现.php的文件,这个让人很是纠结。

在服务器是linux,web服务器是nginx, CGI接口是FASTCGI,就会出现这个问题

问题原因:ThinkPHP/common/runtime.php中定义IS_CGI常量的定义有问题;
错误代码:

5304678604f66.jpg - 大小: 193.49 KB - 尺寸: 806 x 301 - 点击打开新窗口浏览全图

» 阅读全文

PHP类:PHP操作mongodb数据库类,附代码和示例

公司某项业务涉及到大数据存储问题,根据前人各种总结归纳,整理出来这个PHP类:PHP操作mongodb数据库类,附代码和示例。这个PHP操作mongodb类比较简单,仅仅能用吧,呵呵~~

代码附上:

<?php
/**
 * mongodb class file
 * 用于mongodb数据库的操作
 * @author jincon
 * @package lib
 * @since 1.0
 */

» 阅读全文

监控discuz防水墙云平台返回的内容的代码


监控discuz防水墙云平台返回的内容的代码

api\manyou\Service\Client\Restful.php


搜索代码
$result = $this->_fsockopen($url, 4096, $data, '', false, $ip, 5);

在这句下面添加
writelog('debug', $url . '-' . $ip . '-' . var_export($data, true) . '-'. var_export($result));


最后结果会写在 /data/log/debug.log 里面

Discuz在hhvm环境下显示不正常,没法使用的解决办法

HipHop VM(hhvm)是Facebook推出的用来执行PHP代码的虚拟机,它是一个PHP的JIT(Just-In- Time)编译器,同时具有产生快速代码和即时编译的优点。

HHVM安装其实还好,但是在discuz在hhvm环境下显示不正常。

其实出现这个问题只是discuz使 用了在php5.5.0已经弃用了

PREG_REPLACE(http://php.net/manual/en/reference.pcre.pattern.modifiers.php#reference.pcre.pattern.modifiers.eval)。。。

使用回调函数替换就好。

下面张自然不说废话了,直接说方法,打开discuz根目录/source/function/cache下的cache_styles.php替换以下代码

» 阅读全文

关键词: hhvm , discuz

DiscuzX针对非登陆用户只允许查看贴子前50页

应用场景:

有时候我们希望针对Discuz 非登陆用户,帖子页只显示50页,超过给予提示登陆后查看,修改步骤如下:

修改文件:/source/class/helper/helper_page.php 


public static function multi($num, $perpage, $curpage, $mpurl, $maxpages = 0, 
$page = 10, $autogoto = FALSE, $simple = FALSE, $jsfunc = FALSE) {
global $_G;

//start  针对帖子页非登陆用户,50页不显示 step 1/2。
global $mod;
if($mod == 'viewthread' && !$_G['uid']){
    $maxpages = 50;
    $setmaxpages =1;
}
//end

第二处:

» 阅读全文

关键词: 贴子前50页 , discuzx

随手搞的采集某政府信息网的table表格数据

随手搞的采集某政府信息网的table表格数据,总结一句话,政府网站的太多都是table表格,会采集的非常简单,不会用技巧采集的就非常蛋疼了。。。。

» 阅读全文

关键词: table表格 , 采集