PIXNET Logo登入

互聯網 - 大數據

跳到主文

本部落格為互聯網熱門頭條訊息管理中心

部落格全站分類:生活綜合

  • 相簿
  • 部落格
  • 留言
  • 名片
  • 3月 09 週四 201720:24
  • 用php 進行對文件的操作 (上)


文章出處
如何讓自己磁盤中的文件夾和目錄顯示在網頁上?那就來看一下,用php是怎么來操作他們的吧
php中文件,一般包含兩塊內容,文件和目錄
先來一句一句的看代碼,及他的作用
運行后看一下結果
file 指的是文件的意思
再來換個路徑
運行后
這里的dir是目錄的簡寫
其實判斷文件的類型就兩種,是文件還是目錄
這里寫的路徑都是在當前目錄下建的文件和目錄,如圖
wenjiancaozuo.php  是當前在寫代碼的文件名
qq.txt      111.php    這三個都在同一目錄下的,如果自己要寫的話,可以隨便起名字
接下來繼續來看
上句代碼說過了  dir  是目錄的簡寫,經過判斷文件的類型 111.php 就是目錄,那運行這句代碼,看他會返回什么內容吧
再來看非目錄會返回什么值
如果把上句代碼中dir 換成file  也是可以的  意思就是判斷文件是不是文件,是的話返回true ,不是的話返回false
接下來再說一下文件屬性
什么叫做文件屬性呢? 截個圖給大家看一下
像這種的就叫文件屬性
還是來一句一句的看代碼
還是需要一個文件的路徑
用的是qq.txt 的
看一下運行后的結果
得出的是一個時間戳
把它轉換一下能看懂的
使用date方法    
看一下運行結果
和文件中顯示的時間是一樣的
再來看一下
和上句就差一個字母,運行的結果和上次訪問時間是一樣的
這個也是差一個字母,和上面兩種時間運行結果是一樣的
來看一下運行結果
文件里面是沒有任何內容的,所以文件大小為0
接下來往里面輸入點內容,然后再看運行結果
然后運行剛才的那句代碼,結果為:
這個文件是存在的,運行一下看看會返回什么內容
再寫個不存在的文件路徑,看看會返回什么值
運行后
說一下文件路徑
運行一下
顯示了服務器的根路徑
這是從上級目錄下找的一個文件
運行后
顯示的是那個文件的文件名
basename 還有一種用法,可以寫兩個參數
看一下運行的結果
看一下運行結果
除去文件名就剩兩個點了
運行后
返回的是數組
看一下運行結果
 
 
看一下運行結果
可以根據括號里面參數的不同,返回的結果也會不同
比如:
 
這樣找到的就是后綴有.txt的
這樣找到的文件就是后綴有.php的
可以用上面的遍歷方法,把111.php目錄下的文件都遍歷出來
看一下運行結果
來看一下運行的結果
驗證一下,看看結果5是不是對的
3+2   結果是5
看一下這個運行的結果是什么
當前目錄下所有的文件
要是想獲取帶有路徑的文件名,可以這樣寫
看一下運行的結果
上面有一個.還有..       這里要注意一下
.  是代表當前目錄   ..代表上級目錄
一般操作的話,注意要把那兩個排除掉
//獲取某一個目錄下所有文件的大小
function Fsize($fname)
{
$size = 0;
$dir = opendir($fname);
while($u = readdir($dir))
{
if($u=="." || $u=="..")
{
}
else
{
$zfname = $fname."/".$u;
if(is_file($zfname))
{
$size +=filesize($zfname);
}
}
}
//找到子目錄,獲取子目錄下文件大小
rewinddir($dir);
while($u = readdir($dir))
{
if($u=="." || $u=="..")
{
}
else
{
$zfname = $fname."/".$u;
if(is_dir($zfname))
{
$size += Fsize($zfname);
}
}
}
closedir($dir);
return $size;
}
echo Fsize("./111.php");

這個是取文件的大小
來運行一下
驗證一下
再找個有內容的文件
把路徑換成這個,看一下運行的結果
來驗證一下
 
好了,明天再給大家發文件的操作(下),可以用代碼就能完成對文件的增刪
(繼續閱讀...)
文章標籤

AutoPoster 發表在 痞客邦 留言(0) 人氣(0)

  • 個人分類:生活學習
▲top
  • 3月 09 週四 201720:24
  • Smarty模板的基礎


文章出處
對前后端進行分離
如果要用的話,要從網上把smarty文件下載下來,才能用
smarty的核心是一個類
建一個php文件,寫一個類文件
<?php
class smarty
{
public $left = "{"; //左分隔符
public $right = "}"; //右分隔符
public $arr = array(); //存儲變量
//向模板里面注冊變量

function assign($key,$value)
{
$this->arr[$key] = $value;
}
//顯示模板
function display($name)
{
//找到模板路徑
$url = "/".$name;
//模板讀取
$str = file_get_contents($url);
//將str里面的某些內容(變量)做了替換
//將模板里面的<{$aa}> 替換成 <?php echo $arr[aa]
//將替換好的字符串保存到編譯好的文件

file_put_contents($filename,$str);
//將編譯好的文件拿到當前頁面顯示
include($filename);
}
}

來看一下這個方法是什么個原理,看一下效果
在這個目錄下建個php文件
<?php
include("../init.inc.php");
$smarty->assign("ceshi","你好"); //注冊變量的方法
$smarty->display("test.html");

然后再在這個目錄下寫個html文件
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標題文檔</title>
</head>
<body>
<{$ceshi}>
</body>
</html>

然后運行php文件,看看能出來什么效果
 
 
它輸出了html文件里面的內容
這樣就能知道php文件里面的display是干嘛了,是把html文件里面的模板放到php這個頁面來顯示
然后再把里面的變量解析
這樣就能實現了前后端分離了,訪問的頁面不一定是要顯示的頁面
如果html里面用到了圖片或樣式表,相對于我們訪問的文件來找,并不一定是html
 來看一下一個真正的smarty類
這是從網上下載的一個smarty文件
有幾個文件是自己后來加的,剛下的時候文件沒有那么多
其中這個文件是比較重要的,是smarty的一個入口文件
再就是這個文件
點開它,有smarty的核心類
里面的內容邏輯和剛才寫的那個簡單文件差不多,它里面有很多成員變量
libs是smarty的一個核心目錄
里面的plugins是存放插件的一個文件
sysplugins是存放系統插件
cache是用來放緩存文件
configs用來放配置文件
templates放模板文件
templates_c 用來放編譯好的文件
來看一下入口文件的內容,也就是init.inc.php里面的內容
<?php
define("ROOT",str_replace("\\","/",dirname(__FILE__)).'/'); //常量ROOT中指定項目根目錄
//echo str_replace("\\","/",dirname(__FILE__)).'/'; //獲取當前文件所在的位置

require ROOT.'libs/Smarty.class.php'; //加載Smarty類文件
$smarty = new Smarty(); //實例化Smarty對象
define("CSS_PATH","/project/css/");
define("JS_PATH","/project/js/");
//$smarty -> auto_literal = false; //就可以讓定界符號使用空格
$smarty->setTemplateDir(ROOT.'templates/'); //設置所有模板文件存放位置
//$smarty->addTemplateDir(ROOT.'templates2/'); //添加一個模板文件夾

