时间:2021-07-01 10:21:17 帮助过:11人阅读
你所谓的公共文件是不是被很多其他文件包含进去了?
你所谓的公共文件是不是被很多其他文件包含进去了?
贴出你的代码
不知道你是怎么写的,如何知道怎么改?
$useripNum || $userip2num<$useripNum) { $Middle= intval(($EndNum + $BeginNum) / 2); //偏移指针到索引位置读取4个字节 fseek($fd, $useripbegin + 7 * $Middle); $useripData1 = fread($fd, 4); if(strlen($useripData1) < 4) { fclose($fd); return 'File Error'; } //提取出来的数据转换成长整形,如果数据是负数则加上2的32次幂 $userip1num = implode('', unpack('L', $useripData1)); if($userip1num < 0) $userip1num += pow(2, 32); //提取的长整型数大于我们IP地址则修改结束位置进行下一次循环 if($userip1num > $useripNum) { $EndNum = $Middle; continue; } //取完上一个索引后取下一个索引 $DataSeek = fread($fd, 3); if(strlen($DataSeek) < 3) { fclose($fd); return 'File Error'; } $DataSeek = implode('', unpack('L', $DataSeek.chr(0))); fseek($fd, $DataSeek); $useripData2 = fread($fd, 4); if(strlen($useripData2) < 4) { fclose($fd); return 'File Error'; } $userip2num = implode('', unpack('L', $useripData2)); if($userip2num < 0) $userip2num += pow(2, 32); //找不到IP地址对应城市 if($userip2num < $useripNum) { if($Middle == $BeginNum) { fclose($fd); return 'No Data'; } $BeginNum = $Middle; } } $useripFlag = fread($fd, 1); if($useripFlag == chr(1)) { $useripSeek = fread($fd, 3); if(strlen($useripSeek) < 3) { fclose($fd); return 'System Error'; } $useripSeek = implode('', unpack('L', $useripSeek.chr(0))); fseek($fd, $useripSeek); $useripFlag = fread($fd, 1); } if($useripFlag == chr(2)) { $AddrSeek = fread($fd, 3); if(strlen($AddrSeek) < 3) { fclose($fd); return 'System Error'; } $useripFlag = fread($fd, 1); if($useripFlag == chr(2)) { $AddrSeek2 = fread($fd, 3); if(strlen($AddrSeek2) < 3) { fclose($fd); return 'System Error'; } $AddrSeek2 = implode('', unpack('L', $AddrSeek2.chr(0))); fseek($fd, $AddrSeek2); } else { fseek($fd, -1, SEEK_CUR); } while(($char = fread($fd, 1)) != chr(0)) $useripAddr2 .= $char; $AddrSeek = implode('', unpack('L', $AddrSeek.chr(0))); fseek($fd, $AddrSeek); while(($char = fread($fd, 1)) != chr(0)) $useripAddr1 .= $char; } else { fseek($fd, -1, SEEK_CUR); while(($char = fread($fd, 1)) != chr(0)) $useripAddr1 .= $char; $useripFlag = fread($fd, 1); if($useripFlag == chr(2)) { $AddrSeek2 = fread($fd, 3); if(strlen($AddrSeek2) < 3) { fclose($fd); return 'System Error'; } $AddrSeek2 = implode('', unpack('L', $AddrSeek2.chr(0))); fseek($fd, $AddrSeek2); } else { fseek($fd, -1, SEEK_CUR); } while(($char = fread($fd, 1)) != chr(0)){ $useripAddr2 .= $char; } } fclose($fd); //返回IP地址对应的城市结果 if(preg_match('/http/i', $useripAddr2)) { $useripAddr2 = ''; } $useripaddr = "$useripAddr1 $useripAddr2"; $useripaddr = preg_replace('/CZ88.Net/is', '', $useripaddr); $useripaddr = preg_replace('/^s*/is', '', $useripaddr); $useripaddr = preg_replace('/s*$/is', '', $useripaddr); if(preg_match('/http/i', $useripaddr) || $useripaddr == '') { $useripaddr = 'No Data'; } return $useripaddr;}?>这个是ipaddress.php页面require (ROOT_PATH . 'include/config.php');require (ROOT_PATH . 'include/smarty/Smarty.class.php');require (ROOT_PATH . 'include/mysql.class.php');require (ROOT_PATH . 'include/action.class.php');require (ROOT_PATH . 'include/check.class.php');require (ROOT_PATH . 'include/page.class.php');require (ROOT_PATH . 'include/ipaddress.php'); 这个是判断ip切换城市的这是公共调用文件的一部分
中,无论 city 是什么内容,总是要跳转的
中,无论 city 是什么内容,总是要跳转的
既然你默认打开的是 http://www.js0971.com/
那么在 西宁市 就不需要跳转了
if(city.indexOf("西宁市")>=0){
//window.location.href="http://www.js0971.com/";
}else{
window.location.href="http://bj.0971my.com/"; //不是西宁市才需要跳转
}
既然你默认打开的是 http://www.js0971.com/
那么在 西宁市 就不需要跳转了
if(city.indexOf("西宁市")>=0){
//window.location.href="http://www.js0971.com/";
}else{
window.location.href="http://bj.0971my.com/"; //不是西宁市才需要跳转
}
注释掉不就不执行了吗?
难道你在 bj.0971my.com 也判断是否 西宁市 吗?
注释掉不就不执行了吗?
难道你在 bj.0971my.com 也判断是否 西宁市 吗?
不同的二级域名,判别条件也不同,你都写死了,当然就不行啦
不同的二级域名,判别条件也不同,你都写死了,当然就不行啦
就是人家58那样,不同城市打开不同的内容,但是都是一个index.php,要么就是人家解析到别的文件夹去了,这个我就不清楚了。
用cookie或session存一个city的标记,例:为0时进入ip判断力跳转,并修改标记city>0
其实你这段 js 代码是不需要的
你既然是根据用户的 ip 跳转对应的二级域名,那么你就应该有一个城市(地区)与二级域名的对照表
当从 ip 取得城市(地区)名时,从此表查得二级域名进行跳转就可以了(header 函数),当然还要和 $_SERVER['HTTP_HOST'] 比较一下,已经是了就不再跳转了
其实你这段 js 代码是不需要的
你既然是根据用户的 ip 跳转对应的二级域名,那么你就应该有一个城市(地区)与二级域名的对照表
当从 ip 取得城市(地区)名时,从此表查得二级域名进行跳转就可以了(header 函数),当然还要和 $_SERVER['HTTP_HOST'] 比较一下,已经是了就不再跳转了
query("select * from ".$db->table('area')." where title like '%".$city."%'");$row=$db->fetch_array($sql);if(!$row){ header("Location:http//www.0971my.com");}else{ if($row['title']=='西宁市'){ header("Location:http://www.0971my.com"); }else{ header("Location:".$row['dns'].""); }}?>
如果用header()跳转的话,就会直接是这个结果http://www.0971my.com/http//www.0971my.com
地址后面给个标志位比如,transf=1 ,页面首先接受request[""]==1,则不执行判断。
你这样写死了怎么行。。。。
地址后面给个标志位比如,transf=1 ,页面首先接受request[""]==1,则不执行判断。
你这样写死了怎么行。。。。
很简单, 主域名 www.xxx.com
分站域名, bj.xxx.com, xa.xxx.com, gz.xxx.com ....
从www来的请求,根据ip跳转到分站, 分站的代码不需要跳转,简单判断域名然后用header()跳转就好了。
其实你这段 js 代码是不需要的
你既然是根据用户的 ip 跳转对应的二级域名,那么你就应该有一个城市(地区)与二级域名的对照表
当从 ip 取得城市(地区)名时,从此表查得二级域名进行跳转就可以了(header 函数),当然还要和 $_SERVER['HTTP_HOST'] 比较一下,已经是了就不再跳转了
很简单, 主域名 www.xxx.com
分站域名, bj.xxx.com, xa.xxx.com, gz.xxx.com ....
从www来的请求,根据ip跳转到分站, 分站的代码不需要跳转,简单判断域名然后用header()跳转就好了。
谢谢,各位我已经弄出来了,但是现在还有一个问题么考虑到,就是手动选择城市,这里的cookie是不是跨域访问了?
你针对的是二级域名,指定 setcookie 的4个参数即可
你针对的是二级域名,指定 setcookie 的4个参数即可