用户要求根据不同省份的访客自动弹出对应省份的客服。

这样方便客服跟客户的沟通。

下面代码简单修改就可以使用

<?php
function getIpAddress(){
$ipContent = file_get_contents(“http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js”);
$jsonData = explode(“=”,$ipContent);
$jsonAddress = substr($jsonData[1], 0, -1);
return $jsonAddress;
}
$ip_info=json_decode(getIpAddress());

$ip_info->province;

?>
<script type=”text/javascript” language=”javascript”>
var city='<?php echo $ip_info->province;?>’; //根据IP地址所有城市跳转到指定页面

if(city.indexOf(“山东”)>=0){
window.location.href=”http://shanghai.demo.com/”; }
if(city.indexOf(“广东”)>=0){
window.location.href=”http://shanghai.demo.com/”; }
if(city.indexOf(“上海”)>=0){
window.location.href=”http://shanghai.demo.com/”; }
</script>

然后呢

我直接弹出QQ客服

<?php
function getIpAddress(){
$ipContent = file_get_contents(“http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js”);
$jsonData = explode(“=”,$ipContent);
$jsonAddress = substr($jsonData[1], 0, -1);
return $jsonAddress;
}
$ip_info=json_decode(getIpAddress());

$ip_info->province;

if ($ip_info->province==”上海”)
{
echo “<a title=\”在线咨询\” href=\”http://wpa.qq.com/msgrd?v=3&uin=998888&site=qq&menu=yes\” target=\”_parent\”> “;}

else {
echo “<a title=\”在线咨询\” href=\”http://wpa.qq.com/msgrd?v=3&uin=9999&site=qq&menu=yes\” target=\”_parent\”> “; }
?>

,

用户原来使用的空间服务器很慢,想转到我这里来,让我帮忙转移数据,phpmyadmin都跑不动。

只好想个别的办法,单独来个备份的功能吧。

直接单文件。

<?php
header ( “content-Type: text/html; charset=utf-8″ );
//备份数据库
$host=”localhost”;
$user=”root”;//数据库账号
$password=”mimaabcd”;//数据库密码
$dbname=”ats”;//数据库名称
//这里的账号、密码、名称都是从页面传过来的
if(!mysql_connect($host,$user,$password)) //连接mysql数据库
{
echo ‘数据库连接失败,请核对后再试’;
exit;
}
if(!mysql_select_db($dbname)) //是否存在该数据库
{
echo ‘不存在数据库:’.$dbname.’,请核对后再试’;
exit;
}
mysql_query(“set names ‘utf8′”);
$mysql= “set charset utf8;\r\n”;
$q1=mysql_query(“show tables”);
while($t=mysql_fetch_array($q1)){
$table=$t[0];
$q2=mysql_query(“show create table `$table`”);
$sql=mysql_fetch_array($q2);
$mysql.=$sql[‘Create Table’].”;\r\n”;
$q3=mysql_query(“select * from `$table`”);
while($data=mysql_fetch_assoc($q3)){
$keys=array_keys($data);
$keys=array_map(‘addslashes’,$keys);
$keys=join(‘`,`’,$keys);
$keys=”`”.$keys.”`”;
$vals=array_values($data);
$vals=array_map(‘addslashes’,$vals);
$vals=join(“‘,'”,$vals);
$vals=”‘”.$vals.”‘”;
$mysql.=”insert into `$table`($keys) values($vals);\r\n”;
}
}
$filename=”data/”.$dbname.date(‘Ymjgi’).”.sql”; //存放路径,默认存放到项目最外层
$fp = fopen($filename,’w’);
fputs($fp,$mysql);
fclose($fp);
echo “数据备份成功”;
?>

 

顺便再来个还原的
二、还原

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
$filename = "test20101216923.sql";
$host="localhost"; //主机名
$user="root"; //MYSQL用户名
$password="123456"; //密码
$dbname="test"; //在此指定您要恢复的数据库名,不存在则必须先创建,请自已修改数据库名
mysql_connect($host,$user,$password);
mysql_select_db($dbname);
$mysql_file="data/".$filename; //指定要恢复的MySQL备份文件路径,请自已修改此路径
restore($mysql_file); //执行MySQL恢复命令
function restore($fname)
 {
 if (file_exists($fname)) {
  $sql_value="";
  $cg=0;
  $sb=0;
  $sqls=file($fname);
  foreach($sqls as $sql)
  {
  $sql_value.=$sql;
  }
  $a=explode(";\r\n", $sql_value); //根据";\r\n"条件对数据库中分条执行
  $total=count($a)-1;
  mysql_query("set names 'utf8'");
  for ($i=0;$i<$total;$i++)
  {
  mysql_query("set names 'utf8'");
  //执行命令
  if(mysql_query($a[$i]))
  {
   $cg+=1;
  }
  else
  {
   $sb+=1;
   $sb_command[$sb]=$a[$i];
  }
  }
  echo "操作完毕,共处理 $total 条命令,成功 $cg 条,失败 $sb 条";
  //显示错误信息
  if ($sb>0)
  {
  echo "<hr><br><br>失败命令如下:<br>";
  for ($ii=1;$ii<=$sb;$ii++)
  {
   echo "<p><b>第 ".$ii." 条命令(内容如下):</b><br>".$sb_command[$ii]."</p><br>";
  }
  }  //-----------------------------------------------------------
 }else{
  echo "MySQL备份文件不存在,请检查文件路径是否正确!";
 }
 }
?>

php缓存设置的目录是windows/temp,php缓存爆了,几个G,直接把C盘占满了,远程登录进去,提示各种错误,然后自动新增一个用户出来。
Documents and Settings下有Administrator文件和Administrator.PC两个文件夹,就是Administrator.user,或者Administrator.PC名 这样的。
而Administrator就保留着原来的桌面信息。
原来的桌面变成了Administrator.XXXX中的图标文件,我们需要做的是Administrator里面的原有文件。
步骤是:
1.到C:/Documents and Settings/文件夹下,右键Administrator文件夹->属性->安全->给管理员和管理员组(身份)勾上”完全控制”权限。
2.打开注册表. HK_LM/software/microsoft/windowsNT/currentVersion/profilelist/下面搜一下,一般在最后一个目录下有一项”profileImagePath”,双击它,然后把最后的“.机器名” 删掉。
3最后重启。

,

因为php的dos漏洞,不得不升级php,

搞了好多版本都不支持ioncube_loaders,一直以为kangle限制了,其实是版本没对应上

都是来自第三方的 整理一下。

kangle自带的php5.2.17应该是线程安全版,

对应的补丁版本用这个 http://www.upupw.net/Expand/n104.html

然后这个是vc6编译的ioncube_loaders就要用 VC6的版本

http://downloads3.ioncube.com/loader_downloads/ioncube_loaders_win_vc6_x86.zip

这个对应起来才能加载ioncube_loaders。

问题就是php编译有 VC6 ,VC9,VC11的区别.

同样php5.3.29, ioncube_loaders版本对应不上也加载不了,http://www.ioncube.com/loaders.php 从这里找php编译时对应的的版本.对应vc9或者vc11,然后还有ts和nts。

其实我也不懂为什么php5.2.17用的ts版本,php5.3.29却用的nts版。

, ,

php-5.2.17-upupw-nts-Win32-VC6-x86根据php-5.2.17-src.zip官方源码编译而成。

下载地址:http://pan.baidu.com/s/1i3GNOuL

  • 1、参照php-5.4.41-src.zip的源码修复了远程攻击者通过发送恶意构造的multipart/form-data请求,导致服务器CPU资源被耗尽,从而远程DOS服务器的漏洞。
  • 2、修复通过调用Hash冲突实现各种语言的拒绝服务攻击漏洞,此漏洞比较久远了从php官方放弃更新php5.2后就一直存在,linux上有修复补丁,此版特别针对windows。
  • 3、OpenSSL由OpenSSL 0.9.8q升级到了OpenSSL 0.9.8zf,修复旧版本存在的漏洞。

php-5.2.17-upupw-nts-Win32-VC6-x86.zip为Non Thread Safe(非线程安全版本)。

使用教程:

1、压缩的形式备份现有的php5.2.17程序目录。

2、解压php-5.2.17-upupw-nts-Win32-VC6-x86.zip全部覆盖现在的php5.2.17文件,不会影响php.ini配置文件请放心使用。

适用系统:

Windows Server 2003/2008/2012 ; XP/Vista/Win7/Win8.1 ; 32/64位通用。

此修复版和PHP官方的编译包结构是一样的,可以适用任何php5.2.17的nts vc6版本。

php的这个漏洞影响的人太多了,我服务器上几百个站,不得不升级,一直也没找到php5.2.17的,因为很多老的企业站还是老版本的php。因为有人在尝试攻击我的服务器,升级php5.6.9问题太对,还是保守的升级到5.3了。很多函数不兼容,手工一个一个的修改用户的文件,尽量减少错误。这个php5.3.29还不错,感谢simapple提供。

修改 CVE-ID2015-4024 ddos 问题,并编译

注意:由于时间仓促,本版本 未编译 Oracle的扩展

需要的同学可以下载 http://7xj87m.com1.z0.glb.clouddn.com/php5.3.29-nts-patch-simapple.zip(link is external)

有任何问题 请及时反馈 以便修复

列一下我要安装的所有东西:

mysql,php,apache,gd2,jpegsrc,freetype,libpng,zlib

安装顺序

1,apache:
官网有下。首先要看你的机子是否以前有了httpd了,有的话我们可以用,也可以不用,我是不用的,不用的话就要删除。

chkconfig | grep httpd

看看有没有,有的话就要删除。

Read the rest of this entry

, ,

网上搜到的都是 复制 libeay32.dll 和 ssleay32.dll 到system32下,
不管这些复制什么文件到 system32下,那些都是路径的问题。
复制了一堆文件都不起作用。
调试了2天,重启了无数遍iis,都没有加载成功。phpinfo里就是见不到curl。
用 php -v 命令 就提示 无法加载zlib.dll,然后是 找不到php_curl.dll.

我已经在环境变量里加了php的目录,不需要复制这些。
后来发现有很少的几个人报告5.2.14这个问题,在csdn上发现有人在php.net 报告了bug,官方已经修复。
只是php.net官方默认下载的都是2010.7.21的文件包,里面是有bug的curl.dll。
这个下载地址http://windows.php.net/download/ 里面是7.28的文件包,里面已经修复curl的bug.

熬了2天竟然是这个bug在作怪…

首先将IIS由64位模式修改为32位模式,只要一个命令即可:

cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1

恢复为64位模式的命令:

cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 0

PHP的安装与32位模式下是一样的。

IIS的ASP.NET需要重新注册一下才能用

32位:%SYSTEMROOT%\Microsoft.NET\Framework\v2.0.40607\aspnet_regiis.exe -i
64位:%SYSTEMROOT%\Microsoft.NET\Framework64\v2.0.40607\aspnet_regiis.exe -i

apache2加速让美国空间跟国内一样快 绝对没有忽悠你,都说KT机房虽然快但是稳定不好,而且重装系统要格式全盘,当然我给你个好建另外解决APACHE在WIN上运行HTTPD.EXE占内存越来越大问题
在httpd.conf最后加上
ThreadsPerChild 250
MaxRequestsPerChild 400

apache2的版本开始,压缩优化传输应该是自带模块了。mod_deflate

结果测试。压缩级别设置为最高级9的时候 压缩网页大概是 10% 也就是说 200K的网页 压缩成20K 传输给客户端。

在WINDOWS版本中开启这个模块非常简单。只需要编辑httpd.conf

找到

#LoadModule deflate_module modules/mod_deflate.so

将前面的#号去掉。开启这个模块。

然后在最下面加入下面的配置

<ifmodule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/plain text/css
    DeflateCompressionLevel 9
    SetOutputFilter DEFLATE
</ifmodule>

如果未加入上面的配置。就算加载了模块,也不会进行任何压缩。

AddOutputFilterByType 对特定的MIME类型指定压缩

我们这里设置的是 text/html(html类型)text/css(CSS文件类型)text/plain(纯文本传输类型)

当然你也可以加入 text/javascript 把JS文件也一起压缩

DeflateCompressionLevel 压缩级别

越高的压缩程度就会有越好的压缩效果,同时也意味着占用越多的CPU资源。

取值范围在 1(最低压缩率) 到 9(最高压缩率)之间。

SetOutputFilter DEFLATE  启用压缩输出

, , ,