免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1568 | 回复: 8
打印 上一主题 下一主题

兄弟刚学PHP遇到麻烦了…… [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-06-04 18:08 |只看该作者 |倒序浏览
我调试论坛程序时出现这样的错误是什么问题啊?
Warning: Invalid argument supplied for foreach() in d:\phpforum\global.php on line 512
这个程序总是伴随我出现在很多页面,大虾们怎么解决啊?
在这个文件global.php的第512行是:
if ($motitle) foreach($nforum_admin as $k=>;$value) if(in_array($username,$value)) {
        $forumname=getforumname($k);

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2004-06-04 18:24 |只看该作者

兄弟刚学PHP遇到麻烦了……

if ($motitle) foreach($nforum_admin as $k=>;$value) if(in_array($username,$value)) {
$forumname=getforumname($k);

这种写法很诡异,以后最好写标准的格式,用{}分隔块。
单论foreach($nforum_admin as $k=>;$value)的写法没有错,不过如果$nforum_admin不是一个数组的话,就会出错,所以检查一下这个变量。

论坛徽章:
0
3 [报告]
发表于 2004-06-04 19:52 |只看该作者

兄弟刚学PHP遇到麻烦了……

谢谢老大:
中间截取了一段程序,帮我看看:
//+-----------User functions---------------------

function get_user_portait($usericon) {
        $portait=explode('%',$usericon);
        if (empty($usericon)) return '';
        if ($portait[1] && $portait[2] && $portait[3])
        return "<img src='$portait[1]' width=$portait[2] height=$portait[3] border=0>;";
        else return "<img src='images/face/$portait[0]' border=0>;";
}

function getUserRec() {
global $wandererboardid,$username,$gotNewMessage,$postamount,$lastime;
        $username=$wandererboardid;
        $gotNewMessage=0;
        $userdata=readuser($username,"amount,lasttime";
        $rec=@mysql_fetch_array(@mysql_query("select count(*) from messages where user='$username' && kind='rec' && isread=0");
        $gotNewMessage=$rec[0];
        $postamount=$userdata[amount];
        $lastime=getfulldate($userdata[lasttime]);
}

function getUserLevel($amount,$username) {
global $mtitle,$mpostmark,$admintitle,$motitle,$adtitle,$nforum_admin,$admin_user,$admin_name;
$user_level=$mtitle[0];
$count=count($mpostmark);
for ($i=1; $i<$count; $i++) if ($mpostmark[$i] && $amount>;=$mpostmark[$i])  $user_level=$mtitle[$i];
  if ($motitle) foreach($nforum_admin as $k=>;$value) if(in_array($username,$value)) $user_level=$motitle;
  if ($adtitle && in_array($username,$admin_user)) $user_level=$adtitle;
  if ($admintitle && $username==$admin_name) $user_level=$admintitle;

  return $user_level;
}

function getNextLevel($amount,$username) {
global $mpostmark;
$next_level=$mpostmark[1];
$count=count($mpostmark);
for ($i=1; $i<$count; $i++)
   if ($mpostmark[$i] && $amount>;=$mpostmark[$i]) $next_level=$mpostmark[$i+1];
return $next_level;
}

function nextlevelup($postnum,$user_levelnum){
        $level = pow(log10 ($postnum), 3);//等级
        if ($level<=0) $level =0;
        $showlevel = ceil($level);
        $nextlevelbilv=100*$postnum/$user_levelnum;
        $levelup ="<table cellspacing=0 cellpadding=0 width=110  border=0>;<tbody>;<tr>;<td width=3 height=13>;<img height=13 src=images/img_left.gif width=3>;</td>;<td align=left width=104 background=images/img_backing.gif height=13>;<img height=13 src=images/img_fill.gif width=\"$nextlevelbilv%\" title='水位: $postnum/$user_levelnum({$showlevel}级)'>;</td>;<td width=3 height=13>;<img height=13 src=images/img_right.gif width=3>;</td>;</tr>;</tbody>;</table>;";
return $levelup;
}

/******************************************************************************/

function getLevel($username) {
global $bbs_title,$admintitle,$motitle,$adtitle,$admin_user,$admin_name,$nforum_admin;

if ($adtitle && in_array($username,$admin_user)) $level="[$bbs_title]$adtitle";
if ($admintitle && $username==$admin_name) $level="[$bbs_title]$admintitle";
if ($motitle) foreach($nforum_admin as $k=>;$value) if(in_array($username,$value)) {//提示这一行错误:Warning: Invalid argument supplied for foreach() in d:\phpforum\global.php on line 512
        $forumname=getforumname($k);
        if(empty($level)) $level="[$forumname]$motitle";
        else $level.="&#13;&#10;[$forumname]$motitle";
}

return $level;
}

/*******************************************************************************/
function getUserIcon($amount,$username) {
global $nforum_admin,$admin_name,$admin_user,$mgraphic,$mpostmark,$admingraphic,$modgraphic,$addgraphic;

  $usericon=$mgraphic[0];
  $count=count($mpostmark);
  for ($i=1; $i<$count; $i++) if ($mpostmark[$i] && $amount>;=$mpostmark[$i]) $usericon=$mgraphic[$i];
  if ($modgraphic) foreach($nforum_admin as $k=>;$value)
          if(in_array($username,$value)) $usericon=$modgraphic;
  if ($addgraphic && in_array($username,$admin_user)) $usericon=$addgraphic;
  if ($admingraphic && $username==$admin_name) $usericon=$admingraphic;

  return $usericon;
}
反正我每次调用这个global.php文件时用到foreach() 时就提示那个警告。



对了,我在首页文件index.php中还发现有这样的写法对不对啊?
<?=$tablewidth?>;————有许多这样的。

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
4 [报告]
发表于 2004-06-04 21:42 |只看该作者

兄弟刚学PHP遇到麻烦了……

真是不明白,多写一个两个{}就怎么你了???

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
5 [报告]
发表于 2004-06-04 21:45 |只看该作者

兄弟刚学PHP遇到麻烦了……

这种代码基本没法看,何况调试,不过可能不是楼主写的。
longnetpro 该用户已被删除
6 [报告]
发表于 2004-06-04 23:35 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
7 [报告]
发表于 2004-06-04 23:51 |只看该作者

兄弟刚学PHP遇到麻烦了……

我教你一个简单又实用的办法,肯定管用。在你的电脑里找一个叫php.ini的文件,用个编辑器打开,找到有一行像这样的:
error_reporting  =  E_ALL & ~E_NOTICE
你改成
error_reporting  =  E_ERROR
注意行首如果有分号“;”把分号去了。重起web服务器就好了。

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
8 [报告]
发表于 2004-06-05 00:12 |只看该作者

兄弟刚学PHP遇到麻烦了……


拿大家当牛使呢?

论坛徽章:
0
9 [报告]
发表于 2004-07-14 08:39 |只看该作者

兄弟刚学PHP遇到麻烦了……

谢谢诸位了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP