本帖最后由 xxz0318 于 2012-4-26 12:15 编辑
请看下面函数的第三个参数
我调用的函数是- $intkeys = array('aid', 'uid');
- $strkeys = array('authorname');
- $randkeys = array(array(1 => 'rongji'));
- $likekeys = array('title', 'username');
- $results = getwheres($intkeys, $strkeys, $randkeys, $likekeys);
复制代码- function getwheres($intkeys, $strkeys, $randkeys, $likekeys, $pre='') {
- $wherearr = array();
- $urls = array();
- foreach ($intkeys as $var) {
- $value = isset($_GET[$var])?$_GET[$var]:'';
- if(strlen($value)) {
- $urls[] = "$var=$value";
- $var = addslashes($var);
- $wherearr[] = "{$pre}{$var}='".intval($value)."'";
- }
- }
- foreach ($strkeys as $var) {
- $value = isset($_GET[$var])?trim($_GET[$var]):'';
- if(strlen($value)) {
- $urls[] = "$var=".rawurlencode($value);
- $var = addslashes($var);
- $value = addslashes($value);
- $wherearr[] = "{$pre}{$var}='$value'";
- }
- }
- foreach ($randkeys as $vars) {
- $value1 = isset($_GET[$vars[1].'1'])?$_GET[$vars[1].'1']:'';//Darren修改
- $value2 = isset($_GET[$vars[1].'2'])?$_GET[$vars[1].'2']:'';//Darren修改
- //$value1 = isset($_GET[$vars[1].'1'])?$vars[0]($_GET[$vars[1].'1']):'';//这里是官方的
- //$value2 = isset($_GET[$vars[1].'2'])?$vars[0]($_GET[$vars[1].'2']):'';//这里是官方的
- if($value1) {
- $urls[] = "{$vars[1]}1=".rawurlencode($_GET[$vars[1].'1']);
- $vars[1] = addslashes($vars[1]);
- $value1 = addslashes($value1);
- $wherearr[] = "{$pre}{$vars[1]}>='$value1'";
- }
- if($value2) {
- $wherearr[] = "{$pre}{$vars[1]}<='$value2'";
- $vars[2] = addslashes($vars[2]);
- $value2 = addslashes($value2);
- $urls[] = "{$vars[1]}2=".rawurlencode($_GET[$vars[1].'2']);
- }
- }
- foreach ($likekeys as $var) {
- $value = isset($_GET[$var])?stripsearchkey($_GET[$var]):'';
- if(strlen($value)>1) {
- $urls[] = "$var=".rawurlencode($_GET[$var]);
- $var = addslashes($var);
- $value = addslashes($value);
- $wherearr[] = "{$pre}{$var} LIKE BINARY '%$value%'";
- }
- }
- return array('wherearr'=>$wherearr, 'urls'=>$urls);
- }
复制代码 函数中处理第三个参数的时候的判断(代码中有注释.),怎么把我传递的参数处理成函数了呢?这明明是一个范围的查询,官方却把用户传递的参数处理成函数, 调用用官方的函数处理数据直接出错.
批量搜索官方的使用案例,却发现官方没有一个地方使用这个函数的第三个参数.杯具!
请确认!
PS:官方论坛是怎么有个 什么协助之类的 用户组啊?我上次反馈的BUG,给我修改成沟通中,但是没有任何人给我沟通啊,而且下面给我回复的帖子,说我没讲明白.
今天在查看那个帖子,官方回复已经确认BUG...
|