$smarty->setCompileDir(ROOT.'templates_c/'); //設置編譯過的模板存放的目錄
$smarty->addPluginsDir(ROOT.'plugins/'); //設置為模板擴充插件存放目錄
$smarty->setCacheDir(ROOT.'cache/'); //設置緩存文件存放目錄
$smarty->setConfigDir(ROOT.'configs/'); //設置模板配置文件存放目錄
$smarty->caching = false; //設置Smarty緩存開關功能
$smarty->cache_lifetime = 60*60*24; //設置緩存模板有效時間一天
$smarty->left_delimiter = '<{'; //設置模板語言中的左結束符
$smarty->right_delimiter = '}>'; //設置模板語言中的右結束符
?>

在網址輸入入口文件的地址,輸出的是入口文件的目錄
在入口文件里其實默認的分隔符是花括號,但為了避免出問題就加上了尖括號
 
(繼續閱讀...)
文章標籤

AutoPoster 發表在 痞客邦 留言(0) 人氣(3)

  • 個人分類:生活學習
▲top
  • 3月 09 週四 201720:24
  • Smarty變量


文章出處
先來看一下smarty的注釋方法
然后運行,查看一下源代碼
html和smarty的注釋區別就是源代碼中能看見html的注釋代碼,而看不到smarty里面的注釋代碼
再來看看,smarty中能讀字符串,看看能不能把數組讀出來
php文件中
<?php
include("../init.inc.php");
$smarty->assign("ceshi","你好"); //注冊變量的方法
$arr = array(1,2,3,4,5);
$smarty->assign("shuzu",$arr);
$smarty->display("test.html");

html文件中
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標題文檔</title>
</head>
<body>
<{$ceshi}>
<{$shuzu[0]}>
</body>
</html>

看一下運行的結果
把數組成功取出來了
 再來看取關聯數組
php文件
<?php
include("../init.inc.php");
$smarty->assign("ceshi","你好"); //注冊變量的方法
$arr = array("one"=>"hello","two"=>"world");
$smarty->assign("shuzu",$arr);
$smarty->display("test.html");

html文件
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標題文檔</title>
</head>
<body>
<{$ceshi}>
<{$shuzu["one"]}>
</body>
</html>

運行一下
也成功的輸出了
smarty中也支持點語法,如圖
.one也可以成功輸出
取two的值就.two
取到的值
 再來看看對象支不支持
<?php
include("../init.inc.php");
$smarty->assign("ceshi","你好"); //注冊變量的方法
class Ren
{
public $name="zhangsan";
}
$r=new Ren();
$smarty->assign("r",$r);
$smarty->display("test.html");

html中
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標題文檔</title>
</head>
<body>
<{$ceshi}>
<{$r->name}>
</body>
</html>

運行后
說明這個變量是支持任何類型的
有一個標簽,可以讓里面的內容不參與解析
運行后
被原樣輸出了
這個標簽可以加在js或css外層,為了防止解析出錯
再來試一下,通過配置文件來做元素的樣式
配置文件是寫在這個目錄下的
 
 自定義一個文件,censhi   配置文件的后綴都是.conf
里面隨便寫兩個樣式
然后還是用test.php和test.html  這兩個文件來做
html里面的內容
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標題文檔</title>
</head>
<body>
<{config_load file='ceshi.conf'}> <!--調了一個函數,傳了一個參數-->
<div style="width:100px; height:100px; background-color:<{#color#}>">
</div>
</body>
</html>

php文件中
<?php
include("../init.inc.php");

$smarty->display("test.html");

運行后
在從配置文件中改個顏色試試
其他兩個文件的內容不用動
運行后
配置文件中還可以這樣寫
相當于把這些樣式分了一些類
來看一下配置文件中有兩個color該怎么取
如果取第二個的話在引入配置文件時后面還需要加上這樣一句話
運行后看看
取到了two下面的color,為紅色
還可以這樣改
運行后也是紅色
把上面改成one,那么取到的就是綠色
所以這兩種方法都可以用
{$smarty.const}  取常量
舉個例子來看看
php文件中
<?php
include("../init.inc.php");

define("AA","nihao");
$smarty->display("test.html");

html中
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標題文檔</title>
</head>
<body>
<{config_load file='ceshi.conf' section='one'}> <!--調了一個函數,傳了一個參數-->
<div style="width:100px; height:100px; background-color:<{$smarty.config.color}>">
</div>
<{$smarty.const.AA}>
</body>
</html>

看看運行的結果
取到了AA的值
所以獲取常量的方法就是
$smarty.const.常量名
這個運行后
輸出的是右分隔符
把r換成l試試
運行后
輸出的是左分隔符
再看一下取時間怎么取
php文件中
<?php
include("../init.inc.php");
$sj=time();
$smarty->assign("sj","$sj");
$smarty->display("test.html");

html文件中
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標題文檔</title>
</head>
<body>
<{$sj}>
</body>
</html>

先來運行一下
取到的是時間戳
php文件不用改變
html文件中要這樣寫才能把時間調出來
 
 運行后
時間按照代碼的格式顯示出來
 
 這是變量調節器,相當于一個函數
smarty可以支持自定義變量調節器
在這個目錄下有很多函數
 
 modifier打頭的是變量調節器
function打頭的是函數
block打頭的是快函數
如果要使用自定義變量調節器的話,可以自己新建一個文件
這個文件就是新建的,要注意格式要對,modifier是打頭的,中間是隨便給他起的一個名字
然后在里面寫上簡單的內容,可以參照它原來有的變量調節器文件來寫
然后php文件中
 
 html文件中
運行一下
mark標簽是標記的意思
如果把html文件中的mark去掉的話
運行后
就沒有黃色標記了
調節器文件中,至少有一個參數,多了不限
這個也可以把當前時間調出來
還是用原來的文件,把數據都改一下就可以
php文件不用改
html文件
運行后
當前時間調取成功
 
(繼續閱讀...)
文章標籤

AutoPoster 發表在 痞客邦 留言(0) 人氣(4)

  • 個人分類:生活學習
▲top
  • 3月 09 週四 201720:24
  • 怎么用php語言來做文件緩存


文章出處
使用緩存能夠讓我們的程序訪問起來更加快速,緩存可以減少對數據庫的操作,體驗起來更好一些,對服務器的壓力也小一些,當然服務速度很快
php文件執行完之后產生的解析完的數據,保存成靜態的網頁,下次打開的這個文件的時候,如果發現之前執行過了,就可以把之前保存的靜態網頁拿出來顯示了
它也有個缺點,就是不能時時的與數據庫同步
 適用范圍,一般的小程序都可以用緩存,對時間要求特別苛刻的,比如搶購什么的就不能使用緩存文件了
寫緩存文件,
一樣要有php文件
php文件還是放在main目錄下
相對應的html文件還是寫在對應的文件夾下
先把數據庫的一系列數據輸出一下
php文件中
<?php
$filename = "../cache/huancun.html";
//緩存文件的路徑
include("../init.inc.php");
include("../DBDA.php");
$db = new DBDA();
$sql = " select * from nation ";
$arr = $db->Query($sql);
$smarty->assign("shuzu",$arr);
$smarty->display("huancun.html");

