Day: May 22, 2015

兼容IE和FF:获取Referer的JS和PHP方法 及 PHP利用curl伪造IP和来路

发现一个关于浏览器兼容的问题,当用JS 执行代码 window.location.href=”http://justcoding.iteye.com” 来进行跳转的时候,Firefox 可以获取到到HTTP_REFERER页面,但是在IE中这一项为空,后来查了一些相关资料,发现在IE 中通过 window.location.href 或者是 是无法获取HTTP_REFERER, 真是搞不懂 IE 的浏览器,很多浏览器运行的很好的东西,它就是不支持,最后没有办法,只能PHP伪造来源HTTP_REFERER的方法或者用JS来伪造。 IE可以识别的 HTTP_REFERER 提交是通过click 触发的事件或者是 Form 表单提交的请求,下面是根据网上的资料总结的一个方法:… Read More

当浏览器默认禁用第三方cookie

前一阵子,我们发现高版本的Safari中默认会阻止第三方cookie,如下图所示。   问题 什么是第三方cookie呢?在访问一个网站A时,网站A算作第一方,如果网站A中引用了另一个网站X(网站X的域名与网站A的域名不同)的资源, 这时这个网站X就被认为是第三方。需要注意的是,这儿区分不同网站的标准是域名是否相同,而不是这两个网站是否由同一个公司运营。比 如,taobao.com和tmall.com被认为是两个网站,尽管它们都属于阿里集团。   在网站建设中,使用第三方资源非常常见,大多数据情况下,这并不会带来问题。不过有时候,我们可能希望能读写这个第三方域下的cookie,这时问题就来了。   比如我们有一个网站a.com,其中埋有一段JavaScript脚本,每当用户打开a.com中的页面时,这段脚本就会发送一个GET请求到x.com。这样,只需要分析x.com的日志,就可以了解a.com的访问情况。   如果只是要统计a.com的PV,那么只需要将x.com的日志中所有记录加起来就行了,但是,如果要统计UV呢?   这时就需要在x.com这个域下写一个cookie用于标识当前用户,比如叫USER_ID。当用户访问a.com的页面,也即发起到x.com的 请求时,x.com的服务器检查x.com域下是否有USER_ID这个cookie,如果有则什么也不做,如果没有,则生成一个新的USER_ID并写 入cookie。有了这个cookie之后,分析x.com的日志就可以同时得到a.com的PV与UV。整个打点过程如下图所示。 但问题是,x.com在这儿属于第三方域,在高版本的Safari浏览器中,向第三方域写cookie受到了阻止。带来的结果就是,用户每次访问 a.com时,发向x.com的请求的cookie都为空,于是x.com的服务器每次都认为这是一个新访问者,每次都生成一个新的USER_ID写回… Read More

视网膜New iPad与普通分辨率iPad页面的兼容处理

一、这是篇经验分享   就算不是果粉也应该知道,iPad2与new iPad的重大区别之一就是显示屏的分辨率。new iPad显示屏被称之为“视网膜显示屏”,其设备分辨比(之前有详细介绍,点击这里查看)是iPad2的两倍。 – iPad mini也是普通分辨比。   iPad2与new iPad同时显示一个页面,宽度都是1024像素的,那差别在什么地方呢?——就在于new iPad每个像素点实际上有4倍的普通像素点,如下示意(© smashingmagazine):   我们使用CSS设置的像素值(px)属于普通像素点,或者称之为标准像素点。   因此,一张200×200尺寸的图片,我们设置如下CSS: img… Read More

根据移动设备屏幕像素密度,给予不同分辨率的图片

在出现iphone4之前的相当长的时间内,网站开发人员和设计人员从来没有为像素苦恼过。那时候,设计人员打开photoshop,选择 “实际像素”后,看到的图片大小就是和最后真实的网站效果1:1的;对于开发人员也是如此,在css或者js里面写上1px,那么实际就是1px,在屏幕 上就是以一个硬件的像素点表示。   也不知道乔布斯是不是第一个在广泛使用的设备上使得“浏览器上声明的屏幕像素”和“屏幕硬件的实际像素”不一致的,对于iphone4,我们都知道它的硬件像素是640*960,然而我们在浏览器里面得到的声明像素确是320*480。 // iphone4、4s的safari中: alert(window.screen.width) // 320 alert(window.screen.height) // 480 alert(window.screen.availWidth) // 320 alert(window.screen.availHeight) //… Read More

3个检测浏览器User-Agent信息的网站

刚刚在收集各个移动平台浏览器的User-Agent(参见这里: 收集几个移动平台浏览器的User-Agent)的时候,遇到了这3个网站,觉得以后还是会用得到的,这里收藏一下,检测浏览器User-Agent信息的网站,如果你手里有不同的上网设备,通过这3个网站(其中之一就可以)来检测下该设备浏览器的User Agent,欢迎留言给我,我更新到 收集几个移动平台浏览器的User-Agent这篇文章里,争取收集更多的设备User Agent。 这3个检测浏览器User-Agent信息的网站为: 1. http://whatsmyuseragent.com/ 2. http://whatsmyua.com/ 3. http://www.useragentstring.com/ 如果你想是用Chrome模拟不同的设备体验网站的话, 可以看下这个文章Chrome下简洁的方法修改User Agent.   ps: 目前还没有找到升级到… Read More

Linux中的Total Video Converter——超级音视频转换软件:Winff

