dedecms php 判断语句(phpif判断语句)

在DedeCMS中,PHP作为其核心编程语言,扮演着至关重要的角色。而PHP中的判断语句,则是实现网站逻辑判断的核心。今天,我们就来深入浅出地探讨一下DedeCMS中的PHP判断语句,帮助你更好地掌握网站逻辑核心。

一、判断语句概述

我们先来了解一下什么是判断语句。判断语句是一种根据条件表达式真假来决定程序执行流程的语句。在PHP中,常见的判断语句有if语句、switch语句等。

二、if语句

if语句是PHP中最常用的判断语句,它可以根据条件表达式的真假来执行不同的代码块。

1. 基本语法

“`php

if (条件表达式) {

// 条件为真时执行的代码块

} else {

// 条件为假时执行的代码块

}

“`

2. 举例说明

假设我们要实现一个简单的登录功能,当用户名和密码正确时,显示“登录成功”,否则显示“登录失败”。

“`php

$username = $_POST[‘username’];

$password = $_POST[‘password’];

if ($username == ‘admin’ && $password == ‘123456’) {

echo ‘登录成功’;

} else {

echo ‘登录失败’;

}

“`

3. 注意事项

  • 条件表达式必须用括号括起来。
  • else部分可以省略,但if部分不能省略。

三、switch语句

switch语句可以根据多个条件表达式的值来执行不同的代码块。

1. 基本语法

“`php

switch (表达式) {

case 值1:

// 执行代码块1

break;

case 值2:

// 执行代码块2

break;

default:

// 执行默认代码块

break;

}

“`

2. 举例说明

假设我们要根据用户输入的月份来显示对应的季节。

“`php

$month = $_GET[‘month’];

switch ($month) {

case 1:

case 2:

case 12:

echo ‘冬季’;

break;

case 3:

case 4:

case 11:

echo ‘春季’;

break;

case 5:

case 6:

case 10:

echo ‘夏季’;

break;

case 7:

case 8:

echo ‘秋季’;

break;

default:

echo ‘输入有误’;

break;

}

“`

3. 注意事项

  • switch语句中的case值必须是唯一的。
  • break语句用于跳出switch语句,避免执行多个case块。

四、嵌套判断语句

在实际开发中,我们经常会遇到需要嵌套判断语句的情况。嵌套判断语句就是将一个判断语句放在另一个判断语句的代码块中。

1. 基本语法

“`php

if (条件表达式1) {

// 代码块1

if (条件表达式2) {

// 代码块2

}

}

“`

2. 举例说明

假设我们要实现一个简单的成绩查询功能,当用户输入的成绩大于等于90时,显示“优秀”,否则根据成绩范围显示“良好”、“中等”或“不及格”。

“`php

$score = $_POST[‘score’];

if ($score >= 90) {

echo ‘优秀’;

} else {

if ($score >= 80) {

echo ‘良好’;

} else {

if ($score >= 60) {

echo ‘中等’;

} else {

echo ‘不及格’;

}

}

}

“`

五、总结

通过本文的介绍,相信大家对DedeCMS中的PHP判断语句有了更深入的了解。在实际开发中,灵活运用判断语句,可以帮助我们更好地实现网站逻辑,提高代码的可读性和可维护性。

判断语句 作用 举例
if语句 根据条件表达式的真假执行不同的代码块 登录功能
switch语句 根据多个条件表达式的值执行不同的代码块 显示季节
嵌套判断语句 将一个判断语句放在另一个判断语句的代码块中 成绩查询

希望本文能对你有所帮助,祝你编程愉快!

dedecms如何执行PHP代码

你和我前二天的需求一样,都是在主站上调用bbs的内容.不过如果你的bbs和主站的数据库在一台服务器上的话,你的方法有可能导致dedecms解析模板出问题,因为你select_mysql_db了..我的解决方法是在bbs上开一个类似api的东东,用file_get_content远程抓取过来.用的是这篇文章里说的例子: dedecms模板中使用php语法

dedecms数据库,用php调用sql最新文章

这是我之前写的一个类,和你的需求基本一样,你拿去自己改改吧

<?php

$GLOBALS['web_channel_dir']='dir/inc';

//设置系统根路径