html文件中
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標題文檔</title>
</head>
<body>
<h1>數據列表</h1>
<table width="100%" border="1" cellpadding="0"
cellspacing
="0">
<tr>
<td>代號</td>
<td>名稱</td>
<td>操作</td>
</tr>
<{foreach $shuzu as $v}>
<tr>
<td><{$v[0]}></td>
<td><{$v[1]}></td>
<td>操作</td>
</tr>
<{/foreach}>
</table>
</body>
</html>

運行后數據就顯示出來了
所謂的緩存,并不是把我們寫的這些代碼存下來,審查一下它的源代碼
而是把這些保存下來,變成一個靜態的,當刷新的時候,直接把已經保存下來的數據直接顯示出來,就不再重新訪問數據庫了,這樣節省了很多時間,那如果數據庫里面的數據有所變動的話,再走緩存文件就不能把新的數據及時反饋出來了
上面的代碼是沒有寫緩存操作的樣子,下面再來做一下緩存操作
html文件中不用修改
php文件中
<?php
$filename = "../cache/huancun.html";
//緩存文件的路徑
//判斷緩存文件是否存在,如果緩存文件存在直接調用緩存文件,如果緩存文件不
//存在重新緩存

if(file_exists($filename))
{
//直接調用緩存
include($filename);
}
else
{
//重新緩存
ob_start(); //開啟內存緩存
include("../init.inc.php");
include("../DBDA.php");
$db = new DBDA();
$sql = " select * from nation ";
$arr = $db->Query($sql);
$smarty->assign("shuzu",$arr);
$smarty->display("huancun.html");
$str = ob_get_content(); //獲取內存中的緩存內容
file_put_contents($filename,$str);
ob_flush(); //關閉內存緩存
echo "#########################";
}

這個一開始運行肯定沒有緩存,所以會輸出最后的一串井號,再次刷新時就有緩存了,所以直接運行上面的代碼,下面的代碼就不走了
運行一下,看看效果
再來看一下cache文件夾里面有沒有huancun.html文件
然后點開看一下
以靜態的方式保存了這張表格
再刷新一下那張表格
 
 刷新后表格下面的一串井號消失了
再刷新后也沒有井號
所以走的是緩存文件
我們從數據庫改個數據看看效果
改了第一個漢族
然后再刷新一下表格
數據并沒有改變
說明緩存文件已經有了,再刷新就只走緩存文件了
再把這個緩存改進一下,只需改php文件就可以
給它加上有效期,每隔十秒重新緩存一次,這樣就不會出現數據庫改變,數據刷新不出來的結果了
刷新后井號消失
十秒后刷新,原來的緩存文件過期,就會重新緩存一遍,井號就又會出現
這樣就是靜態緩存的一種方法
分頁的話也可以使用
php文件中
<?php
$p=1;
if(!empty($_GET["page"]))
{
$p=$_GET["page"];
}
$filename = "../cache/huancun{$p}.html";
//緩存文件的路徑
$time=30; //緩存有效期30秒
//判斷緩存文件是否存在,如果緩存文件存在直接調用緩存文件,如果緩存文件不
//存在重新緩存

if(file_exists($filename) && ((filemtime($filename) + $time)>=time()))
{
//直接調用緩存
include($filename);
}
else
{
//重新緩存
ob_start(); //開啟內存緩存
include("../init.inc.php");
include("../DBDA.php");
$db = new DBDA();
$sall = "select count(*) from nation";
$zts = $db->StrQuery($sall);
include("../page.class.php");
$page = new Page($zts,5);
$sql = " select * from nation ".$page->limit;
$arr = $db->Query($sql);
$smarty->assign("fpage",$page->fpage());
$smarty->assign("shuzu",$arr);
$smarty->display("huancun.html");
$str = ob_get_contents(); //獲取內存中的緩存內容
file_put_contents($filename,$str);
ob_flush(); //關閉內存緩存
echo "#########################";
}

html文件中,只需要輸出個分頁就好了
然后運行
再點擊第二頁
第三頁四頁都可以點擊
看一下cache目錄下的文件
每個分頁的內容都被保存下來了
30秒內刷新走的都是緩存文件
無論分多少頁都可以
 
(繼續閱讀...)
文章標籤

AutoPoster 發表在 痞客邦 留言(0) 人氣(6)

  • 個人分類:生活學習
▲top
  • 3月 09 週四 201720:24
  • 用php 進行對文件的操作 (下)


文章出處
繼續來說文件操作
新建一個文件夾或是刪除一個文件夾,并不是只有右擊一種方法,還可以用代碼來操作
先來看沒有運行代碼之前的目錄下有哪些文件
點擊運行代碼后再來看有沒有增加名為aa的文件夾
添加成功
再來看刪除怎么做
點擊運行后,名為aa 的文件夾被刪除
當然這里要注意一下,代碼刪除的只能是空文件夾,有內容的文件夾是刪不了的
前面的路徑是老路徑,后面的是新路徑并且給它改了一個名字
先看一下沒運行前的文件
運行代碼后,原先的目錄里沒有那個文件夾了
再看它的上級目錄
有tupian.php  這一項
 
運行后
創建成功
前面的是老路徑,后面的是新路徑
運行后看一下文件有沒有復制成功
 
 運行成功
運行后,看文件還有沒有
名為22.txt的文件已經被刪除
在當前目錄下的22文檔中寫點內容,然后保存
然后是代碼部分
運行后,看看能不能把內容輸出
在網頁上輸出成功
這個方法不僅可以獲取本地內容,還可以獲取遠程內容,拿連接百度做個列子
運行后
獲取的是百度的頁面
前面的參數是文件路徑,后面的是要即將添加的內容
運行后看文件內有沒有添加上內容
 
 添加成功
看一下運行結果
看一下運行結果
里面之前的內容都沒有了,而是重新輸入的內容
把w改成a
 
運行一下
沒有重寫內容而是追加了一句
 
 
運行一下
 
出來的是文件內 內容的第一個字母
多復制兩句看看
運行后
這個方法可以讀取內容,每一次讀取一個字符
運行前先補充一下文件里面的內容,然后保存
運行代碼
 
 讀取到的是第一行
再多寫一句,運行
讀取到的是第一行和第二行的內容
看一下運行結果
輸出的是三個字符串
上面能讀寫的方法,只能對于系統自帶的文件,例如.txt    .php  等,它只能夠操作服務器的,不能操作客戶端
上面講了一個刪除文件夾的方法,但是只能刪除沒有內容的文件夾,該怎么刪除有內容的文件呢,看一下做法
就刪這個文件夾吧
 
 
運行一下,再看看目錄下還有沒有這個文件夾
 
刪除成功
 
(繼續閱讀...)
文章標籤

AutoPoster 發表在 痞客邦 留言(0) 人氣(1)

  • 個人分類:生活學習
▲top
  • 3月 09 週四 201720:24
  • 制作點餐系統中的點餐功能


