1. System Description
"You can only know the depth after experience." The purpose of developing this system is mainly to learn, streamline the system development process, and further combine theory with practical application. This is also phpAn important milestone in learning entry-level.
Development environment: Apache2.0+php5.4+mysql5.5
Development tools: textEditor(dreamweaver/editplus)
2. Key points of system development
1.Smarty application
2.Backend membership, permission verification
3.Object, class encapsulation
3. System module classification
1.MySQL database
There are mainly 5 data tables: full site configuration tablep_config
, backend member tablep_admin
, news classification tablep_<a href="http://www.php.cn/wiki/165.html" target="_blank">new</a>s<a href="http://www.php.cn/wiki/164.html" target="_blank">class</a>
, news title tablep_newsbase
, News content table p_newscontent
, as shown below:

##Data table
2. Program FileWebsite
Directory structureList, as shown in the figure:

##Website directory structure
IV. Detailed development explanation
The details will be explained item by item according to a certain process (
css and other files are not listed in detail
):1.mysql
Creation of databaseThe configuration diagrams of each table are pasted in turn:

p_config table
##p_admin table
p_newsclass table
##p_newsclass table
p_newsbase Table
##p_newsbase table

p_newscontent table
p_newscontent table
Detailed explanation:
##p_newsclass, p_newsbase, p_newscontent
These three There is a relationship between the tables:
Configuration:
(1). Set up the config.php configuration file , the source code is as follows:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <?php>
$myhost = "localhost" ;
$mydbuser = "root" ;
$mydbpw = "password" ;
$mydbname = "news_system" ;
$mydbcharset = "GBK" ;
$smarty_template_dir = './templates/' ;
$smarty_compile_dir = './templates_c/' ;
$smarty_config_dir = './configs/' ;
$smarty_cache_dir = './cache/' ;
$smarty_caching = 'false' ;
$smarty_delimiter = explode ( "|" , "{|}" );
?>
|
Copy after login
(2). Set up the global global call file, the source code is as follows: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <?php
include_once ('./configs/config.php');
include_once ('./common/smarty/Smarty. class .php');
include_once ('./common/mysql. class .php');
include_once ('./common/action. class .php');
include_once ('./common/page. class .php');
$db = new action( $myhost , $mydbuser , $mydbpw , $mydbname ,ALL_PS, $mydbcharset );
$smarty = new smarty();
$smarty ->template_dir = $smarty_template_dir ;
$smarty ->compile_dir = $smarty_compile_dir ;
$smarty ->config_dir = $smarty_config_dir ;
$smarty ->cache_dir = $smarty_cache_dir ;
$smarty ->caching = $smarty_caching ;
$smarty ->left_delimiter = $smarty_delimiter [0];
$smarty ->right_delimiter = $smarty_delimiter [1];
$smarty ->assign( "t_dir" , $smarty_template_dir );
?>
|
Copy after login
Up to now, smarty has been configured.
3.mysql statement class
Here is a detailed description of the mysql custom statement class commonly used in the system: mysql.class.php, the source code is as follows:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 | <?php
class mysql{
private $db_host ;
private $db_user ;
private $db_pwd ;
private $db_database ;
private $coding ;
private $conn ;
private $sql ;
private $row ;
private $result ;
private $bulletin =true;
private $show_error =true;
public function construct( $db_host , $db_user , $db_pwd , $db_database , $conn , $coding ){
$this ->db_host= $db_host ;
$this ->db_user= $db_user ;
$this ->db_pwd= $db_pwd ;
$this ->db_database= $db_database ;
$this ->conn= $conn ;
$this ->coding= $coding ;
$this ->connect();
}
public function connect(){
if ( $this ->conn == "pconn" ) {
$this ->conn = mysql_pconnect( $this ->db_host, $this ->db_user, $this ->db_pwd);
} else {
$this ->conn = mysql_connect( $this ->db_host, $this ->db_user, $this ->db_pwd);
}
if (!mysql_select_db( $this ->db_database, $this ->conn)) {
if ( $this ->show_error) {
$this ->show_error( "数据库不可用:" , $this ->db_database);
}
}
mysql_query( "set names $this->coding" );
}
public function query( $sql ){
if ( $sql = "" ){
$this ->show_error( "SQL语句错误:" , "SQL查询语句为空" );
}
$this ->sql= $sql ;
$result =mysql_query( $this ->sql, $this ->conn);
if (! $result ) {
if ( $this ->show_error) {
$this ->show_error( "错误SQL语句:" , $this ->sql);
}
} else {
$this ->result = $result ;
}
}
public function fetch_array(){
return mysql_fetch_array( $this ->result);
}
public function select( $table , $columnName = "*" , $condition = '' , $debug = '' ){
$condition = $condition ? "where" . $condition : NULL;
if ( $debug ){
echo "select $columnName from $table $condition" ;
} else {
$this ->query( "select $columnName from $table $condition" );
}
}
public function findall( $table ){
$this ->query( "select * from $table" );
}
public function insert_id() {
return mysql_insert_id();
}
public function show_error( $message = "" , $sql = "" ){
if (! $sql ){
echo "<font color='red'>" . $message . "</font>" ;
echo "<br />" ;
} else {
echo "<fieldset>" ;
echo "<legend>错误信息提示:</legend><br />" ;
echo "<p style='font-size:14px; clear:both; font-family:Verdana, Arial, Helvetica, sans-serif;'>" ;
echo "<p style='height:20px; background:#000000; border:1px #000000 solid'>" ;
echo "<font color='white'>错误号:12142</font>" ;
echo "</p><br />" ;
echo "错误原因:" . mysql_error() . "<br /><br />" ;
echo "<p style='height:20px; background:#FF0000; border:1px #FF0000 solid'>" ;
echo "<font color='white'>" . $message . "</font>" ;
echo "</p>" ;
echo "<font color='red'><pre class=" brush:php;toolbar:false ">" . $sql . "
|
";
$ip=$this->getip();
if ($this->bulletin) {
$time = date("Y-m-d H:i:s");
$message = $message . "\r\n$this->sql" . "\r\n客户IP:$ip" . "\r\n时间 :$time" . "\r\n\r\n";
$server_date = date("Y-m-d");
$filename = $server_date . ".txt";
$file_path = "error/" . $filename;
$error_content = $message;
//$error_content="错误的数据库,不可以链接";
$file = "error"; //设置文件保存目录
//建立文件夹
if (!file_exists($file)) {
if (!mkdir($file, 0777)) {
//默认的 mode 是 0777,意味着最大可能的访问权
die("upload files directory does not exist and creation failed");
}
}
//建立txt日期文件
if (!file_exists($file_path)) {
//建立 “建立日期文件”
fopen($file_path,"w+");
//首先要确定文件存在并且可写
if (is_writable($file_path)) {
//使用添加模式打开$filename,文件指针将会在文件的开头
if(!$handle=fopen($file_path,'a')){
echo "不能打开文件 $filename";
exit;
}
//将$somecontent写入到我们打开的文件中。
if(!fwrite($handle,$error_content)){
echo "不能写入到文件 $filename";
exit;
}
echo "——错误记录被保存!";
//关闭文件
fclose($handle);
}else{
echo "文件 $filename 不可写";
}
}else{
//首先要确定文件存在并且可写
if (is_writable($file_path)) {
//使用添加模式打开$filename,文件指针将会在文件的开头
if (!$handle = fopen($file_path, 'a')) {
echo "不能打开文件 $filename";
exit;
}
//将$somecontent写入到我们打开的文件中。
if (!fwrite($handle, $error_content)) {
echo "不能写入到文件 $filename";
exit;
}
//echo "文件 $filename 写入成功";
echo "——错误记录被保存!";
//关闭文件
fclose($handle);
}else{
echo "文件 $filename 不可写";
}
}
}
echo "
";
if($this->is_error){
exit;
}
}
echo "
";
echo "";
echo "
";
}
/*获得客户端真实的IP地址*/
function getip() {
if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown")) {
$ip = getenv("HTTP_CLIENT_IP");
} else
if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown")) {
$ip = getenv("HTTP_X_FORWARDED_FOR");
} else
if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown")) {
$ip = getenv("REMOTE_ADDR");
} else
if (isset ($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown")) {
$ip = $_SERVER['REMOTE_ADDR'];
} else {
$ip = "unknown";
}
return ($ip);
}
}
?>
Copy after login
4. Backend login and user permission judgmentBackground login and user permission judgment are mainly implemented through
session
encryption, encapsulating the permission judgment function, and in each background page
Quote is enough. (1). First, we need to create the background call file admin_global.php. The source code is as follows:
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php
session_start();
include_once ( "../common/mysql.class.php" );
include_once ( "../configs/config.php" );
include_once ( "common/action.class.php" );
include_once ( "common/page.class.php" );
$db = new action( $mydbhost , $mydbuser , $mydbpw , $mydbname , ALL_PS, $mydbcharset );
$uid = $_SESSION [uid];
$shell = $_SESSION [shell];
?>
|
Copy after login
(2). Create the action.class.php file, including User login
, permission judgment and other functions, the source code is as follows: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 | <?php
class action extends mysql{
public function Get_user_shell( $uid , $shell ){
$query = $this ->select( 'p_admin' , "*" , '`uid`=\'' . $uid . '\'' );
$us = is_array ( $row = $this ->fetch_array( $query ));
$ps = $us ? $shell =md5( $row [username]. $row [password]. "TKBK" ) : FALSE;
return $shell ? $row : NULL;
}
public function Get_user_shell_check( $uid , $shell , $m_id =9){
if ( $row = $this ->Get_user_shell( $uid , $shell )){
if ( $row [m_id] <= $m_id ){
return $row ;
} else {
echo "你无权限操作!" ;
exit ();
}
} else {
$this ->Get_admin_msg( 'index.php' , '请先登录' );
}
}
public function Get_user_ontime( $long = '3600' ){
$new_time = mktime ();
$onlinetime = $_SESSION [ontime];
if ( $new_time - $onlinetime > $long ){
echo "登录超时" ;
session_destroy();
exit ();
} else {
$_SESSION [ontime]= mktime ();
}
}
public function Get_user_out(){
session_destroy();
$this ->Get_admin_msg( 'index.php' , '退出成功' );
}
public function Get_user_login( $username , $password ){
$username = str_replace ( " " , "" , $username );
$query = $this ->select( 'p_admin' , '*' , '`username` = \'' . $username . '\'' );
$us = is_array ( $row = $db ->fetch_array( $query ));
$ps = $us ? md5( $password )== $row [password] : FALSE;
if ( $ps ){
$_SESSION [uid]= $row [uid];
$_SESSION [shell]=md5( $row [username]. $row [password]. "TKBK" );
$_SESSION [ontime]= mktime ();
$this ->Get_admin_msg( 'main.php' , '登录成功!' );
} else {
$this ->Get_admin_msg( 'index.php' , '密码或用户错误!' );
session_destroy();
}
}
public function Get_admin_msg( $url , $show = '操作已成功!' ) {
$msg = '<!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" />
<link rel= "stylesheet" href= "css/common.css" type= "text/css" />
<meta http-equiv= "refresh" content= "2; URL=' . $url . '" />
<title>管理区域</title>
</head>
<body>
<p id= "man_zone" >
<table width= "30%" border= "1" align= "center" cellpadding= "3" cellspacing= "0" class = "table" style= "margin-top:100px;" >
<tr>
<th align= "center" style= "background:#cef" >信息提示</th>
</tr>
<tr>
<td><p> ' . $show . ' <br />
2秒后返回指定页面!<br />
如果浏览器无法跳转,<a href= "' . $url . '" >请点击此处</a>。</p></td>
</tr>
</table>
</p>
</body>
</html>';
echo $msg ;
exit ();
}
}
?>
|
Copy after login
(3). Log in to the homepage/admin/index.php, the source code is as follows:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | <?php
include_once ('admin_global.php');
if (! empty ( $_POST [username]) && ! empty ( $_POST [password])){
$db ->Get_user_login( $_POST [username], $_POST [password]);
}
?>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=gb2312'>
<meta name='Author' content='Alan'>
<link rev=MADE href='mailto:haowubai@hotmail.com'><title>后台管理</title>
<link rel='stylesheet' type='text/css' href='images/ private .css'>
<script> if (self!=top){ window.open(self.location, '_top' ); } </script>
</head>
<body>
<br><br><br>
<form action= "" method= "post" >
<table border=0 cellspacing=1 align=center class =form>
<tr>
<th colspan= "2" >用户登录</th>
</tr>
<tr>
<td align= "right" >登录用户:</td>
<td><input type= "text" name= "username" value= "" size= "20" maxlength= "40" /> </td>
</tr>
<tr>
<td align= "right" >登录密码:</td>
<td><input type= "password" name= "password" value= "" size= "20" maxlength= "40" /> </td>
</tr>
<tr>
<td colspan= "2" align= "center" height='30'>
<input type= "submit" name= "update" value= " 登录 " />
</td>
</tr>
</table>
</form>
</body>
</html>
|
Copy after login
到此已实现用户的后台登录验证,用户权限的判断只需将以下代码粘贴到每个后台页面即可:
1 2 | include_once ( 'admin_global.php' );
$r = $db ->Get_user_shell_check( $uid , $shell );
|
Copy after login
(4).后台管理页面:
后台全局调用页面admin_global.php
后台首页main.php
左侧导航页面admin_left.php
网站参数配置页面admin_main.php
新闻栏目分类管理页面admin_news_class.php
新闻列表页面admin_news_list.php
新闻编辑添加页面admin_news_add.php
各个页面源码如下:
admin_global.php:引入各类文件
1 2 3 4 5 6 7 8 9 10 11 12 | <?php
session_start();
include_once ( "../common/mysql.class.php" );
include_once ( "../configs/config.php" );
include_once ( "common/action.class.php" );
include_once ( "common/page.class.php" );
$db = new action( $mydbhost , $mydbuser , $mydbpw , $mydbname , ALL_PS, $mydbcharset );
$uid = $_SESSION [uid];
$shell = $_SESSION [shell];
?>
|
Copy after login
main.php:利用frame标签引入各个功能页面
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <!DOCTYPE html>
<html>
<head><title>网站后台控制面板</title>
<meta http-equiv=Content-Type content= "text/html; charset=gb2312" >
<script language=JavaScript>
window.self.focus();
</script>
</head>
<frameset border=0 frameSpacing=0 frameBorder=0 cols=150,*>
<frame name=menu src= "admin_left.php" scrolling=yes>
<frame name=main src= "admin_main.php" scrolling=yes>
<noframes>
</noframes>
</frameset>
</html>
|
Copy after login
admin_left.php:后台左侧导航
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | <?php
include_once ('admin_global.php');
$r = $db ->Get_user_shell_check( $uid , $shell );
?>
<!DOCTYPE HTML>
<html>
<head>
<title>PHP100_left</title>
<meta http-equiv=Content-Type content= "text/html; charset=gb2312" >
<link href= "images/private.css" type=text/css rel=stylesheet>
<script language=javascript>
<!--
function menu_tree(meval)
{
var left_n= eval (meval);
if (left_n.style.display== "none" )
{ eval (meval+ ".style.display='';" ); }
else
{ eval (meval+ ".style.display='none';" ); }
}
-->
</script>
</head>
<body>
<center>
<table class =Menu cellSpacing=0>
<tbody>
<tr><th onClick= "javascript:menu_tree('left_1');" align=middle>≡ 基础操作 ≡</th></tr>
<tr id=left_1>
<td>
<table width= "100%" >
<tbody>
<tr>
<td>
<A href= "admin_main.php" target=main>配置信息</A></td>
</tr>
<tr>
<td>
<A onClick= "return confirm('提示:您确定要退出系统吗?')" href= "admin_main.php?action=logout" target=_parent>退出后台</A>
</td>
</tr>
</tbody></table>
</td></tr></tbody></table>
<table class =Menu cellSpacing=0 style= "margin-top:5px" >
<tbody>
<tr>
<th onClick= "javascript:menu_tree('left_2');" align=middle>≡ 新闻内容 ≡</th></tr>
<tr id=left_2>
<td>
<table width= "100%" >
<tbody>
<tr>
<td>
<A href= "admin_news_class.php" target=main>新闻分类</A></td>
</tr>
<tr>
<td>
<A href= "admin_news_list.php" target=main>新闻列表</A></td>
</tr>
<tr>
<td>
<A href= "admin_news_add.php" target=main>添加新闻</A></td>
</tr>
</tbody></table>
</td></tr></tbody></table>
<table class =Menu cellSpacing=0 style= "margin-top:5px" >
<tbody>
<tr>
<th align=middle>〓 版本信息 〓</th></tr>
<tr>
<td align=middle><a href= "http://www.php100.com" target= "_blank" >PHP100news 1.0</a></td></tr>
<tr>
<td align=middle>PHP100.com</td></tr></tbody></table>
</center>
</body>
</HTML>
|
Copy after login
admin_main.php:网站参数配置页面
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | <?php
include_once ('admin_global.php');
$r = $db ->Get_user_shell_check( $uid , $shell );
if ( $_GET [action]== 'logout' ) $db ->Get_user_out();
$query = $db ->findall( "p_config" );
while ( $row = $db ->fetch_array( $query )){
$row_arr [ $row [name]]= $row [values];
}
if (isset( $_POST [ 'update' ])){
unset( $_POST [ 'update' ]);
foreach ( $_POST as $name => $values ){
$db ->query( "update p_config set `values`='$values' where `name`='$name'" );
}
$db ->Get_admin_msg( "admin_main.php" );
}
?>
<html>
<head><title>后台管理</title>
<meta http-equiv=Content-Type content= "text/html; charset=gb2312" >
<link href= "images/private.css" type=text/css rel=stylesheet>
</head>
<body>
<table class =navi cellSpacing=1 align=center border=0>
<tbody>
<tr>
<form action= "" method= "POST" >
<th>后台 >> 系统配置</th></tr></tbody></table><br>
<table border=0 cellspacing=1 align=center class =form>
<tr>
<th colspan= "2" >系统配置</th>
</tr>
<tr>
<td align= "right" >网站名称:</td>
<td><input type= "text" name= "websitename" value= "<?php echo $row_arr[websitename]?>" /> </td>
</tr>
<tr>
<td align= "right" >网站地址:</td>
<td><input type= "text" name= "website_url" value= "<?php echo $row_arr[website_url]?>" /> </td>
</tr>
<tr>
<td align= "right" >关键字:</td>
<td><input type= "text" name= "website_keyword" size=40 value= "<?php echo $row_arr[website_keyword]?>" /> </td>
</tr>
<tr>
<td align= "right" >说明:</td>
<td><input type= "text" name= "website_cp" size=40 value= "<?php echo $row_arr[website_cp]?>" /> </td>
</tr>
<tr>
<td align= "right" >电话:</td>
<td><input type= "text" name= "website_tel" size=40 value= "<?php echo $row_arr[website_tel]?>" /> </td>
</tr>
<tr>
<td align= "right" >email:</td>
<td><input type= "text" name= "website_email" size=40 value= "<?php echo $row_arr[website_email]?>" /> </td>
</tr>
<tr>
<td colspan= "2" align= "center" height='30'>
<input type= "submit" name= "update" value= " 更新 " />
</td> </form>
</tr>
</table>
</body>
</html>
|
Copy after login
admin_news_class.php:新闻栏目分类管理页面
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 | <?php
include_once ('admin_global.php');
$r = $db ->Get_user_shell_check( $uid , $shell );
if (isset( $_POST [ 'into_class' ])){
$db ->query( "INSERT INTO `p_newsclass` (`id`,`f_id`,`name`,`keywrod`,`remark`) VALUES (NULL,'$_POST[f_id]','$_POST[name]','','')" );
$db ->Get_admin_msg( "admin_news_class.php" , "已经成功添加分类" );
}
if (! empty ( $_GET [del])){
$db ->query( "DELETE FROM `p_newsclass` WHERE `id` = '$_GET[del]' LIMIT 1;" );
$db ->Get_admin_msg( "admin_news_class.php" , "删除成功" );
}
if (isset( $_POST [update_class])){
$db ->query( "update `p_newsclass` set `name` = '$_POST[name]' WHERE `id` = '$_POST[id]' LIMIT 1;" );
$db ->Get_admin_msg( "admin_news_class.php" , "更新成功" );
}
?>
<html>
<head>
<title>后台管理</title>
<meta http-equiv=Content-Type content= "text/html; charset=gb2312" >
<link href= "images/private.css" type=text/css rel=stylesheet>
</head>
<body>
<table class =navi cellSpacing=1 align=center border=0>
<tbody>
<tr>
<th>后台 >> 新闻分类</th></tr></tbody></table><br>
<table border=0 cellspacing=1 align=center class =form>
<tr>
<th colspan= "2" >添加分类</th>
</tr>
<form action= "" method= "post" >
<tr>
<td colspan= "2" align= "center" height='30'>
<select name= "f_id" >
<option value= "0" >添加大类</option>
<?php
$query = $db ->findall( "p_newsclass where f_id=0" );
while ( $row = $db ->fetch_array( $query )) {
$news_class_arr [ $row [id]]= $row [name];
echo "<option value=\"$row[id]\">$row[name]</option>" ;
}
?>
</select>
<input type= "text" name= "name" value= "" />
<input type= "submit" name= "into_class" value= " 添加分类 " />
</td>
</form>
</tr>
</table>
<br>
<table border=0 cellspacing=1 align=center class =form>
<tr>
<th>系统分类</th>
</tr>
<?php
foreach ( $news_class_arr as $id => $val ){
?>
<tr>
<form action= "" method= "post" >
<td>
<input type= "hidden" name= "id" value= "<?php echo $id ?>" />
<input type= "text" name= "name" value= "<?php echo $val ?>" />
<input type= "submit" name= "update_class" value= "更新" />
<input type= "button" value= "删除" onclick= "location.href='?del=<?php echo $id ?>'" />
</form>
<?php
$query_fid = $db ->findall( "p_newsclass where f_id=$id" );
while ( $row_fid = $db ->fetch_array( $query_fid )){
?>
<form action= "" method= "post" >
┗<input type= "hidden" name= "id" value= "<?php echo $row_fid[id]?>" />
<input type= "text" name= "name" value= "<?php echo $row_fid[name]?>" />
<input type= "submit" name= "update_class" value= "更新" />
<input type= "button" value= "删除" onclick= "location.href='?del=<?php echo $row_fid[id]?>'" >
</form>
<?php
}
?>
</td>
</tr>
<?php
}
?>
</table>
</body></html>
|
Copy after login
admin_news_list.php:新闻列表页面
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | <?php
include_once ('admin_global.php');
$r = $db ->Get_user_shell_check( $uid , $shell );
$query = $db ->findall( "p_newsclass" );
while ( $row = $db ->fetch_array( $query )){
$news_class_arr [ $row [id]]= $row [name];
}
if (! empty ( $_GET [del])){
$db ->query( "DELETE FROM `p_newsbase` WHERE `id` = '$_GET[del]'" );
$db ->query( "DELETE FROM `p_newscontent` WHERE `nid` = '$_GET[del]' LIMIT 1;" );
$db ->Get_admin_msg( "admin_news_list.php" , "删除成功" );
}
?>
<html>
<head>
<title>后台管理</title>
<meta http-equiv=Content-Type content= "text/html; charset=gb2312" >
<link href= "images/private.css" type=text/css rel=stylesheet>
</head>
<body>
<table class =navi cellSpacing=1 align=center border=0>
<tbody>
<tr>
<th>后台 >> 新闻管理</th></tr></tbody></table><br>
<table border=0 cellspacing=1 align=center class =form>
<tr>
<th width='100'>新闻分类</th><th>新闻标题</th><th width='100'>作者</th><th width='100'>日期</th><th width='100'>操作</th>
</tr>
<?php
$result = mysql_query( "select id from p_newsbase" );
$total = mysql_num_rows( $result );
pageft( $total , 2);
if ( $firstcount < 0) $firstcount = 0;
$query = $db ->findall( "p_newsbase limit $firstcount, $displaypg" );
while ( $row = $db ->fetch_array( $query )) {
?>
<td><?php echo $news_class_arr [ $row [cid]]?></td><td><?php echo $row [title]?></td><td><?php echo $row [author]?></td>
<td><?php echo date ( "Y-m-d H:i" , $row [date_time])?></td><td><a href='?del=<?php echo $row [id]?> '>删除</a> / <a href='admin_news_edit.php?id=<?php echo $row[id]?>' >修改</a></td>
</tr>
<?php
}
?>
<tr>
<th colspan= "5" ><?php echo $pagenav ; echo $displaypg ?></th>
</tr>
<tr>
<th colspan= "5" ></th>
</tr>
</table>
<br>
</body>
</html>
|
Copy after login
admin_news_add.php:新闻编辑添加页面
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | <?php
include_once ('admin_global.php');
$r = $db ->Get_user_shell_check( $uid , $shell );
if (isset( $_POST [into_news])){
$db ->query( "insert into `p_newsbase` (`id`,`cid`,`title`,`author`,`date_time`)" .
"values (NULL,'$_POST[cid]','$_POST[title]','$_POST[author]','" . mktime (). "')" );
$last_id = $db ->insert_id();
$db ->query( "insert into `p_newscontent` (`nid`,`keywrod`,`content`,`remark`)" .
"values ('$last_id','$_POST[keywrod]','$_POST[content]','')" );
$db ->Get_admin_msg( "admin_news_add.php" , "添加成功" );
}
?>
<html>
<head>
<title>后台管理</title>
<meta http-equiv=Content-Type content= "text/html; charset=gb2312" >
<link href= "images/private.css" type=text/css rel=stylesheet>
<meta content= "MShtml 6.00.6000.16890" name=GENERATOR></head>
<body>
<table class =navi cellSpacing=1 align=center border=0>
<tbody>
<tr>
<th>后台 >> 添加新闻</th></tr></tbody></table><br>
<table border=0 cellspacing=1 align=center class =form>
<tr>
<th colspan= "2" >添加分类</th>
</tr>
<form action= "" method= "post" onsubmit= "syncTextarea()" >
<tr>
<td width=80>新闻分类</td>
<td>
<select name= "cid" >
<option value= "0" >添加大类</option>
<?php
$query =mysql_query( "select * from `p_newsclass` where `f_id` = 0" );
while ( $row =mysql_fetch_array( $query )){
echo "<option value=\"$row[id]\">$row[name]</option>" ;
$query_son =mysql_query( "select * from `p_newsclass` where `f_id` = '$row[id]'" );
while ( $row_son =mysql_fetch_array( $query_son )){
echo "<option value=\"$row_son[id]\"> ┗$row_son[name]</option>" ;
}
}
?>
</select>
</td></tr>
<tr>
<td width=80>新闻标题</td>
<td>
<input type= "text" name= "title" size=50>
</select>
</td>
</tr>
<tr>
<td width=80>新闻作者</td>
<td>
<input type= "text" name= "author" size=20>
</td>
</tr>
<tr>
<td width=80>新闻关键字</td>
<td>
<input type= "text" name= "keywrod" size=80>
</td>
</tr>
<tr>
<td width=80>新闻内容</td>
<td>
<textarea id= "edited" name= "content" style= "width:95%;height:280px;" ></textarea>
<script language= "javascript" type= "text/javascript" src= "edit/whizzywig.js" ></script>
<script type= "text/javascript" >buttonPath = "edit/images/" ;makeWhizzyWig( "edited" , "all" );</script>
</td>
</tr>
<tr>
<td width=80></td>
<td>
<input type= "submit" name= "into_news" style= "height:30px;" value= "添加新闻" >
</td>
</tr>
</form>
</table>
<br>
</body></html>
|
Copy after login
(5)分页功能page.class.php
后台和前台分别调用了不同的分页函数,以免混淆,不过由于函数功能基本不一样,这里只贴出前台的分页函数源码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | <?php
$page = $_GET ['page'];
if (!function_exists(pageft)){
function pageft( $total , $displaypg ){
global $page , $pagenav , $firstcount ;
$GLOBALS [ "displaypg" ]= $displaypg ;
if (! $page ) $page =1;
$url = $_SERVER ['REQUEST_URI'];
$parse_url = parse_url ( $url );
$url_query = ereg_replace ( "(^|&)page=$page" , "" , $parse_url [ "query" ]);
$url = $parse_url [path]. "?" . $url_query . "&page" ;
$lastpg = ceil ( $total / $displaypg );
$page =min( $lastpg , $page );
$prepg = $page -1;
$nextpg = $page +1;
$firstcount =( $page -1)* $displaypg ;
$pagenav ='';
$pagenav .='共'. $total .'条记录 ';
if ( $page ==1){
$pagenav .= " <span>首页</span> " ;
} else {
$pagenav .= "<a href='$url=1'>首页</a> " ;
}
if ( $page ==1){
$pagenav .= " <span>上一页</span> " ;
} else {
$pagenav .= "<a href='$url=$prepg'>上一页</a> " ;
}
for ( $i =1; $i <= $lastpg ; $i ++){
if ( $i == $page ) $pagenav .= " <span>$i</span> " ;
else $pagenav .= " <a href='$url=$i'>$i</a> " ;
}
if ( $page == $lastpage ){
$pagenav .= " <span>下一页</span> " ;
} else {
$pagenav .= "<a href='$url=$nextpg'>下一页</a> " ;
}
if ( $page == $lastpg ){
$pagenav .= " <span>末页</span> " ;
} else {
$pagenav .= "<a href='$url=$lastpg'>末页</a> " ;
}
}
}
?>
|
Copy after login
(6)前台首页
包括首页程序文件index.php,smarty模板文件index.html,源码如下:
index.php:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | <?php
include_once (' global .php');
$sql = "select * from `p_newsclass` where f_id=0 order by id DESC" ;
$query = $db ->query( $sql );
while ( $row_class = $db ->fetch_array( $query )){
$sm_class []= array ( 'name' => $row_class [name], 'id' => $row_class [id]);
}
$smarty ->assign( "sm_class" , $sm_class );
$sql = "select * from `p_newsbase` order by id DESC limit 5" ;
$query = $db ->query( $sql );
while ( $row_news = $db ->fetch_array( $query )){
$sm_news []= array ( 'title' => $row_news [title], 'id' => $row_news [id]);
}
$smarty ->assign( 'sm_news' , $sm_news );
$sql = "select * from `p_config`" ;
$query = $db ->query( $sql );
while ( $row_config = $db ->fetch_array( $query )){
$sm_config [ $row_config [name]]= $row_config [values];
}
$smarty ->assign( 'sm_config' , $sm_config );
$smarty ->display( "index.html" );
?>
|
Copy after login
index.html:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 | <html>
<head>
<meta http-equiv= "Content-Type" content= "text/html; charset=gb2312" />
<title>{ $sm_config .websitename}</title>
<link href= "{$t_dir}css/common.css" rel= "stylesheet" type= "text/css" />
<link href= "{$t_dir}css/layout.css" rel= "stylesheet" type= "text/css" />
<link href= "{$t_dir}css/red.css" rel= "stylesheet" type= "text/css" />
</head>
<body>
<p class = "content border_bottom" >
<ul id= "sub_nav" >
<li><a href= "{$sm_config[0]}" >设为首页</a></li>
<li><a href= "#" >加入收藏</a></li>
<li class = "nobg" ><a href= "#" >联系我们</a></li>
</ul>
<br class = "clear" />
</p>
<p class = "content dgreen-bg" >
<p class = "content" >
<ul id= "main_nav" >
<li class = "nobg" ><a href= "index.php" >新闻首页</a></li>
{section name=l loop= $sm_class }
<li><a href= "list.php?cid={$sm_class[l].id}" >{ $sm_class [l].name}</a></li>
{/section}
</ul><br class = "clear" />
</p>
</p>
<p class = "content" >
<p id= "left-nav-bar" class = "bg_white" >
<p id= "top-contact-info" >
姓名:<br />
电话:<br />
OICQ:<br />
手机:<br />
地址:
</p>
<h2>招商信息</h2>
<ul>
<li><a href= "#" >千亿美元进中国 推高股价房价</a></li>
<li><a href= "#" >千亿美元进中国 推高股价房价</a></li>
<li><a href= "#" >千亿美元进中国 推高股价房价</a></li>
<li><a href= "#" >千亿美元进中国 推高股价房价</a></li>
</ul>
<h2>企业资讯</h2>
<ul>
<li><a href= "#" >千亿美元进中国 推高股价房价</a></li>
<li><a href= "#" >千亿美元进中国 推高股价房价</a></li>
<li><a href= "#" >千亿美元进中国 推高股价房价</a></li>
<li><a href= "#" >千亿美元进中国 推高股价房价</a></li>
</ul>
<h3><a href= "http://www.php100.com" >[站外图片上传中……(4)]</a></h3>
<span id= "hits" >现在已经有[122]次点击</span>
</p>
<p id= "right-cnt" >
<p class = "col_center" >
<p class = "sub-title" ><h2>促销活动</h2><span><a href= "#" class = "cblue" >MORE</a></span><br class = "clear" />
</p>
<ul>
{section name=l loop= $sm_news }
<li><a href= "view.php?id={$sm_news[l].id}" >{ $sm_news [l].title}</a></li>
{/section}
</p>
<p class = "col_center right" >
<p class = "sub-title" ><h2>公司简介</h2><span><a href= "#" class = "cblue" >MORE</a></span><br class = "clear" /></p>
<p id= "intro" >
入贯彻落实科学发展观的自觉性和坚定性湖南一
考生高考4门课程故意考零分温家宝调研太湖污染代表
中央向居民致歉湖南73人涉黑集团麻醉强奸女服务员
被公诉女大学生卖淫被抓警察让其参加毕被公诉女大学生卖淫被抓警察让其参加毕...[<a href= "#" class = "cgray" >详细</a>] </p>
</p><br class = "clear" />
<p id= "m_adv" ></p>
<p class = "pages" ><h2>产品展示</h2><span>产品分类:展示 | 展示 | 展示 | 展示 | 展示 | 展示 | 展示 | 展示 | 展示</span><p id= "more" ><a href= "#" class = "cblue" >MORE</a></p>
<br class = "clear" /></p>
<ul id= "products-list" >
<li>
<h3>产品展示</h3>
<ul>
<li>规格:</li>
<li>产地:</li>
<li>价格:1200 <span>[<a href= "#" class = "cdred" >详细</a>]</span></li>
</ul>
</li>
<li>
<h3>产品展示</h3>
<ul>
<li>规格:</li>
<li>产地:</li>
<li>价格:1200 <span>[<a href= "#" class = "cdred" >详细</a>]</span></li>
</ul>
</li>
<li>
<h3>产品展示</h3>
<ul>
<li>规格:</li>
<li>产地:</li>
<li>价格:1200 <span>[<a href= "#" class = "cdred" >详细</a>]</span></li>
</ul>
</li>
<li>
<h3>产品展示</h3>
<ul>
<li>规格:</li>
<li>产地:</li>
<li>价格:1200 <span>[<a href= "#" class = "cdred" >详细</a>]</span></li>
</ul>
</li>
</ul><br class = "clear" />
</p>
<br class = "clear" />
</p>
<p id= "about" >
<p class = "content" >
<span class = "left" ><a href= "#" >网店首页</a> | <a href= "#" >公司介绍</a> | <a href= "#" >资质认证</a> | <a href= "#" >产品展示</a> | <a href= "#" >视频网店</a> | <a href= "#" >招商信息</a> | <a href= "#" >招聘信息</a> | <a href= "#" >促销活动</a> | <a href= "#" >企业资讯</a> | <a href= "#" >联系我们</a></span>
<span class = "right" >我的邮件:{ $sm_config .website_email}</span>
</p>
</p>
<p id= "copyright" >
</p>
</body>
</html>
|
Copy after login
(7)新闻列表页
包含列表程序文件list.php,smarty模板文件:list.html
list.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | <?php
include_once (' global .php');
if ( empty ( $_GET [cid])) exit ();
$query = $db ->findall( 'p_config' );
while ( $row_config = $db ->fetch_array( $query )){
$sm_config [ $row_config [name]]= $row_config [values];
}
$smarty ->assign( 'sm_config' , $sm_config );
$sql = "select * from `p_newsclass` where f_id=0 order by id DESC" ;
$query = $db ->query( $sql );
while ( $row_class = $db ->fetch_array( $query )){
$sm_class []= array ( 'name' => $row_class [name], 'id' => $row_class [id]);
}
$smarty ->assign( 'sm_class' , $sm_class );
$query = $db ->findall( "p_newsclass" );
while ( $row = $db ->fetch_array( $query )) {
$news_class_arr [ $row [id]] = $row [name];
}
$query = $db ->findall( "p_newsclass where f_id = $_GET[cid]" );
while ( $row_chlidclass = $db ->fetch_array( $query )){
$news_class_in .= $row_chlidclass [id]. "," ;
$news_class_list_arr []= array ( 'name' => $row_chlidclass [name], 'id' => $row_chlidclass [id]);
}
$news_class_in .= "$_GET[cid]" ;
$sql = "select id from `p_newsbase` where cid in ($news_class_in)" ;
$total =mysql_num_rows(mysql_query( $sql ));
pageft( $total ,2);
if ( $firstcount <0) $firstcount =0;
$query = $db ->query( "select * from `p_newsbase` where cid in ($news_class_in) limit $firstcount,$displaypg" );
while ( $row_list = $db ->fetch_array()){
$sm_list []= array (
"title" => $row_list [title],
'cid' => $row_list [cid],
'id' => $row_list [id],
'cidname' => $news_class_arr [ $row_list [cid]]);
}
$smarty ->assign( "news_class_list_arr" , $news_class_list_arr );
$smarty ->assign( "sm_list" , $sm_list );
$smarty ->assign( "pagenav" , $pagenav );
$smarty ->display( "list.html" );
?>
|
Copy after login
list.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | <html>
<head>
<meta http-equiv= "Content-Type" content= "text/html; charset=gb2312" />
<title>{ $sm_config .websitename}</title>
<link href= "{$t_dir}css/common.css" rel= "stylesheet" type= "text/css" />
<link href= "{$t_dir}css/layout.css" rel= "stylesheet" type= "text/css" />
<link href= "{$t_dir}css/red.css" rel= "stylesheet" type= "text/css" />
</head>
<body>
<p class = "content border_bottom" >
<ul id= "sub_nav" >
<li><a href= "{$sm_config[0]}" >设为首页</a></li>
<li><a href= "#" >加入收藏</a></li>
<li class = "nobg" ><a href= "#" >联系我们</a></li>
</ul>
<br class = "clear" />
</p>
<p class = "content dgreen-bg" >
<p class = "content" >
<ul id= "main_nav" >
<li class = "nobg" ><a href= "index.php" >新闻首页</a></li>
{section name=l loop= $sm_class }
<li><a href= "list.php?cid={$sm_class[l].id}" >{ $sm_class [l].name}</a></li>
{/section}
</ul><br class = "clear" />
</p>
</p>
<p class = "content" >
<p id= "left-nav-bar" class = "bg_white" >
<p id= "top-contact-info" >
{section name=l loop= $news_class_list_arr }
<a href=list.php?cid={ $news_class_list_arr [l].id}>{ $news_class_list_arr [l].name}</a><br>
{/section}
</p>
</p>
<p id= "right-cnt" ><br class = "clear" />
<p class = "pages" >
<h2>类别</h2>
<span>新闻标题</span>
<p id= "more" ><a href= "#" >时间</a></p>
</p>
{section name=l loop= $sm_list }
<p class = "listtt" >
<h2><a href= "list.php?cid={$sm_list[l].cid}" >{ $sm_list [l].cidname}</a></h2>
<span><a href= "view.php?id={$sm_list[l].id}" >{ $sm_list [l].title}</a></span>
<p id= "more" >{ $sm_list [l].date_time}</p>
</p>
{/section}
{ $pagenav }
</p>
<br class = "clear" />
</p>
<p id= "about" >
<p class = "content" >
<span class = "left" ><a href= "#" >网店首页</a> | <a href= "#" >公司介绍</a> | <a href= "#" >资质认证</a> | <a href= "#" >产品展示</a> | <a href= "#" >视频网店</a> | <a href= "#" >招商信息</a> | <a href= "#" >招聘信息</a> | <a href= "#" >促销活动</a> | <a href= "#" >企业资讯</a> | <a href= "#" >联系我们</a></span>
<span class = "right" >我的邮件:{ $sm_config .website_email}</span>
</p>
</p>
<p id= "copyright" >
</p>
</body>
</html>
|
Copy after login
(8) 新闻内容页
包括新闻内容程序文件view.php,smarty模板文件view.html
view.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | <?php
include_once (' global .php');
if ( empty ( $_GET [id])) exit ();
$sql = "select * from `p_config`" ;
$query = $db ->query( $sql );
while ( $row_config = $db ->fetch_array( $query )){
$sm_config [ $row_config [name]]= $row_config [values];
}
$smarty ->assign( "sm_config" , $sm_config );
$sql = "select * from `p_newsclass` where f_id=0" ;
$query = $db ->query( $sql );
while ( $row_class = $db ->fetch_array( $query )){
$sm_class []= array ( 'name' => $row_class [name], 'id' => $row_class [id]);
}
$smarty ->assign( "sm_class" , $sm_class );
$sql = "select * from `p_newsbase` as a,p_newscontent as b where a.id=b.nid and a.id=$_GET[id]" ;
$query = $db ->query( $sql );
$row_news =mysql_fetch_array( $query ,MYSQL_ASSOC);
$smarty ->assign( "row_news" , $row_news );
$smarty ->display( "view.html" );
?>
|
Copy after login
view.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | <!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=gb2312" />
<title>{ $sm_config .websitename}</title>
<link href= "{$t_dir}css/common.css" rel= "stylesheet" type= "text/css" />
<link href= "{$t_dir}css/layout.css" rel= "stylesheet" type= "text/css" />
<link href= "{$t_dir}css/red.css" rel= "stylesheet" type= "text/css" />
</head>
<body>
<p class = "content border_bottom" >
<ul id= "sub_nav" >
<li><a href= "{$sm_config[0]}" >设为首页</a></li>
<li><a href= "#" >加入收藏</a></li>
<li class = "nobg" ><a href= "#" >联系我们</a></li>
</ul>
<br class = "clear" />
</p>
<p class = "content dgreen-bg" >
<p class = "content" >
<ul id= "main_nav" >
<li class = "nobg" ><a href= "index.php" >新闻首页</a></li>
{section name=l loop= $sm_class }
<li><a href= "list.php?cid={$sm_class[l].id}" >{ $sm_class [l].name}</a></li>
{/section}
</ul><br class = "clear" />
</p>
</p>
<p class = "content" ><br />
<h2>{ $row_news .title}<br />
<br />
</h2>
时间:{ $row_news .date_time|date_format: "%D" } 作者:{ $row_news .author}<br />
<br />
<hr />
<br />
<p>
{ $row_news .content}
</p>
<br class = "clear" />
</p>
<p id= "about" >
<p class = "content" >
<span class = "left" ><a href= "#" >网店首页</a> | <a href= "#" >公司介绍</a> | <a href= "#" >资质认证</a> | <a href= "#" >产品展示</a> | <a href= "#" >视频网店</a> | <a href= "#" >招商信息</a> | <a href= "#" >招聘信息</a> | <a href= "#" >促销活动</a> | <a href= "#" >企业资讯</a> | <a href= "#" >联系我们</a></span>
<span class = "right" >目前已有[2222]点击</span>
</p>
</p>
<p id= "copyright" >
</p>
</body>
</html>
|
Copy after login
The above is the detailed content of Development of Micro News System. For more information, please follow other related articles on the PHP Chinese website!