转ecshop验证码错误问题
来源:互联网 发布:2016年1月非农数据 编辑:程序博客网 时间:2024/04/30 03:07
[原]ecshop验证码错误、禁用验证码登录自动退出
这是一个比较诡异的问题,经过无数次测试,发现是动态ip的问题。反应到程序是实际不是验证码的问题,而是session的问题。
解决方案是,修改includes/lib_base.php文件real_ip()函数,如下:
function real_ip(){ static $realip = NULL; if ($realip !== NULL) { return $realip; } /* 添加以下代码 */ if(isset($_COOKIE['real_ipd']) && !empty($_COOKIE['real_ipd'])){ $realip = $_COOKIE['real_ipd']; return $realip; } /* 添加以上代码 */ if (isset($_SERVER)) { if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']); /* 取X-Forwarded-For中第一个非unknown的有效IP字符串 */ foreach ($arr AS $ip) { $ip = trim($ip); if ($ip != 'unknown') { $realip = $ip; break; } } } elseif (isset($_SERVER['HTTP_CLIENT_IP'])) { $realip = $_SERVER['HTTP_CLIENT_IP']; } else { if (isset($_SERVER['REMOTE_ADDR'])) { $realip = $_SERVER['REMOTE_ADDR']; } else { $realip = '0.0.0.0'; } } } else { if (getenv('HTTP_X_FORWARDED_FOR')) { $realip = getenv('HTTP_X_FORWARDED_FOR'); } elseif (getenv('HTTP_CLIENT_IP')) { $realip = getenv('HTTP_CLIENT_IP'); } else { $realip = getenv('REMOTE_ADDR'); } } preg_match("/[\d\.]{7,15}/", $realip, $onlineip); $realip = !empty($onlineip[0]) ? $onlineip[0] : '0.0.0.0';/* 添加以下代码 */ setcookie("real_ipd", $realip, time()+36000, "/"); /* 添加以上代码 */ return $realip;}
0 0
- 转ecshop验证码错误问题
- ecshop验证码错误、禁用验证码登录自动退出
- ECshop前台验证码不显示的问题
- ecshop验证码不显示
- ecshop ajax请求验证captcha(验证码)
- 【PHP+SMARTY】提取ecshop验证码
- ECshop中验证码的使用
- ecshop验证码显示不了怎么办?
- 验证码错误的可能问题
- 验证码总是错误问题的总结
- ECSHOP用户中心"用户信息"修改增加密码问题验证
- ecshop问题
- ecshop在PHP 5.4以上版本各种错误问题处理
- 关于ecshop会员注册时发手机验证码
- 修改ECshop验证码的背景和字体
- ecshop设置密码实现邮件验证码校验功能
- ECShop js错误处理
- Ecshop错误大汇总
- java跳出多重循环
- 如何让你的开发团队成为虎狼之师?
- IOS动态创建控件通过tag处理单击事件
- stack
- 山重水复疑无路
- 转ecshop验证码错误问题
- 看起来好难越过去的坎
- 旅行商问题(深度优先搜索 回溯法 排列树)
- 训练深度模型的优化问题(十三)
- 出游
- 《算法竞赛入门经典2ndEdition 》例题5-1 大理石在哪儿(Where is the marble?, Uva10474)
- 训练深度模型的优化问题(十四)
- ViewOverlay 的使用
- 【LEETCODE】7-Reverse Integer