Total Video Converter 是瘟到死中知名的音视频转换软件,很多 Linux 用户也在寻找类似软件。 那,Linux 中有这样的软件吗? 当然有~,Winff 就是这样的软件,图形界面,操作简单。 官方网站:http://winff.org/html_new/ 项目主页:http://code.google.com/p/winff/ Ubuntu 中的安装方法: 代码: sudo add-apt-repository ppa:paul-climbing/ppa… Read More

十个免费的Web压力测试工具

两天,jnj在本站发布了《如何在低速率网络中测试 Web 应用》,那是测试网络不好的情况。而下面是十个免费的可以用来进行Web的负载/压力测试的工具,这样,你就可以知道你的服务器以及你的WEB应用能够顶得住多少的并发量,以及你的网站的性能。我相信,北京奥组委的订票网站的开发团队并不知道有这样的测试工具。   Grinder –  Grinder是一个开源的JVM负载测试框架,它通过很多负载注射器来为分布式测试提供了便利。 支持用于执行测试脚本的Jython脚本引擎HTTP测试可通过HTTP代理进行管理。根据项目网站的说法,Grinder的 主要目标用户是“理解他们所测代码的人——Grinder不仅仅是带有一组相关响应时间的‘黑盒’测试。由于测试过程可以进行编码——而不是简单地脚本 化,所以程序员能测试应用中内部的各个层次,而不仅仅是通过用户界面测试响应时间。   Pylot -Pylot是一款开源的测试web service性能和扩展性的工具,它运行HTTP 负载测试,这对容量计划,确定基准点,分析以及系统调优都很有用处。Pylot产生并发负载(HTTP Requests),检验服务器响应,以及产生带有metrics的报表。通过GUI或者shell/console来执行和监视test suites。  … Read More

javascript判断图片是否加载完成方法整理

有时候我们在前端开发工作中为了获取图片的信息,需要在图片加载完成后才可以正确的获取到图片的大小尺寸,并且执行相应的回调函数使图片产生某种显示效果。本文主要整理了几种常见的javascipt判断图片加载完成时的方法,并通过代码与实际应用相结合进行解释与说明。 onload方法 通过向img标签添加onload属性,并填入相应的函数来执行后续的javascipt代码。如下代码例子中img元素默认是不显示的,通过onload判断加载完成后再将图片显示出来。 <img class="pic1" onload="get(this)" src="..." style='display:none' /> <script type="text/javascript"> function get(ts){ ts.style.display = 'block'; //显示图片 }… Read More

网页上的摄影展:等高响应布局实现

「等高响应式布局」是什么?介绍它之前,我们先回忆一下它的近亲「等宽响应式瀑布流」。 回忆一下,Pinterest、Google+、花瓣网、美丽说等是否让你沉浸于不断往下拉体验丰富的图片阅览? 那种感觉就像逛街,让所有商品呈现在网页上,只需要往下拉鼠标就能逐个浏览,不断加载,他们简洁同时整齐,原因是他们的宽度相等,但是高度不一。   这就是所谓的「等宽响应式瀑布流」,它的特点如下: 1.响应式,适应PC端以及移动端各设备呈现不同的宽度和单列数量; 2.等宽,这样的布局十分适合瀑布流,有不断向下的阅读感; 3.没有脚的小鸟,因为内容是不断向下加载,因此页脚基本是看不到了; 这样的布局引起了一个风潮,然而把图片适应到等宽,高度等比例变化,对不考虑容器高度的浏览来说实现并不难,因此业界也大多采用了这样的布局,而且可以响应式,在不同屏幕宽度可以变化不同卡片宽度。 然而,回归正题,今天要说的和这个不同,但是相近,它就是「等高响应式布局」。   先看看效果图: 如图,并不像等宽一样简单,要在不改变图片分辨率(宽高比)同时保持等高且占满行宽度,如何实现?不妨带着问题跟我走。 1 等高响应式布局是什么? ①行内高度相等; ②行间总宽度相等; ③自适应宽度布局;… Read More

WordPress基础教学:绝对必装的JetPack外挂

Jetpack 介绍前言 这周的WordPress基础教学着实让StartPress工作室团队伤脑筋,我们一直在想该如何向大家介绍比新手更进阶一层的第二篇教学文,后来我们决定将Jetpack by WordPress.com这款强大工具外挂包推荐给大家。 为什么要将Jetpack 介绍给你们呢? 如它的名称所言,它是一款WordPress.com 官方团队打造的外挂工具包,你只需要安装这款外挂,就能拥有34 种丰富又多功能的外挂。 你可以点击上图连去WordPress 官方外挂网站下载上传安装,也可以直接在你WordPress 网站后台的外挂设定页面输入「Jetpack by wordpress.com」关键字搜寻、直接点击安装。 还不懂怎么安装外挂吗? 请先观看我们之前的教学 。… Read More

通过谷歌API验证地址是否存在 How Google’s Geocoding solves Address Validation

ajax.php 代码: $address = $_GET['address']; $xml = file_get_contents('https://maps-api-ssl.google.com/maps/api/geocode/xml?address='.urlencode($address).'&sensor=false'); $arr = xml2array($xml); $output = $arr['GeocodeResponse']['status']; 主要是利用了谷歌接口:https://maps-api-ssl.google.com/maps/api/geocode/xml?address=Frankfurstein+ring+105a,M%C3%BCnchen,de, 80000,&amp;sensor=false&amp;client=gme-kickzag&amp;signature=VF930KLrbu98sKKLqIjn4adIoTs=  (from http://blog.mgm-tp.com/2011/08/address-validation-with-geocoding/)… Read More