1
binghe OP 这是 PHP 代码:
<?php /** * 内容列表 * content_s_list.php 、 content_i_list.php 、 content_select_list.php * 均使用本文件作为实际处理代码,只是使用的模板不同,如有相关变动,只需改本文件及相关模板即可 * * @version $Id: content_list.php 1 14:31 2010 年 7 月 12 日 Z tianya $ * @package DedeCMS.Administrator * @copyright Copyright (c ) 2007 - 2010, DesDev, Inc. * @license http://help.dedecms.com/usersguide/license.html * @link http://www.dedecms.com */ require_once (dirname (__FILE__).'/config.php'); require_once (DEDEINC.'/typelink.class.php'); require_once (DEDEINC.'/datalistcp.class.php'); require_once (DEDEADMIN.'/inc/inc_list_functions.php'); $cid = isset ($cid ) ? intval ($cid ) : 0; $channelid = isset ($channelid ) ? intval ($channelid ) : 0; $mid = isset ($mid ) ? intval ($mid ) : 0; if (!isset ($keyword )) $keyword = ''; if (!isset ($flag )) $flag = ''; if (!isset ($arcrank )) $arcrank = ''; if (!isset ($dopost )) $dopost = ''; //检查权限许可,总权限 CheckPurview ('a_List,a_AccList,a_MyList'); //栏目浏览许可 $userCatalogSql = ''; if (TestPurview ('a_List')) { ; } else if (TestPurview ('a_AccList')) { if ($cid==0 && $cfg_admin_channel == 'array') { $admin_catalog = join (',', $admin_catalogs ); $userCatalogSql = " arc.typeid IN ($admin_catalog ) "; } else { CheckCatalog ($cid, '你无权浏览非指定栏目的内容!'); } if (TestPurview ('a_MyList')) $mid = $cuserLogin->getUserID (); } $adminid = $cuserLogin->getUserID (); $maintable = '#@__archives'; setcookie ('ENV_GOBACK_URL', $dedeNowurl, time ()+3600, '/'); $tl = new TypeLink ($cid ); //---------------------------------------- //在不指定排序条件和关键字的情况下直接统计微表 //---------------------------------------- if (empty ($totalresult ) && empty ($keyword ) && empty ($orderby ) && empty ($flag )) { $tinyQuerys = array (); if (!empty ($userCatalogSql )) { $tinyQuerys[] = str_replace ('arc.', '', $userCatalogSql ); } if (!empty ($channelid ) && empty ($cid )) { $tinyQuerys[] = " channel = '$channelid' "; } else { $tinyQuerys[] = " channel>0 "; } if (!empty ($arcrank )) { $tinyQuerys[] = " arcrank='$arcrank' "; } else { $tinyQuerys[] = " arcrank > -2 "; } if (!empty ($mid )) { $tinyQuerys[] = " mid='$mid' "; } if (!empty ($cid )) { $tinyQuerys[] = " typeid in (".GetSonIds ($cid ).") "; } if (count ($tinyQuerys )>0 ) { $tinyQuery = "WHERE ".join (' AND ',$tinyQuerys ); } // 缓存处理 $sql = "SELECT COUNT (*) AS dd FROM `#@__arctiny` $tinyQuery "; $cachekey = md5 ($sql ); $arr = GetCache ('listcache', $cachekey ); if (empty ($arr )) { $arr = $dsql->GetOne ($sql ); SetCache ('listcache', $cachekey, $arr ); } $totalresult = $arr['dd']; } if ($cid==0 ) { if ($channelid==0 ) { $positionname = '所有栏目>'; } else { $row = $tl->dsql->GetOne ("SELECT id,typename,maintable FROM `#@__channeltype` WHERE id='$channelid'"); $positionname = $row['typename']." > "; $maintable = $row['maintable']; $channelid = $row['id']; } } else { $positionname = str_replace ($cfg_list_symbol," > ",$tl->GetPositionName ())." > "; } //当选择的是单表模型栏目时,直接跳转到单表模型管理区 if (empty ($channelid ) && isset ($tl->TypeInfos['channeltype'])) { $channelid = $tl->TypeInfos['channeltype']; } if ($channelid < -1 ) { header ("location:content_sg_list.php?cid=$cid&channelid=$channelid&keyword=$keyword"); exit (); } // 栏目大于 800 则需要缓存数据 $optHash = md5 ($cid.$admin_catalogs.$channelid ); $optCache = DEDEDATA."/tplcache/inc_option_$optHash.inc"; $typeCount = 0; if (file_exists ($cache1 )) require_once ($cache1 ); else $cfg_Cs = array (); $typeCount = count ($cfg_Cs ); if ( $typeCount > 800 ) { if (file_exists ($optCache )) { $optionarr = file_get_contents ($optCache ); } else { $optionarr = $tl->GetOptionArray ($cid, $admin_catalogs, $channelid ); file_put_contents ($optCache, $optionarr ); } } else { $optionarr = $tl->GetOptionArray ($cid, $admin_catalogs, $channelid ); } $whereSql = empty ($channelid ) ? " WHERE arc.channel > 0 AND arc.arcrank > -2 " : " WHERE arc.channel = '$channelid' AND arc.arcrank > -2 "; $flagsArr = ''; $dsql->Execute ('f', 'SELECT * FROM `#@__arcatt` ORDER BY sortid ASC'); while ($frow = $dsql->GetArray ('f')) { $flagsArr .= ($frow['att']==$flag ? "<option value='{$frow['att']}' selected>{$frow['attname']}</option>\r\n" : "<option value='{$frow['att']}'>{$frow['attname']}</option>\r\n"); } if (!empty ($userCatalogSql )) { $whereSql .= " AND ".$userCatalogSql; } if (!empty ($mid )) { $whereSql .= " AND arc.mid = '$mid' "; } if ($keyword != '') { $whereSql .= " AND ( CONCAT (arc.title,arc.writer ) LIKE '%$keyword%') "; } if ($flag != '') { $whereSql .= " AND FIND_IN_SET ('$flag', arc.flag ) "; } if ($cid != 0 ) { $whereSql .= ' AND arc.typeid IN ('.GetSonIds ($cid ).')'; } if ($arcrank != '') { $whereSql .= " AND arc.arcrank = '$arcrank' "; $CheckUserSend = "<input type='button' class='coolbg np' onClick=\"location='catalog_do.php?cid=".$cid."&dopost=listArchives&gurl=content_list.php';\" value='所有文档' />"; } else { $CheckUserSend = "<input type='button' class='coolbg np' onClick=\"location='catalog_do.php?cid=".$cid."&dopost=listArchives&arcrank=-1&gurl=content_list.php';\" value='稿件审核' />"; } $orderby = empty ($orderby ) ? 'id' : preg_replace ("#[^a-z0-9]#", "", $orderby ); $orderbyField = 'arc.'.$orderby; $query = "SELECT arc.id,arc.typeid,arc.senddate,arc.flag,arc.ismake, arc.channel,arc.arcrank,arc.click,arc.title,arc.color,arc.litpic,arc.pubdate,arc.mid FROM `$maintable` arc $whereSql ORDER BY $orderbyField DESC"; if (empty ($f ) || !preg_match ("#form#", $f )) $f = 'form1.arcid1'; //初始化 $dlist = new DataListCP (); $dlist->pageSize = 30; //GET 参数 $dlist->SetParameter ('dopost', 'listArchives'); $dlist->SetParameter ('keyword', $keyword ); if (!empty ($mid )) $dlist->SetParameter ('mid', $mid ); $dlist->SetParameter ('cid', $cid ); $dlist->SetParameter ('flag', $flag ); $dlist->SetParameter ('orderby', $orderby ); $dlist->SetParameter ('arcrank', $arcrank ); $dlist->SetParameter ('channelid', $channelid ); $dlist->SetParameter ('f', $f ); //模板 if (empty ($s_tmplets )) $s_tmplets = 'templets/userinfo_list.htm'; $dlist->SetTemplate (DEDEADMIN.'/'.$s_tmplets ); //查询 $dlist->SetSource ($query ); //显示 $dlist->Display (); // echo $dlist->queryTime; $dlist->Close (); |
2
Web 2015-09-19 21:54:05 +08:00
这问题视乎是浏览器问题
http://jingyan.baidu.com/article/c910274bc25c07cd361d2dc7.html 这个连接貌似是你这种情况。你看看 或者你加 这个代码( IE8 下有效): <SCRIPT LANGUAGE="JavaScript"> <!-- function stopError () { return true; } window.onerror = stopError; // --> </SCRIPT> |
3
SoloCompany 2015-09-19 22:46:17 +08:00
so
明显是触发了死循环了啊(准确的说,应该是死递归) 比如,某个 onchange 事件修改了自身的值,在某些奇葩浏览器上又触发了自身 |
4
xfspace 2015-09-19 22:49:43 +08:00 via iPad
解决办法, ban 掉 IE 浏览器~
|
5
binghe OP @Web 哥们,按照百度经验那个方法不管用。我的环境是 win2003+IE8.
<SCRIPT LANGUAGE="JavaScript"> <!-- function stopError () { return true; } window.onerror = stopError; // --> </SCRIPT> 这个也不管用,加上后还是弹的很欢乐。 @SoloCompany 能更加详细的指点一下吗?你说的那个东西对我来说太高深了。 |