喜悦国际村 
» 游客:  注册 | 登录 | 搜索 | 统计 | 喜悦证交所 | 帮助

RSS 订阅当前论坛  

【村长请吃饭啊】 ---北京诚聘--- 【你还在犹豫吗?】

上一主题 下一主题
     
标题: 商城的几问题,个人观点不一定完全正确,供参考  
 
moocky (木目子)
高级会员
Rank: 4
风铃浅唱文学原创



UID 17594
精华 0
积分 850
帖子 842
金钱 850 喜悦币
威望 0
人脉 0
阅读权限 50
注册 2002-11-8
状态 离线
商城的几问题,个人观点不一定完全正确,供参考

那user.php举个例子,从上往下看
第一个问题:

<?php
$smarty
->assign('step',             $_REQUEST['act']);
    
$smarty->assign('id',               $_REQUEST['id']);
    
$smarty->assign('best_goods',       recommend_goods('best'));
    
$smarty->assign('new_goods',        recommend_goods('new'));
    
$smarty->assign('hot_goods',        recommend_goods('hot'));
    
$smarty->assign('promotion_goods',  recommend_goods('promote'));
?>
不如:

<?php
$smarty
->assign(array(
              
'step'=>$_REQUEST['act']),
              
'id'=>$_REQUEST['id']),
              
'best_goods'=>recommend_goods('best'),
              
'new_goods'=>recommend_goods('new'),
              
'hot_goods'=>recommend_goods('hot'),
              
'promotion_goods'=>recommend_goods('promote'));
?>
第二个问题:

<?php
$sql 
"INSERT INTO ".$ecs->table('feedback'). " (user_id,user_name,user_email,msg_title,msg_type,msg_content,msg_time,message_img) ".
        
" VALUES ('".$_SESSION['user_id']."', '".$_SESSION['user_name']."', '".$_SESSION['email']."', '".$msg_title."', '".$_POST['msg_type']."', '".$msg_content."', '".time()."', '".$img_name."')";
    if (
$db->Execute($sql))
    {
        
header("Location: user.php?act=messagen");
        exit;
    }
    else
    {
        die(
$db->ErrorMsg());
    }
?>
这里面有两个问题(1)用.连接多个字符串效率是相对低下的,不如使用sprintf;(2)变量$sql只使用了一次,却无畏的定义了一个变量,以上不如:

<?php
if ($db->Execute(sprintf("INSERT INTO %s (user_id,user_name,user_email,msg_title,msg_type,msg_content,msg_time,message_img)<img src="">VALUES ('%s','%s','%s','%s','%s','%s','%s','%s')",$ecs->table('feedback'),$_SESSION['user_id'],$_SESSION['user_name'],$_SESSION['email'],$msg_title,$_POST['msg_type'],$msg_content,time(),$img_name)))
?>
第三个问题:

<?php
$sql 
"UPDATE ".$GLOBALS['ecs']->table('user_address'). " SET ".
                
"consignee        = '".trim($_POST['consignee'.$sn])."', ".
                
"email            = '".$_POST['email'.$sn]."', ".
                
"country          = '".$_POST['country'.$sn]."', ".
                
"province         = '".$_POST['province'.$sn]."', ".
                
"city             = '".$_POST['city'.$sn]."', ".
                
"district         = '".$_POST['district'.$sn]."', ".
                
"address          = '".trim($_POST['address'.$sn])."', ".
                
"zipcode          = '".$zipcode."', ".
                
"tel              = '".$tel."', ".
                
"mobile           = '".$mobile."', ".
                
"sign_building    = '".$sign_building ."', ".
                
"best_time        = '".$best_time."' ".
                
"WHERE address_id = '".$address_id."'";
        
$result $GLOBALS['db']->Execute($sql) or die($GLOBALS['db']->ErrorMsg());
?>
除了以上的问题,这里仍然有两个问题
(1)$GLOBALS的使用有问题,可能是架构的设计上出现了问题,倒是$GLOBALS的过渡使用,不管是效率还是可读性方面都是让人难以忍受的。(2)没有对输入数据进行过滤;


粗略的看了几个文件,以上的几个问题出现的频率是非常高的,希望作者予以考虑。




风铃浅唱文学
木目子技术交流站(有非常多的在线手册)
寻求可以一起创业的朋友。请Q我:
2007-2-8 12:23 AM#1
查看资料  访问主页  发短消息  QQ  顶部
 
paulgao
版主
Rank: 7Rank: 7Rank: 7



UID 79494
精华 0
积分 6
帖子 7
金钱 6 喜悦币
威望 0
人脉 0
阅读权限 100
注册 2006-9-3
状态 离线
[推荐阅读] 北京中关村某新成立公司招聘网站技术总监和PHP程序员
1、2的问题都在于能够方便调试,太紧凑的代码看着爽,但是调试起来容易出错还麻烦,而且不适合用户对代码进行修改。至于 sprintf 的效率恐怕不比多个点的效率高。您可以测试一下。
3、$GLOBALS 的引用是为了尽量适应未来的 PHP,不过暂时没有强求 coder 们完全修改过来,所以看着有点乱。:)

感谢您的关注,呵呵。

[ 本帖最后由 paulgao 于 2007-8-8 04:30 PM 编辑 ]
2007-8-8 04:27 PM#2
查看资料  Blog  发短消息  顶部
 
平民
新手上路
Rank: 1



UID 96666
精华 0
积分 1
帖子 1
金钱 1 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2007-8-8
状态 离线
[推荐阅读] php批处理问题请大家帮忙!
谢谢了,
2007-8-19 10:13 AM#3
查看资料  发短消息  顶部
 
此奶瓶非彼奶瓶
新手上路
Rank: 1



UID 99452
精华 0
积分 4
帖子 11
金钱 4 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2007-10-7
状态 离线
[推荐阅读] 求助一条SQL
原来是这个意思啊。偶的迷惑解开了。
2007-10-7 07:17 PM#4
查看资料  发短消息  顶部
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题 | 开通个人空间  


 


Powered by Discuz! 6.1.0  © 2001-2010 Comsenz Inc.
Processed in 0.033780 second(s), 7 queries

(冀ICP备05009913号) 管理员:sadly 邮箱/MSN: sadly@phpx.com QQ:824008(长隐) 清除 Cookies - - Archiver - WAP