文章出處
點餐功能和購物差不多,把選中的商品存到session內,然后再顯示,下單
先看一下操作的樣式
首先登陸
點擊任何一個都可以彈出這個窗口,這個窗口的制作在前幾篇博客中有它的源代碼,稍作更改就可以
登陸后是這樣的
點擊幾樣餐品
可以通過刪除,來減數量
點擊下單
點餐的詳情便在另一個網頁顯示
再來看代碼,
桌號是通過數據庫遍歷顯示的,已點餐桌號為黃色,未點餐的桌號為灰色,所以數據庫內它還有個狀態
來看輸出桌號的部分代碼
然后為其添加樣式
#canzhuo{ font-size:40px; color:#FFF; font-weight:bold;width:150px; height:150px; float:left; margin:5px; background-image:url(../%E5%9B%BE%E7%89%87/QQ%E5%9B%BE%E7%89%8720170216123120.jpg); background-repeat:no-repeat; background-size:150px 150px; text-align:center; vertical-align:middle; line-height:150px;}
#canzhuo1
{ font-size:24px;width:150px; height:150px; float:left; margin:5px; background-color:#FC3; text-align:center; vertical-align:middle; line-height:150px;}
.aa
{ width:200px; height:50px; font-size:16px; float:left; margin:5px; background-color:#3F6;text-align:center; vertical-align:middle; line-height:50px}
#aa:hover
{ background-color:#9FC; cursor:pointer}
.aa1
{ width:200px; height:50px; font-size:16px; float:left; margin:5px; background-color:#999;text-align:center; vertical-align:middle; line-height:50px}

js部分
<script type="text/javascript">
//彈出登錄框
$(document).ready(function(e) {
$(
'.aaa').click(function(){
var zh = $(this).text();
var html = "<br><form action='./diancanchuli.php' method='post'><input type='text' hidden='hidden' name='zhuohao' value='"+zh+"'/><div style='color:#000; font-size:20px'><b>工&nbsp;&nbsp; 號:</b>&nbsp;<input type='text' name='code' /></div><br/><div style='color:#000; font-size:20px'><b>服務員:</b><input type='text' name='mz' /></div><br/><div><input type='submit' value='登錄' /></div></form>";
var button ="<input hidden='hidden' value='確定' /><input hidden='hidden' value='取消' />";
var win = new Window({
width :
400, //寬度
height : 300, //高度
title : '點餐登錄', //標題
content : html, //內容
isMask : false, //是否遮罩
buttons : button, //按鈕
isDrag:true, //是否移動

});
})
});
$(document).ready(
function(e) {
$(
'.aaaa').click(function(){
var zh = $(this).text();
var html = "<br><form action='./diancanchulia.php' method='post'><input type='text' hidden='hidden' name='zhuohao' value='"+zh+"'/><div style='color:#000; font-size:20px'><b>工&nbsp;&nbsp;&nbsp; 號:</b><input type='text' name='code' /></div><br/><div style='color:#000; font-size:20px'><b>服務員:</b><input type='text' name='mz' /></div><br/><div><input style='width:50px; height:30px' type='submit' value='登錄' /></div></form>";
var button ="<input hidden='hidden' value='確定' /><input hidden='hidden' value='取消' />";
var win = new Window({
width :
400, //寬度
height : 300, //高度
title : '點餐登錄', //標題
content : html, //內容
isMask : false, //是否遮罩
buttons : button, //按鈕
isDrag:true, //是否移動

});
})
});

當然在body標簽上面還要引入jquery、已經關于彈出框的樣式以及js文件,在前幾篇博客中有講
完成后,便可以做第二個頁面,出現了兩個處理頁面
一個是diancanchuli.php,還有一個是diancanchulia.php
一個是給空桌點餐,一個是加餐,要連接的網頁不一樣,所以要分著執行
今天先講空桌點餐
處理頁面的源代碼
<?php
session_start(); //用的session來儲存數據
include("DBDA.php");
$db = new DBDA();
$yh = $_POST["code"];
$mz = $_POST["mz"];
$sql = "select name from users where code = '{$yh}'";
$attr = $db->Query($sql);
$name = $attr[0][0];
$zhuohao=$_POST["zhuohao"];
if(!empty($mz) && $mz==$name) //這里是密碼非空,并且密碼等于用于輸入的密碼
{
$_SESSION["zh1"]=$zhuohao;
$_SESSION["code"] = $yh; //session中存的用戶名等于用戶輸入的用戶名
header("location:diancan2.php");
}
else
{
echo "登錄失敗!";
}

接下來做登陸后出現的點餐頁面
先來看點餐頁面已點餐部分的php代碼
<form action="xiadan.php" method="post">
<?php
session_start();
$yh = $_SESSION["code"];
$zh1=$_SESSION["zh1"];
include("DBDA.php");
$db = new DBDA();
$sql= "select name from users where code='{$yh}'";
$attr = $db->Query($sql);
echo "<h3>桌號:$zh1 服務人員:{$attr[0][0]}<h3>";
?>
<table width="100%" border="1" cellpadding="0" cellspacing="0">
<tr>
<td>名稱</td>
<td>單價</td>
<td>數量</td>
<td>刪除</td>
</tr>
<?php
//session_start();
//include ("DBDA.php ");
//$db = new DBDA();

if(!empty($_SESSION["gwc"]))
{
$attr = $_SESSION["gwc"];
foreach($attr as $k=>$v)
{
$sql = "select * from caidan where code='{$v[0]}'";
//執行
$attra = $db->Query($sql);
//var_dump ($attra);
echo "<tr>
<td>{
$attra[0][2]}</td>
<td>{
$attra[0][0]}</td>
<td>{
$v[1]}</td>
<td><a href='canpinshanchu.php?sy={
$k}'>刪除</a></td>
</tr>
";
}
//var_dump($_SESSION["gwc"]);
}
?>
</table>
<input id="f1" type="submit" value="下單" />
</form>

通過session來傳,以及儲存數據
餐品也是通過遍歷數據庫來顯示出來的
引用了bootstrap的標簽頁,那里的代碼就不顯示了,主要打一下php部分的
 <?php
//include("DBDA.php");
//$db = new DBDA();

$sql = "select * from caidan where fcode =('1101')";
$attr = $db->Query($sql);
foreach($attr as $v)
{
$v1 = $v[4];
$sql1 = "select isok from caidan ";
$attr1 = $db->StrQuery($sql1);
if($attr1=$v1)
{
echo "<div id='aa1'>{$v[2]}</div>";
}
else
{
echo "<div id='aa'><a href='gwc.php?code={$v[1]}'>{$v[2]}</a></div>";
}
}
?>

只展示了一種餐品,所有的餐品都在一張表中,所以使用的code和fcode來給它們分類
再來看gwc.php代碼
<?php
session_start();
//將傳過來的水果加到購物車
$code = $_GET["code"];
//$_SESSION["gwc"];
//1.如果是第一次點擊加購物車,做一個二維數組扔到SESSION里
//2.如果不是第一次點擊加購物車并且該水果第一次點擊,做一個該水果的一維數組扔到SESSION的二維數組里面
//3.如果不是第一次點擊加購物車并且該水果不是第一次點擊,將SESSION數組里面該水果的數量加1

if(empty($_SESSION["gwc"]))
{
//1.如果是第一次點擊加購物車,做一個二維數組扔到SESSION里
$attr = array(
array($code,1)
);
$_SESSION["gwc"] = $attr;
}
else
{
//判斷該水果代號是否在SESSION數組里面出現
$attr = $_SESSION["gwc"];
if(PanDuan($code,$attr))
{
//3.如果不是第一次點擊加購物車并且該水果不是第一次點擊,將SESSION數組里面該水果的數量加1
/*foreach($attr as $v)
{
if($code == $v[0])
{
$v[1] = $v[1]+1;
}
}
*/
for($i=0;$i<count($attr);$i++)
{
if($code == $attr[$i][0])
{
$attr[$i][1]++;
}
}
$_SESSION["gwc"]=$attr;
}
else
{
//2.如果不是第一次點擊加購物車并且該水果第一次點擊,做一個該水果的一維數組扔到SESSION的二維數組里面
$arr = array($code,1);
$attr[] = $arr;
$_SESSION["gwc"]=$attr;
}
}
//判斷v是不是在arr里面出現
function PanDuan($v,$arr)
{
$n = 0;
foreach($arr as $a)
{
if($v == $a[0])
{
$n++;
}
}
if($n==0)
{
return false;
}
else
{
return true;
}
}
header("Location:diancan2.php");

這個處理頁面是可以通用的,第一次使用它,是做的一個購買水果網,中間的內容是不需要改的,只需要改最后一句就好了
點餐頁面的核心代碼都說了,其余的就是一些樣式,還有要引入bootstrap的一些文件,在之前的博客中也有提到
再來看處理頁面,也就是下單頁面
<?php
session_start();
$yh = $_SESSION["code"];
include("DBDA.php");
$db = new DBDA();
$sqlo= "select name from users where code='{$yh}'";
$attro = $db->Query($sqlo);
//session_start();
//include("DBDA.php");
//$db = new DBDA();

$zh1=$_SESSION["zh1"];
$attr = $_SESSION["gwc"];
$sqlv = "delete from yidiancan where code = '{$zh1}' ";
$db->Query($sqlv,0);
foreach($attr as $v)
{
$sql = "select * from caidan where code='{$v[0]}'";
//
//
//執行
$attra = $db->Query($sql);
$danjia = "{$attra[0][0]}";
$fuwuyuan = "{$attro[0][0]}"; //發送人,也就是取得用戶的姓名
$shijian = date('Y-m-d H:i:s'); //當前時間
//

//
//造連接對象
//$db = new MySQLi("localhost","root","726","test4");

//
//寫SQL語句
//

$sqll = "update caidan set number=number+{$v[1]} where code='{$v[0]}' ";
$db->Query($sqll,0); //執行語句
$sqli = "insert into yidiancan values('','{$zh1}','{$v[0]}','{$danjia}','{$v[1]}','{$fuwuyuan}','{$shijian}')";
$db->Query($sqli,0);
$sql = "update diancan set isok='1' where name='{$zh1}'";
$db->Query($sql,0); //執行語句
}
header("Location:yidiancan.php");

session開啟把所有的數據整理好,交給每一個變量
然后轉到yidiancan.php
<table width="80%" border="1" cellpadding="0" cellspacing="0" style="margin-left:10px">
<tr>
<td>餐品</td>
<td>單價</td>
<td>數量</td>
<td>服務員</td>
<td>時間</td>
</tr>
<?php
session_start();
$zh1=$_SESSION["zh1"];
include("DBDA.php");
$db = new DBDA();
$sql =" select * from yidiancan where code='$zh1'";
$attr = $db->Query($sql);
foreach( $attr as $v)
{
$cha="select name from caidan where code='{$v[2]}'";
$cp=$db->Query($cha);
echo " <tr>
<td>{
$cp[0][0]}</td>
<td>{
$v[3]}</td>
<td>{
$v[4]}</td>
<td>{
$v[5]}</td>
<td>{
$v[6]}</td>
</tr>
";
}
//session_start();
//include("DBDA.php");
//$db = new DBDA();

$attr = $_SESSION["gwc"];
$sum =0;
foreach($attr as $v)
{
$sql = "select * from caidan where code='{$v[0]}'";
//
//
//執行
$attra = $db->Query($sql);
//var_dump($attra);
$danjia = "{$attra[0][0]}";
//var_dump($v[1]);
$sum=$sum+($danjia*$v[1]);
}
echo "<div id='s1' style='margin-left:10px'>總金額:{$sum}元</div>";
?>
</table>

 
樣式自己去加上就ok了!
因為要連接數據庫,所以在嘗試前先把表建好
(繼續閱讀...)
文章標籤

AutoPoster 發表在 痞客邦 留言(0) 人氣(32)

  • 個人分類:生活學習
▲top
  • 3月 09 週四 201720:24
  • 用phpcms如何將靜態頁面制作成企業網站(上)

文章出處
首先,先要準備好這個靜態網頁的源文件,如圖
bs里面是一些css和js的文件,img則是放圖片的,文件中的index是網頁的首頁
運行一下,看看
是這樣的
然后打開phpcms文件,上篇博客中有提到,把首頁的文件index要放到指定的文件夾下
放到這個路徑下
然后運行一下,看看效果
網頁中沒有了圖片和樣式表,接下來就是把它的圖片和樣式表放到指定的文件夾中,把圖片放到images文件夾里,如圖
 
bs里面有js文件也有css文件,所以,把它放在css和js文件任何一個都可以。如圖

 
 第一步做的就完成了,復制文件到指定文件夾中
運行一下index首頁,還是沒有變,如圖
然后用Dw打開index首頁
一些文件的路徑都是原來的,所以找不到,包括圖片也是
所以我們要做的第二步就是替換目錄
ctrl f  直接查找,如圖
第一個要替換的是bs,看看要替換成什么
打開phpcms的后臺管理
設置安全配置中基本配置那一項
看看各項對應著什么路徑
Dw中查找,填寫內容
{JS_PATH}就代表著,這個路徑,如圖

替換的話,只要含有bs的就全部替換成那個路徑,萬一其中有單詞含有bs那也會被替換,所以還要改
在前面加上雙引號就可以了,基本上bs打頭的,前面都是雙引號
 
 點擊替換全部,一共找到了三項
 
已成功被替換
接下來就是替換img
查找一下img 看看有什么規律
也是雙引號打頭的可以操作
替換全部看一下,有沒有完全替換成功
有class名也是雙引號打頭的被替換掉了,所以這種替換方式不行,撤銷一下
前面的標志重復不行,那就看后面的
然后替換全部
查看一下,替換的都沒有錯
兩個路徑都更換完了,網頁應該就可以正常運行了
phpcms后臺管理更新一下緩存
更新完成后,再點擊生成首頁
查看站點首頁
這個靜態頁面就可以在phpcms中顯示出來了
然后就可以對這個靜態頁面進行操作了
可以通過phpcms提供的一些標簽,來把靜態網頁變成動態網頁
換個標準點的靜態網頁來重新操作,如圖
運行后是這樣的一個靜態網頁
還是重復上面說的那些步驟,復制文件
復制完成后,再就是把index里面的內容更改替換
然后在phpcms后臺管理中更新緩存,生成首頁,查看站點首頁
和第一個靜態頁面的操作步驟一樣
接下要把index首頁,分出兩個部分,頭部和尾部
導航欄的部分是頭部,來看一下審查元素
 
 把header1和往上的內容剪切掉
新建一個文件,把內容復制,起的名字也是固定的,為header然后保存到和index同一路徑里去
頭部操作好了,再把尾部拆出來
再來看底部
同樣的方法,剪切復制到一個新的文件里去,名字也是固定的,footer
然后點擊保存
更新緩存,生成首頁,看一下站點首頁變成什么樣子了
頭部沒有了,可以在里面把頭部再放進去
使用的是phpcms里面的標簽,如圖
把尾部也引入進去
然后更新緩存看一下效果
頭部被成功引入
再看尾部
尾部也是被成功引入
頭部和尾部被拆出來的原因就是,到時候可以重復使用,每個頁面都需要頭部和尾部,如果 有需要的話可以引入就好
下一步做的就是,把header變成動態的
可以看一下
這里面的header是怎么做的
有這樣一句話
標題,可以在后臺管理操作的,不能寫死了,可以復制粘貼一下
 
 把這個改了
還要再加這樣兩句話
phpcms里的標簽都是帶花括號的,這兩句話不加也行,加上最好,網絡優化用的
再往下看是logo,logo在企業網站上很少會更換,所以這里就不做動態了
再往下看是欄目,欄目肯定是要改成動態的
只留這兩項,然后其他的都刪掉
然后用phpcms的標簽把欄目循環遍歷出來
可以參照phpcms v9手冊,去找標簽
花括號里面內容的意思就是   pc標簽,是phpcms的一個簡寫,content代表的是內容,代表取的是欄目寫0的話找的是一級欄目,5是代表的數量,最多只能調5個出來,是站點
根據欄目添加的順序來升序排,相當于王里面填一些參數
查到的數據怎么來顯示?loop標簽。是用來循環遍歷數組的,data代表查到的數據,r代表的小數組
loop中間的內容會循環輸出,把剛才的產品放進去,把產品改為動態的,所以就不能寫產品了
寫這樣顯示的就是名稱了,先運行一下,看看
 
 出現的是phpcms后臺管理里面的內容
還有一個網頁介紹
改成是,它就會在導航欄上出現
 
 欄目已經改好了,每個欄目的連接是#,現在把每個欄目的href地址改一下
運行一下
點擊國內
 
 網頁跳轉相對應的地方
點擊關于我們
也是跳轉到相應的地方去
由于ceshi文件里面只有三個文件,并沒有相對應的list列表,所以它會找默認的內容
首頁跳轉的部分還需要改
保存運行一下
點擊首頁,網址后面不會帶有#
 
 點擊這里的首頁
也會回到首頁
導航的內容和連接都改完了
看一下首頁是怎么變黃的  
首頁比其他的多了一下class名
 在上面加一個判斷語句,判斷一下它是不是首頁
 
 
刪掉這一部分
 
 
在寫下面的判斷語句
 
 
寫在loop標簽里面
然后再把,這一塊,刪掉它
運行一下
 
可以指到那一項,選中哪一項,這樣頭部部分已經改完了,可以直接從后臺管理去操作它,接下來操作footer部分
footer部分和頭部的一樣,logo不用改,電話地址等也不用,下面有個導航欄,把這一塊換掉
修改完成后,運行
點擊國內
成功跳轉
再來看index部分
因為這個頁面,導航下面就是一個大圖,為了以后方便換,也換成動態的,需要在后臺管理那里的欄目再加一行欄目
 
添加欄目
點擊提交
 然后給它添加內容
點擊保存,看一下
這里就有這張圖片了
把首頁的大圖換成這張圖片,看看怎么換
把原來的代碼改成這樣的
然后保存,刷新看一下
圖片已經被成功的替換了
在后臺管理再修改另一張圖片
點擊保存,然后刷新頁面
圖片被成功替換
到管理欄目那里,刪除沒有用的,然后再添加欄目
導航已經被改變了
第一個是承接,承接在管理欄目是13
 
第二個是人才,人才在管理欄目上是11
 
 
第三個是資源,資源在管理欄目上是12
操作的是首頁大圖上的三張小圖
運行一下
點擊人才,達到的是人才頁面
運行成功
其他部分,明天再發
(繼續閱讀...)
文章標籤

AutoPoster 發表在 痞客邦 留言(0) 人氣(1)

  • 個人分類:生活學習
▲top
  • 3月 09 週四 201720:23
  • 用phpcms如何將靜態頁面制作成企業網站(中)


文章出處
 
上篇博客中講到了該修改網頁的中間部分
中間的內容是這樣的,有標題和內容,里面的內容被代碼替代,運行起來就這樣的
里面的內容就可以在后臺管理那里添加
再來看代碼部分
<div class="dt-double" style="left: 18.5%;">
<!--標題-->
<div class="dt-title">
<span class="dt-sp1">行業動態</span>
<a href="{$CATEGORYS[14]['url']}"><span class="dt-sp2" style="color: white;">更多>></span></a>
</div>
<!--展示項-->
{pc:content action="lists" catid="14" order="id DESC" num="4"}
{loop $data $val}
<div class="dt-item">
<a href="{$val[url]}">
<div class="dt-item-title">{$val[title]}</div>
</a>
<div class="dt-item-context">
{$val[description]}
</div>
</div>
{/loop}
{/pc}
</div>

這是行業動態的,資料庫和行業動態一樣,改個catid根據phpcms后臺管理的id來寫
 <!--資料庫-->
<div class="dt-double" style="right: 18.5%;">
<!--標題-->
<div class="dt-title">
<span class="dt-sp1">漢企一一資料庫</span>
<a href="{$CATEGORYS[8]['url']}"><span class="dt-sp2" style="color: white;">更多>></span></a>
</div>
<!--展示項-->
{pc:content action="lists" catid="8" order="id DESC" num="4"}
{loop $data $val}
<div class="dt-item">
<a href="{$val[url]}">
<div class="dt-item-title">{$val[title]}</div>
</a>
<div class="dt-item-context">
{$val[description]}
</div>
</div>
{/loop}
{/pc}
</div>

然后從后臺管理修改試試
在后臺中加了這兩項
更新緩存,看一下站點首頁
從后臺添加的內容已在首頁顯示
再給資料庫加內容
更新緩存看一下首頁
資料庫的內容也被添加上
再來操作這方面的內容
先在header頁面改個數
原先是5,現在改成6
然后在后臺多加一欄目
然后再往里面添加上三項內容先
然后再來看代碼部分
先審查元素,找到其中的一項內容,保留一項的代碼,其他的都刪掉
 <!--優秀產品展示 開始-->
<div class="yxxm">
<div class="yxxm-title">優秀產品展示</div>
<!--展示項-->
{pc:content action="lists" catid="16" order="id DESC" num="6" moreinfo="1"}
{loop $data $val}
<div class="yxxm-item">
<a href="{$val['url']}">
<img src="{$val['thumb']}" /></a>
<div class="yxxm-name">
項目名稱:
<span>{$val['title']}</span>
</div>
<div class="yxxm-user">
客  戶:
<span>{$val['keywords']}</span>
</div>
<div class="yxxm-context">
功  能:
<span style="width: 77%;">{$val['description']}</span>
</div>
<div class="yxxm-context">
開發人員:
<span>
{php list($copyfrom) = explode('|', $val['copyfrom'])}
{$copyfrom}
</span>
</div>
</div>
{/loop}
{/pc}
<!--占位勿刪-->
<div style="clear: both"></div>
</div>
<!--優秀產品展示 結束-->

刷新頁面
這樣剛改的內容就顯示在了首頁上
接下來是公司承接
和上面的操作一樣,只保留一個,然后更改代碼
 <!--公司業務承接 開始-->
        <div class="yw">
            <div class="yw-title">公司業務承接</div>
            <div class="yw-items">
                {pc:content  action="lists" catid="13" order="id DESC" num="8" moreinfo="1"}
                 {loop $data $val}
                
                <div class="yw-item">
                    <img src="{$val['thumb']}" />
                    <div class="yw-item-title">
                    {php list($copyfrom) = explode('|', $val['copyfrom'])}
                    {$copyfrom}
                    </div>
                    <div class="yw-item-context">
                        {$val['description']}
                    </div>
                    <div class="yw-item-price">
                        <span class="price-sp">{$val['title']}</span>
                        <span class="price-sp1">價格:
                            <span class="price-sp2">{$val['keywords']}</span>
                            元</span>
                    </div>
                    <a href="{$val['url']}"><input class="btn_buy" type="button" value="點擊訂購" /></a>
                </div>
                {/loop}
            {/pc}
               
            </div>
            <img src="{IMG_PATH}/images/bk2.png" />
        </div>
        <!--公司業務承接 結束-->

然后給承接欄目添加內容
更新緩存,然后查看首頁
下一項是人才
和上面的承接產品一樣
 <!--優秀人才推薦 開始-->
        <div class="rc">
            <div class="rc-title">優秀人才推薦</div>
            <div class="rc-items">
                <!--人才項-->
                {pc:content  action="lists" catid="11" order="id DESC" num="8" moreinfo="1"}
                 {loop $data $val}
                <div class="rc-item">
                    <a href="{$val['url']}">
                        <img src="{$val['thumb']}" />
                        <div class="rc-item-title">{$val['title']}</div>
                    </a>
                    <div class="rc-item-context">{$val['description']}</div>
                </div>
                {/loop}
            {/pc}
                <!--占位勿刪-->
                <div style="clear: both"></div>
            </div>
        </div>
        <!--優秀人才推薦 結束-->

然后在后臺管理那里添加內容,運行后
 操作 成功
加上上篇博客,這樣首頁就已經替換完了,由靜態頁面變成動態頁面了
再做它的子頁面
在靜態頁面中,它的子頁面應該是這個
在靜態頁面中是這個文件
現在把它復制到phpcms里面,和index路徑一樣
還要改一下文件名,如果是內容頁,名字是list
然后再打開站點首頁,點擊導航欄就會打到子網頁
是這個樣子的
打開list文件,把頭部分的代碼刪掉,引入header文件,如圖
再把頁腳部分代碼替換一下
再來運行看一下
頭部有了
頁腳也有了
然后圖片替換,只有一個
刷新運行一下
 
 導航欄的背景圖就出來了
但是還缺樣式
在list代碼中,再加上一個list樣式
這樣樣式就出來了
再來替換里面的內容
把一側的內容,替換成導航欄
 <!--二級導航 開始-->
<div class="left">
<div style="width: 100%; height: 50px; text-align: center; line-height: 50px; font-size: 18px; font-weight: bold;">導航</div>
<a href="{siteurl($siteid)}">
<div class="left-item">首頁</div>
</a>
{pc:content action="category" catid="0" order="listorder ASC" num="10" siteid="$siteid"}
{loop $data $v}
{if $catid==$v[catid] || $top_parentid==$v[catid]}
<!--判斷顯示的catid,如果是顯示的catid-->
<a href="{$v[url]}"><div class="left-item xuanzhong">{$v[catname]}</div></a>
{else}
<a href="{$v[url]}"><div class="left-item">{$v[catname]}</div></a>
{/if}
{/loop}
{/pc}
</div>
<!--二級導航 結束-->

運行一下
操作成功
 <!--列表區 開始-->
<div class="right">
<div class="list-title">&nbsp;&nbsp;&nbsp;&nbsp;{$CATEGORYS[$catid][catname]}列表</div>

 
點測導航欄的人才
上面的導航欄會有選中的狀態
點擊側導航承接,列表名,會出現對應的名字
 
 再來替換一下列表項的內容
 <!--列表項-->
{pc:content action="lists" catid="$catid" order="id DESC" num="10" page="$page"}
{loop $data $val}
<div class="right-item">
<a href="{$val['url']}">
<div class="item-context">{$val['title']}</div>
</a>
<div class="item-time">{date('Y-m-d H:i:s',$val[inputtime])}</div>
</div>
{/loop}
{/pc}

運行一下
運行成功
這個頁面還有一個友情鏈接,把友情鏈接替換一下
在后臺管理中
這里可以添加友情鏈接,可以添加幾個
然后代碼部分再改一下
 <!--友情鏈接 分割區-->
<div style="width: 100%; height: 40px; line-height: 40px; text-align: center; background-color: #e0e0e0;">
友情鏈接:
{pc:link action="type_list" typeid="0" siteid="1" linktype="0" order="listorder DESC" num="4" return="pic_link"}
<!---linktype="0" 是文字連接,linktype="1" 是logo鏈接-->
{loop $pic_link $v}
<a href="{$v['url']}">{$v['name']}</a>&nbsp;&nbsp;
{/loop}
{/pc}
</div>

運行后
后臺的模塊友情鏈接一共有四個,其中這兩個是文字鏈接,其他兩個是logo鏈接,設置的是顯示文字連接,所以出來的是這兩個
這樣友情鏈接也操作完成了
(繼續閱讀...)
文章標籤

AutoPoster 發表在 痞客邦 留言(0) 人氣(1)

  • 個人分類:生活學習
▲top
  • 3月 09 週四 201720:23
  • phpcms中用到的幾個重要的代碼


文章出處
 
 {pc:content action="lists" catid="12" moreinfo="1" order="id ASC" num="3"}
                    {loop $data $r}
<img src="{$r['thumb']}"  />
{/loop}
{/pc}
一般做企業站時,上面的那句一般用于循環欄目內容,或者是輪播圖,$r 相當于循環的小數組,{$r['thumb']}是圖片,這里要注意,這只是相當于圖片的鏈接,所以不要單獨寫,要把整體的圖片格式一起寫出來
如果要引用的話,只需要改兩個地方就可以catid是指那個欄目的的id,還有num  ,num是最多顯示幾個的意思,比如你要輪播三張圖片吧,那num=3,如果設置num=2的話,就會出錯
order是排序的意思,id ASC 是按照id的升序來排,如果想要降序的話就是id DESC
 {pc:content action="lists" catid="12" moreinfo="1" order="id ASC" num="3"}
                    {loop $data $val}
<img src="{$val['thumb']}"  />
{/loop}
把$r改成$val了,就是這一項圖片的值,和上面的差不多,只不過$r是用于遍歷多張,或多項,$val一般用于一項欄目,去找具體的值
{$val['title']}
{$val['keywords']}
{$val['description']}
{$val['content']}
這些都是寫在標簽里面的
第一個是標題
如圖
第二個是關鍵字
第三個是摘要
 
 第四個是內容
moreinfo="1" 這個詞要注意一下,如果不用取來源和內容的話,這句話是不用寫的,如果取內容,不寫這句話的話,內容是顯示不出來的
還有一個是來源
{php list($copyfrom) = explode('|', $val['copyfrom'])}
{$copyfrom}
如圖
如果直接找欄目的名稱的話,用這句代碼
{$CATEGORYS[11]['catname']}
11是它的id號
如果要寫鏈接直接進入它的內容頁的話,可以這樣寫
<a href="{$val[url]}">{$val['keywords']}</a>
當然這句話要寫在那個雙標簽里面
 
(繼續閱讀...)
文章標籤

AutoPoster 發表在 痞客邦 留言(0) 人氣(4)

  • 個人分類:生活學習
▲top
  • 3月 09 週四 201720:23
  • ajax 做登錄 實現頁面免刷新


文章出處
 
結合之前學的知識,可以用ajax來傳遞數據,實現頁面不用刷新,僅數據刷新,來看一下ajax是怎么來實現頁面免刷新的
方的是客戶端,圓的是服務器
如果沒有ajax的話,客戶端直接把數據傳給服務器,服務器再解析數據,把數據傳回客戶端,客戶端要刷新頁面才能顯示
如果用ajax的話,就多了個處理頁面,在客戶端的代碼部分還會有腳本語言,由js把數據傳給處理頁面,處理頁面再傳給服務器,服務器解析后再返回處理頁面,處理頁面返給js,最后由js更改要變動的數據,并不會刷新頁面
先來舉個簡單的例子
html部分
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標題文檔</title>
<script src="../Jquery/jquery-1.11.2.min.js"></script>
</head>
<body>
<input type="text" id="uid" />
<span id="tishi"></span>
</body>

js部分
<script type="text/javascript">
$(
"#uid").blur(function(){ //失去焦點觸發
//取用戶名
var uid = $(this).val();
//查數據庫,調ajax
$.ajax({
url:
"testchuli.php",//處理頁面的地址
data:{u:uid}, //要傳遞的數據(提交)
type:"POST", //提交方式
dataType:"TEXT", //返回數據格式
success:function(data){ //回調函數
var str = "";
if(data.trim()=="OK")
{
str
= "該用戶名可用";
$(
"#tishi").css("color","green");
}
else
{
str
= "該用戶名已存在";
$(
"#tishi").css("color","red");
}
$(
"#tishi").text(str);
}
});
})
</script>

ajax部分是用js來完成的,而它的處理頁面是通過php代碼來完成的
在上面的代碼中有一個trim()方法,這個方法是用來去除前后空格的,避免處理頁面因為有空格而出錯
再來看一下它的處理頁面,也就是"testchuli.php" 頁面
 <?php
include("../fengzhuang/DBDA.class.php");
$db = new DBDA();
$uid = $_POST["u"];
$sql = "select count(*) from users where uid='{$uid}'";
$attr = $db->Query($sql);
if($attr[0][0]>0)
{
echo "NO";
}
else
{
echo "OK";
}

上面那就sql語句的意思是,根據傳過來的用戶名,來查詢這張表的數量
來看一下運行的結果
輸入數據庫內已有的用戶名
會顯示該用戶名已存在
再改一下
用戶名可以用
 然后再來用ajax做登錄頁面
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標題文檔</title>
<script src="../Jquery/jquery-1.11.2.min.js"></script>
</head>
<body>
<div>賬號:<input type="text" id="uid" /></div>
<div>密碼:<input type="password" id="pwd" /></div>
<input type="button" value="登錄" id="btn" />
</body>

<script type="text/javascript">
$(
"#btn").click(function(){
//取用戶名和密碼
var uid = $("#uid").val();
var pwd = $("#pwd").val();
//調AJAX
$.ajax({
url:
"logincl.php",
data:{u:uid,p:pwd},
type:
"POST",
dataType:
"TEXT",
success:
function(data){
if(data.trim()=="OK")
{
window.location.href
="test.php";
}
else
{
alert(
"用戶名或密碼錯誤");
}
}
});
})
</script>

再來寫它的處理頁面
<?php
include("../fengzhuang/DBDA.class.php");
$db = new DBDA();
$uid = $_POST["u"];
$pwd = $_POST["p"];
$sql = "select pwd from users where uid='{$uid}'";
$attr = $db->Query($sql);
if(!empty($pwd) && !empty($attr) && $attr[0][0]==$pwd)
{
echo "OK";
}
else
{
echo "NO";
}

運行后來看看
這個賬號和密碼是不對的,點擊登陸看一下它會有什么反應
會提示錯誤
再來改個對的
點擊登陸
然后頁面就會跳轉了
轉到上面寫的那個網址,證明登陸成功了
 
(繼續閱讀...)
文章標籤

AutoPoster 發表在 痞客邦 留言(0) 人氣(9)

  • 個人分類:生活學習
▲top
«1...232425230»

pop-under

參觀人氣

  • 本日人氣:
  • 累積人氣:

線上人數

Marquee

最新文章

  • 文章列表
  • jvm系列(四):jvm調優-命令大全(jps jstat jmap jhat jstack jinfo)
  • spring boot(一):入門篇
  • jvm系列(一):java類的加載機制
  • jvm系列(三):java GC算法 垃圾收集器
  • spring boot 實戰:我們的第一款開源軟件
  • jvm系列(六):jvm調優-從eclipse開始
  • 混合應用技術選型
  • jvm系列(二):JVM內存結構
  • spring boot(五):spring data jpa的使用

熱門文章

  • (1,764)jQuery之前端國際化jQuery.i18n.properties
  • (1,001)Oracle Hint
  • (630)技術筆記:Indy控件發送郵件
  • (516)linux下安裝sqlite3
  • (501)學習筆記: Delphi之線程類TThread
  • (242)VC單選按鈕控件(Radio Button)用法(轉)
  • (104)單條件和多條件查詢
  • (51)淺談config文件的使用
  • (22)基于 Asp.Net的 Comet 技術解析
  • (15)Java中的抽象類

文章分類

  • 生活學習 (2,296)
  • 未分類文章 (1)

最新留言

  • [20/04/24] 我是女生想約炮 有男生願意給我溫暖的嗎?我賴是woyou58 於文章「(1)從底層設計,探討插件式GIS框架的...」留言:
    我叫黎兒女生最近內心掙扎著要不要約炮我的line:woy...

文章搜尋

文章精選

誰來我家

Live Traffic Feed