双风格问题
发布于:2022-01-17 09:50:54
#1 soseek
我用想到这种方式
$k=$this->spArgs("skin");
if($skin==""){
$this->display('index.html');
}else{
$this->display('index2.html');
但是这样一来每个控制器都必须重复添加,
不知道有什么其他好的方式吗
2011-01-28 20:29:21
#2 jake
每个风格都放一个文件夹,然后当每个用户进来的时候,都可以设置自己的风格,设置后存在SESSION中(还可以存到数据库或COOKIE内),然后
$this->display($_SESSION['skin'].'/index.html');
当然,$_SESSION['skin']是那个文件夹的名字。
2011-01-28 20:37:45
#3 soseek
是咯spArgs函数即可
2011-01-28 23:08:55
#4 soseek
回复 2 jake sp中使用cookie需要声明吗
session_start();
$_SESSION["skin"] = "m";
2011-01-28 23:18:37
#5 jake
回复 jake
sp中使用cookie需要声明吗
session_start();
$_SESSION["skin"] = "m";
soseek 发表于 2011-1-28 23:18 
cookie可以单独设置,用setcookie
2011-01-29 04:05:42
#6 soseek
回复 5 jake 有setcookie这个函数的吗?
对了老大,我想让如果$_SESSION["skin"] = ""时就赋值m,这样该在哪个文件夹就设置全局函数呢?而且skin的值可以随时通过$get改变该怎么处理?
谢谢老大啦,嘻嘻
2011-01-29 14:02:05
#7 jake
setcookie是PHP设置COOKIE的函数。
http://cn2.php.net/manual/en/function.setcookie.php这种全局的设置,可以直接放到入口文件的全局位置:require("SpeedPHP.php");和spRun();中间。
require("SpeedPHP.php"); // 设置一下路径
$_SESSION['skin'] = ($_GET['skin']) ? $_GET['skin'] : 'm'; // 当$_GET['skin']存在就是$_GET['skin'],不存在就是m
spRun();
2011-01-29 14:07:15
#8 soseek
回复 7 jake 老大,我还可以问个问题吗?
当$_GET['skin'](值只能是w或者m,其他的赋值为m)有值时优先赋值给SESSION['skin']否则SESSION['skin']则使用cookie本身的值,如果GET和cookie都没有值就赋值为m.
要写这段代码,如果要用类似
$_SESSION['skin'] = ($_GET['skin']) ? $_GET['skin'] : 'm'; 这样的简化方式来写该如何编写呢?(>_<)
2011-01-30 05:49:05
#9 jake
三元运算符是简单做一下判断,如果太复杂,最好用if-else,这样会比较清晰。
2011-01-30 08:43:28