define('WEB_ROOT',$GLOBALS['web_channel_dir']? substr(dirname(__FILE__), 0,- strlen($GLOBALS['web_channel_dir'])): dirname(__FILE__).'/');

abstract class BaseDataQuery

{

/*

*构造方法

*/

function __construct($pid,$cid,$xid)

{

if(!file_exists(WEB_ROOT.'data/common.inc.php'))

{

echo”配置错误”;

exit();

}else{

require_once WEB_ROOT.'data/common.inc.php';

}

$this->cfg_dbhost=$cfg_dbhost;

$this->cfg_dbname=$cfg_dbname;

$this->cfg_dbuser=$cfg_dbuser;

$this->cfg_dbpwd=$cfg_dbpwd;

$this->cfg_dbprefix=$cfg_dbprefix;

$this->cfg_db_language=$cfg_db_language;

$this->link=$this->connect();

}

function connect()

{

//global$link,$host,$dbuser,$dbpasswd,$db;

$link= mysql_connect($this->cfg_dbhost,$this->cfg_dbuser,$this->cfg_dbpwd) or

die(“Could not connect:”. mysql_error().””.$sql);

mysql_select_db($this->cfg_dbname);

mysql_query(“SET NAMES UTF8”);//设置数据库的要查询结果的字符集

return$link;

}

function Query($sql)

{

if(!$this->link)

$this->link=$this->connect();

$result= mysql_query($sql,$this->link) or

die(“Could not query:”. mysql_error().””.$sql);

return$result;

}

function getAll($sql)

{

$res=$this->Query($sql);

if($res!== false)

{

$arr= array();

while($row= mysql_fetch_assoc($res))

{

$arr[]=$row;

}

return$arr;

}

else

{

return false;

}

}

function getAll_cache($sql)

{

$res=$this->Query($sql);

if($res!== false)

{

$arr= array();

while($row= mysql_fetch_assoc($res))

{

$arr[]=$row;

}

return$arr;

}

else

{

return false;

}

}

function getOne($sql,$limited= false)

{

if($limited== true)

{

$sql= trim($sql.' LIMIT 1');

}

$res=$this->Query($sql);

if($res!== false)

{

$row= mysql_fetch_row($res);

if($row!== false)

{

return$row[0];

}

else

{

return'';

}

}

else

{

return false;

}

}

/**

*得到子栏目ID

*$reid上线id

*/

function get_child($reid)

{

$child_sql=”SELECT id FROM dede_arctype WHERE reid=”.$reid;

$res=$this->getAll($child_sql);

if(empty($res)){

return$reid;

}

foreach($res AS$row)

{

if(!empty($row['id']))

{

$arr[]=$row['id'];

$this->get_child($row['id']);

}

}

$str= join(“,”,$arr);

return$str;

}

/**

*得到子栏目名称与id

*$reid上级id

*/

function get_child_name($reid)

{

$child_sql=”SELECT id,typename,reid FROM dede_arctype WHERE reid=”.$reid;

$res=$this->getAll($child_sql);

return$res;

}

function get_ic_name($id)

{

$child_sql=”SELECT typename FROM dede_arctype WHERE id=”.$id;

$res=$this->getAll($child_sql);

return$res;

}

/*

*数据查询

*$flag(需要查询的标记例头条[h]推荐[c]幻灯[f]特荐[a]滚动[s]加粗[b]图片[p]跳转[j])

*$typeid需要查询的栏目id(22,23,24,25)

*$len需要查询的数据长度如果$len是数据就是limit 1,100形式如果是字符就是limit 100如果$len不存就是不限止条数

**/

function query_data($queryInfo)

{

$queryInfo['flag']?$flag=$queryInfo['flag']:$flag= false;

$typeid=$queryInfo['typeid'];

$queryInfo['len']?$len=$queryInfo['len']:$len= false;

$field=$queryInfo['field'];

$queryInfo['order']?$order=$queryInfo['order']:$order= false;

$queryInfo['channel']?$channel=$queryInfo['channel']:$channel= false;

$queryInfo['where']?$where=” AND”.$queryInfo['where']:$where=””;

$queryInfo['typeid2']?$typeid2=”AND typeid2 in(“.$queryInfo['typeid2'].”)”:$typeid2=””;

$queryInfo['table']?$table=$queryInfo['table']:$table=”dede_archives”;

//定义查询数据标识(头条,图片,推荐)

if($flag)

{

$flag=”and find_in_set('$flag',flag)”;

}else{

$flag=””;

}

//查询条数

if($len)

{

if(is_array($len))

{

$len=”limit”.$len[0].”,”.$len[1];

}else{

$len=”limit 0,”.$len;

}

}else{

$len=””;

}

//定义排序条件

if(isset($order)&& is_array($order))

{

$orderarr= array();

foreach($order as$key=>$value)

{

$orderarr[]=$key.””.$value;

}

$orderstr= join(“,”,$orderarr);

}

elseif($order=='rand')

{

$orderstr=” rand(),id desc”;

}

elseif($order!='')

{

$orderstr=$order;

}

else

{

$orderstr=”pubdate desc”;

//$orderstr=$order;

}

//定义查询模型

if($channel)

{

$channel=”AND channel=”.$channel;

}elseif($channel==”null”){

$channel=””;

}

else

{

$channel=”AND channel= 1″;

}

//定义查询字段

if($field)

{

if(is_array($field))

{

$field= join(“,”,$field);

}

$sql=”select”.$field.” from”.$table.” WHERE arcrank>-1 and typeid in(“.$typeid.”)”.$typeid2.$flag.””.$channel.”$where ORDER BY”.$orderstr.””.$len;

}else{

//根剧栏目查询新闻

$sql=”select id,title,pubdate from”.$table.” WHERE arcrank>-2 and typeid in(“.$typeid.”)”.$typeid2.$flag.””.$channel.”$where ORDER BY”.$orderstr.””.$len;

//echo”<br/>”;

}

if($queryInfo['debug']){

$debugstr=”this is Debug:[$sql ]”;

return$debugstr;

}

$result=$this->getAll($sql);

return$result;

}

}

