phpStudy环境创建多个站点,绑定域名图解
代码如下 | 复制代码 |
注:本文解说的是 phpStudy 完整版的,其他版本可能行不通或不一样。
|
比如说我http://www.111cn.net /xx.php 这个文件我不想让别人直接从浏览器输入地址访问
但是如果从任何网站连接http://www.111cn.net /xx.php过来就可以访问
本机建立连接也无法访问跳转到另外的地址
1.在xx.php文件头部写上以下代码就可以了
$fromurl="http://www.111cn.net /"; //跳转往这个地址。
if( $_SERVER['HTTP_REFERER'] == "" )
{
header("Location:".$fromurl); exit;
}
这样只需要简单为造来源就可以了,我们如果真要做到,可以如下操作
2. 在程序中定义一个标识变量
define('IN_SYS', TRUE);
3. 在config.php中获取这变量
if(!defined('IN_SYS')) {
exit('禁止访问');
}
后面的两种方法是我们在很多cms中碰到的哦。
下面整理了两个用来计算用户发内容的时间,这里以分钟超,然后就是天数了,两个例子中,例子1只以计算昨天然后就是直接显示日期了,而后一个例子可以计算多少天前,并且文章最后对时区进行了介绍,告诉你在设置时间前一定要把php.ini时区设置好才行。例子,
多长时间前的时间函数,论坛,博客常用
代码如下 | 复制代码 |
function timeFromNow($dateline) { echo timeFromNow(strtotime("2012-07-07 14:15:13")); //昨天 14:15 |
注:这里没有考虑到时区。
后来在网上看到一段代码
代码如下 | 复制代码 |
function time_tran($the_time){ $now_time = date("Y-m-d H:i:s",time()+8*60*60); $now_time = strtotime($now_time); $show_time = strtotime($the_time); $dur = $now_time - $show_time; if($dur < 0){ return $the_time; }else{ if($dur < 60){ return $dur.'秒前'; }else{ if($dur < 3600){ return floor($dur/60).'分钟前'; }else{ if($dur < 86400){ return floor($dur/3600).'小时前'; }else{ if($dur < 259200){//3天内 return floor($dur/86400).'天前'; }else{ return $the_time; } } } |
最后补充时区
在 php.ini 中,默认是 date.timezone = UTC。修改为中国时区,修改为 date.timezone = PRC。如果直接写 GMT 格式的,是 date.timezone = Etc/GMT+8。
另外,也可以在 PHP 页面头中设置。
date_default_timezone_set('PRC');
测试:
echo date('Y-m-d H:i:s');
1.我错误的做法分析
//下面增加错误页面提交给百度
代码如下 | 复制代码 |
$hand = fopen("$path/bad_url.txt","a"); fwrite($hand,"\r".'http://www.111cn.net'.$rs['你的地址']); fclose($hand); |
结果发现输出的是
http://www.111cn.net/database/mysql/57520.htm http://www.111cn.net/wy/js-ajax/57519.htm
这种连续了并不是我想要的
http://www.111cn.net/database/mysql/57520.htm
http://www.111cn.net/wy/js-ajax/57519.htm
这个我之前没想就直接使用了像ascii码的chr(13)或chr(32) 这两个我处理过htm表单的回车与换行了,是可以了,测试之后还是不行,于时只有上百度了。
代码如下 | 复制代码 |
<?php $stream = fopen("robots.txt", "w+"); fwrite($stream, "你换行了吗?\r\n我已经换行了!"); ?> |
注意:代码里面不要用单引号,我就是错在这步上如果用单引号输出的将是User-agent: *\r\nDisallow: / 因为PHP里面的单引号是不对内容里面的东西进行替换的所以用双引号,因为双引号PHP是检查里面的东西的
好几现再删除之后就可以了,是我们想要的结果
总结其实这个\r\n小编以前试成了\n\r好像也不行了,只是基础知识或很久不用忘记了哈
本站原创:转载注明来源http://www.111cn.net
下文来看看php session 同ip不同端口的多个网站session冲突的解决办法,希望文章能帮助到大家。发现原因:
在局域网内使用IP加端口的访问方式搭了两个相同程序的站,结果发现用户在一个站下登录后,在另一个站也同时登录了,在一个退出后,另一个站也同时退出了。看了下程序发现两个站都是使用纯session方式记录登录状态,Cookie中只保存有PHPSESSID这个数据,而且由于使用的IP加端口形式,发现他们两个站的Cookie作用域是相同的,都是属于该服务器IP,这也就是导致这个问题的原因了。
解决方法:
/*————————————————-以下是废话————————————————-*/
1.把程序改为使用cookie记录使用的,两个站使用不同的cookie前后缀? 还是算了,懒的改。
2.由于服务器上有DNS服务,给这两个站绑定两个不同的域名,然后给局域网内的所有用户修改DNS地址?我去,那么多台电脑,只能我一个个去改,也不符合我们这种技术?诺姆绺癜 ! 而且还是懒。。。算了。
3.给服务器增加一个IP,给两个站绑定到不同的IP上去,局域网那么多的IP,闲着也是闲。方法可以行,试着弄了下又发现问题了:直接在本地连接中给这个网卡加一个IP,发现在不同的网关中,会提示MAC地址冲突。由于不太懂网络搭建,想添加一个虚拟网卡, 给虚拟网卡分配一个IP不就行了?两个网卡两个MAC应该没问题了吧,试了下发现虚拟的东西只能在本台计算机上使用。其它计算机是ping不通无法使用的。。 虽然后来又发现该服务器有两个物理网卡,只是第二个网卡没线插了也没权限去机房搞网线插。。还是算了。
4.最后还是通过程序上实现了。。。
/*————————————————-以上是废话————————————————-*/
在程序的common文件或是其它公用文件中加入一句php代码,如下:
ini_set(‘session.name’, ‘PHPSESSID_RS’);
当然 第二个参数就是session在保存到cookie时使用的名字,你可以自己设置自己喜欢的。。。
就是因为所有程序使用的session名都是在php.ini中设置的默认名称PHPSESSID, 所以 如果同域(同IP不同端口)下的网站之间使用session时会出现共用冲突情况。现在两套程序使用不同的session.name来保存sessionid,所以就不会产生session的冲突问题了。
问题解决!
PS:马蛋, 我的键盘又有两个键坏了。。问一句,为什么键盘会出现有的键按了没反应,即使在安全模式(顿号)PE系统中,而且该现象会发展,发展到这个键所在的一列都会挨个没反应,然后发展下一列。。最后发展成抛弃键盘直接使用虚拟桌面键盘的地步。。。
补充一篇:java解决办法
一个服务器上搭建了多个tomcat或者weblogic,端口不一样,同时启动访问时session丢失。如:A,B两个服务,在浏览器中登录访问A后,当前打开的浏览器上在开一个选项卡访问B服务后,回过来点击访问A时session丢失,需要重新登录A才可以访问。经过资料查找,发现问题是因为:IP相同认为是同一个域,接收了B的set-cookie指令,把对应的cookie内容覆盖了,其中包括jsessionid,造成A的session丢失。 如果IP不同,则不会发生这个问题。IP相同的两个session对应的cookie是一样的,而不幸的是sessionID就保存在cookie中,这样先访问A,再访问B的时候,B的sessionid会覆盖A的sessionid。这个事情没办法解决,所以你不要搞两个端口,最好是搞两个IP。原来都是cookie惹的祸,它不会区分端口,造成这多个站点不断的后来的覆盖前面的,从而造成session的丢失。
解决方法:
方法1:将不同的多个应用服务在不同的虚拟主机中,或者映射不同的IP进行部署。
方法2:对应tomcat服务处理方式:修改coocie的名称保证cookie不重复,即jsessionid的不重称,保证ip相同下sessioncookiename域名不同。
1、tomcat5修改方法
在启动项中增加org.apache.catalina.SESSION_COOKIE_NAME参数
linux
JAVA_OPTS=’-Dorg.apache.catalina.SESSION_COOKIE_NAME=yousessionname‘
win
set JAVA_OPTS=”-Dorg.apache.catalina.SESSION_COOKIE_NAME=yousessionname“
2、tomcat6和tomcat7修改方法相同
tomcat增加参数对所有Context生效,影响甚大,所以到以后的版本可以就仅针对Context设置了
在Context容器标签上增加sessionCookieName参数
<Context path=”/” docBase=”webapp” reloadable=”false”sessionCookieName=”yoursessionname”></Context>
3、weblogic修改方法
设置各个应用使用不同的cookie-name。
weblogic的设置(设置不同的cookie-name):
请在WEB-INFWeblogic.xml添加如下代码
<session-descriptor>
<cookie-name>JSESSIONID1</cookie-name>
</session-descriptor>
相关文章
- 这篇文章主要介绍了jQuery事件绑定用法,结合实例形式较为详细的分析了jQuery事件绑定的实现原理与相关注意事项,并附带了相关绑定方法的使用说明,重点介绍了bind和live的区别,需要的朋友可以参考下...2016-01-21
详解nginx同一端口监听多个域名和同时监听http与https
这篇文章主要介绍了详解nginx同一端口监听多个域名和同时监听http与https的相关资料,需要的朋友可以参考下...2017-07-06- 这篇文章主要为大家详细介绍了C# TextBox数据绑定的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-25
- vue数据双向绑定是通过数据劫持结合发布者-订阅者模式的方式来实现的,下面这篇文章主要给大家介绍了关于如何利用js实现Vue2.0中数据的双向绑定功能的相关资料,需要的朋友可以参考下...2021-07-19
- 这篇文章主要介绍了JavaScript为事件句柄绑定监听函数的方法,结合实例详细分析了常见的事件句柄绑定监听函数的实现技巧,并实例讲解了跨浏览器的实现方法,需要的朋友可以参考下...2015-12-17
- 这篇文章主要介绍了Vue2.x 的双向绑定原理,Vue 是利用的 Object.defineProperty() 方法进行的数据劫持,利用 set、get 来检测数据的读写。需要的朋友可以参考下面文章的具体内容...2021-09-27
- 这篇文章主要介绍了C#移除所有事件绑定的方法,实例分析了C#事件绑定的移除方法,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
详解JavaScript的AngularJS框架中的作用域与数据绑定
这篇文章主要介绍了JavaScript的AngularJS框架中的作用域与数据绑定,包括作用域的继承以及数据的单向和双向绑定等重要知识点,需要的朋友可以参考下...2016-03-07- PHP IP地址格式检测函数复制代码 代码如下:function checkIp($ip){ $ip = str_replace(" ", "", $ip); $ip = strtolower($ip); $ip= str_replace("http://", "", $ip); $ip= str_replace("https://", ""...2013-10-04
- 这篇文章主要介绍了C#域名解析简单实现方法,可实现针对域名解析显示出主机名、IP地址、别名等功能,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了使用Vue3进行数据绑定及显示列表数据,整篇文章围绕Vue3进行数据绑定及显示列表数据的想换自来哦展开内容,需要的小伙伴可以参考一下...2021-10-23
- react事件绑定时。this并不会指向当前DOM元素。往往使用bind来改变this指向,今天通过本文给大家介绍React事件绑定的方式,感兴趣的朋友...2021-07-24
2015新版godaddy域名续费与过期域名赎回期限及赎回方法
有许多的新手朋友不知道gd如何续费及过期了域名如何购买回来了,今天我们就一起来看看2015新版godaddy域名续费与过期域名赎回期限及赎回方法吧。 2015新版godaddy...2016-10-10- 这篇文章主要为大家详细介绍了Unity3D仿写Button面板事件绑定功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-25
- 这篇文章主要介绍了C#实现绑定Combobox的方法,涉及Combobox参数设置的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
使用Object.defineProperty实现简单的js双向绑定
这篇文章主要介绍了使用Object.defineProperty实现简单的js双向绑定的相关资料,需要的朋友可以参考下...2016-04-18- 今天给域名续费的,实在找不到可以便宜的优惠码了,就干脆直接转到万网好了!!39¥比之前使用了优惠码的50多还便宜不少! 申请转出之前请大家务必注意两点问题: 1、之前购买...2016-10-10
- godaddy域名转出西部数码要如何转呢,因为许多新顶级域名在国内许多服务商不支持,特别是高价域名更不支持了,下面我们来看godaddy域名转出西部数码的方法吧. 1、域...2016-10-10
- 这篇文章主要介绍了AngularJS框架中数据的双向绑定运用实例,包括数据绑定中的关键函数与监听器触发的相关讲解,需要的朋友可以参考下...2016-03-07
- 这篇文章主要介绍了Nginx批量添加二级子域名完美方案,本文讲解使用正则表达式批量匹配指定域名的二级域名虚拟主机,需要的朋友可以参考下...2016-01-27