谁清楚phpcms和dedecms各个缺点和优点

phpcms优点:

1.模块化安装,非常适合安装,拆卸,和拿到市场上去交易非常方便的。

2.灵活的标签语法,非常强大。

3.缓存做的非常优秀。几乎支持目前主流的几大缓存系统解决方案,file缓存,eaccelerator缓存,memcache缓存,shmop缓存等

4.安全性也不错的。后台为了防范入侵,采用了cookie和session同时存在验证技术,才可以安全进入后台。

多次登录失败,开启验证码功能。防止机器人频繁猜口令。

5.数据库。在根目录下的include目录下,db_access.php db_mssql.php db_mysql.php等,就照着他的方法,在增加几个也没问题的。

6.兼容性。是在php4的基础上开发的,所以向下兼容性是不错的。在include/global.func.php这个文件可以看到很多 if(!function_exist()){},这些代码就是为了兼容php4相关函数。

phpcms缺点:

1.后台对应的模块的功能列表url,从数据库中读取的,也即是,安装的时候,将url写入数据库了。这个如果二次开发要修改的话,不是很方便的,最好是写到文件中,读取文件内容,方便开发者开发,而且也更容易维护,如果是出于安全考虑的话,不妨加下密也可以的。

2.分部式。后台的某些功能模块,还是要调用各个应用模块的admin部分,相关*.inc.php文件.如果我要把其中某个模块或应用独立出去部署到其他的服务器上,就不方便了。

3.数据库设计问题,后台开设模型时,表的引擎只能是myIsam,而不能选择其他的,字段的类型,比如要开设一个字段为number,类型为int,但是在新增加的模型表中还是以varchar出现,而不是int,长度是默认的255.modelfiled表,才发现该系统是将类型写到该表中了。

4.加密/解密程序。目前已经在想相关安全网站已被爆以破解。这也不是什么新闻了。在开发中,关注下相关安全厂商发布的漏洞。

5.数据库抽象层。就以上提到的几个数据库文件。 db_mssql.php db_mysql.php db_access.php等对于数据库分布式,应该没问题的。数据库抽象层处理数据比较快,且快平台更容易且更容易维护,这个是需要考虑的。

Dedecms功能实用,模板功能使用简单。

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享