PHP+MYSQL新闻系统开发之PHP100视频教程62 修正版
2013-03-23 15:55
1151 查看
PHP100_F_System
┃
┣━ admin
┃ ┣━ common
┃ ┃ ┣━ action.class.php //后台动作类包含了权限认证等功能
┃ ┃ ┗━ page.class.php //后台分页类
┃ ┃
┃ ┣━ admin_global.php //后台全局变量文件
┃ ┣━ admin_left.php
┃ ┣━ admin_main.php
┃ ┣━ index.php
┃ ┗━ main.php
┃
┃
┣━ cache
┃
┣━ common
┃ ┣━ smarty //模板引擎
┃ ┣━ action.class.php //动作类
┃ ┗━ mysql.class.php // mysql数据库类
┃
┣━ configs
┃ ┗━ config.php //系统配置文件
┃
┣━ images
┃ ┗━ common.css
┃
┣━ templates
┣━ templates_c
┃
┣━ global.php //全局变量文件
┗━ index.php
1. mysql.class.php类代码
2. .\phpnew\common目录下action.class.php类代码,与mysql.class.php在同一个目录下。
以下为action.class.php类代码
3. 根目录下的global.php文件代码
4. config.php代码:
5. 根目录下index.php代码:
6. 后台配置 admin\common\目录下action.class.php代码:
7. page.class.php代码:
8. admin_global.php
9. admin_left.php
10. admin_main.php
11. 后台登陆界面 index.php
12. 登陆之后的主页面 main.php
┃
┣━ admin
┃ ┣━ common
┃ ┃ ┣━ action.class.php //后台动作类包含了权限认证等功能
┃ ┃ ┗━ page.class.php //后台分页类
┃ ┃
┃ ┣━ admin_global.php //后台全局变量文件
┃ ┣━ admin_left.php
┃ ┣━ admin_main.php
┃ ┣━ index.php
┃ ┗━ main.php
┃
┃
┣━ cache
┃
┣━ common
┃ ┣━ smarty //模板引擎
┃ ┣━ action.class.php //动作类
┃ ┗━ mysql.class.php // mysql数据库类
┃
┣━ configs
┃ ┗━ config.php //系统配置文件
┃
┣━ images
┃ ┗━ common.css
┃
┣━ templates
┣━ templates_c
┃
┣━ global.php //全局变量文件
┗━ index.php
1. mysql.class.php类代码
<?php class mysql { private $db_host; //数据库主机 private $db_user; //数据库用户名 private $db_pwd; //数据库用户名密码 private $db_database; //数据库名 private $conn; //数据库连接标识; private $result; //执行query命令的结果资源标识 private $sql; //sql执行语句 private $row; //返回的条目数 private $coding; //数据库编码,GBK,UTF8,gb2312 private $bulletin = true; //是否开启错误记录 private $show_error = true; //测试阶段,显示所有错误,具有安全隐患,默认关闭 private $is_error = false; //发现错误是否立即终止,默认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) { //调试中使用,sql语句出错时会自动打印出来 if ($this->show_error) { $this->show_error("错误SQL语句:", $this->sql); } } else { $this->result = $result; } return $this->result; } public function create_database($database_name) { $database = $database_name; $sqlDatabase = 'create database ' . $database; $this->query($sqlDatabase); } //将系统数据库与用户数据库分开,更直观的显示? public function show_databases() { $this->query("show databases"); echo "现有数据库:" . $amount = $this->db_num_rows($rs); echo "<br />"; $i = 1; while ($row = $this->fetch_array($rs)) { echo "$i $row[Database]"; echo "<br />"; $i++; } } //以数组形式返回主机中所有数据库名 public function databases() { $rsPtr = mysql_list_dbs($this->conn); $i = 0; $cnt = mysql_num_rows($rsPtr); while ($i < $cnt) { $rs[] = mysql_db_name($rsPtr, $i); $i++; } return $rs; } public function show_tables($database_name) { $this->query("show tables"); echo "现有数据库:" . $amount = $this->db_num_rows($rs); echo "<br />"; $i = 1; while ($row = $this->fetch_array($rs)) { $columnName = "Tables_in_" . $database_name; echo "$i $row[$columnName]"; echo "<br />"; $i++; } } public function mysql_result_li() { return mysql_result($str); } public function fetch_array() { return mysql_fetch_array($this->result); } //获取关联数组,使用$row['字段名'] public function fetch_assoc() { return mysql_fetch_assoc($this->result); } //获取数字索引数组,使用$row[0],$row[1],$row[2] public function fetch_row() { return mysql_fetch_row($this->result); } //获取对象数组,使用$row->content public function fetch_Object() { return mysql_fetch_object($this->result); } //简化查询select public function findall($table) { $this->query("SELECT * FROM $table"); } //简化查询select 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"); } } //简化删除del public function delete($table, $condition, $url = '') { if ($this->query("DELETE FROM $table WHERE $condition")) { if (!empty ($url)) $this->Get_admin_msg($url, '删除成功!'); } } //简化插入insert public function insert($table, $columnName, $value, $url = '') { if ($this->query("INSERT INTO $table ($columnName) VALUES ($value)")) { if (!empty ($url)) $this->Get_admin_msg($url, '添加成功!'); } } //简化修改update public function update($table, $mod_content, $condition, $url = '') { //echo "UPDATE $table SET $mod_content WHERE $condition"; exit(); if ($this->query("UPDATE $table SET $mod_content WHERE $condition")) { if (!empty ($url)) $this->Get_admin_msg($url); } } public function insert_id() { return mysql_insert_id(); } //指向确定的一条数据记录 public function db_data_seek($id) { if ($id > 0) { $id = $id -1; } if (!@ mysql_data_seek($this->result, $id)) { $this->show_error("SQL语句有误:", "指定的数据为空"); } return $this->result; } // 根据select查询结果计算结果集条数 public function db_num_rows() { if ($this->result == null) { if ($this->show_error) { $this->show_error("SQL语句错误", "暂时为空,没有任何内容!"); } } else { return mysql_num_rows($this->result); } } // 根据insert,update,delete执行结果取得影响行数 public function db_affected_rows() { return mysql_affected_rows(); } //输出显示sql语句 public function show_error($message = "", $sql = "") { if (!$sql) { echo "<font color='red'>" . $message . "</font>"; echo "<br />"; } else { echo "<fieldset>"; echo "<legend>错误信息提示:</legend><br />"; echo "<div style='font-size:14px; clear:both; font-family:Verdana, Arial, Helvetica, sans-serif;'>"; echo "<div style='height:20px; background:#000000; border:1px #000000 solid'>"; echo "<font color='white'>错误号:12142</font>"; echo "</div><br />"; echo "错误原因:" . mysql_error() . "<br /><br />"; echo "<div style='height:20px; background:#FF0000; border:1px #FF0000 solid'>"; echo "<font color='white'>" . $message . "</font>"; echo "</div>"; echo "<font color='red'><pre>" . $sql . "</pre></font>"; $ip = $this->getip(); if ($this->bulletin) { $time = date("Y-m-d H:i:s"); $message = $message . "rn$this->sql" . "rn客户IP:$ip" . "rn时间 :$time" . "rnrn"; $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)) { //echo "建立日期文件"; 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 "文件 $filename 写入成功"; 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 "<br />"; if ($this->is_error) { exit; } } echo "</div>"; echo "</fieldset>"; echo "<br />"; } //释放结果集 public function free() { @ mysql_free_result($this->result); } //数据库选择 public function select_db($db_database) { return mysql_select_db($db_database); } //查询字段数量 public function num_fields($table_name) { //return mysql_num_fields($this->result); $this->query("select * from $table_name"); echo "<br />"; echo "字段数:" . $total = mysql_num_fields($this->result); echo "<pre>"; for ($i = 0; $i < $total; $i++) { print_r(mysql_fetch_field($this->result, $i)); } echo "</pre>"; echo "<br />"; } //取得 MySQL 服务器信息 public function mysql_server($num = '') { switch ($num) { case 1 : return mysql_get_server_info(); //MySQL 服务器信息 break; case 2 : return mysql_get_host_info(); //取得 MySQL 主机信息 break; case 3 : return mysql_get_client_info(); //取得 MySQL 客户端信息 break; case 4 : return mysql_get_proto_info(); //取得 MySQL 协议信息 break; default : return mysql_get_client_info(); //默认取得mysql版本信息 } } //析构函数,自动关闭数据库,垃圾回收机制 public function __destruct() { if (!empty ($this->result)) { $this->free(); } mysql_close($this->conn); } //function __destruct(); 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); } } ?>
2. .\phpnew\common目录下action.class.php类代码,与mysql.class.php在同一个目录下。
以下为action.class.php类代码
<?php class action extends mysql{ public function get_show_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=gb2312" /> <link rel="stylesheet" href="css/common.css" mce_href="css/common.css" type="text/css" /> <meta http-equiv="refresh" content="2; URL=' . $url . '" /> <title>管理区域</title> </head> <body> <div id="man_zone"> <table width="30%" border="1" align="center" cellpadding="3" cellspacing="0" class="table" style="margin-top:100px;" mce_style="margin-top:100px;"> <tr> <th align="center" style="background:#cef" mce_style="background:#cef">信息提示</th> </tr> <tr> <td><p>' . $show . '<br /> 2秒后返回指定页面!<br /> 如果浏览器无法跳转,<a href="' . $url . '" mce_href="' . $url . '">请点击此处</a>。</p></td> </tr> </table> </div> </body> </html>'; echo $msg; exit (); } } ?>
3. 根目录下的global.php文件代码
<?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'); $db = new action($mydbhost, $mydbuser, $mydbpw, $mydbname, ALL_PS, $mydbcharset); //********smarty********** $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]; ?>
4. config.php代码:
<?php $mydbhost ="localhost"; //配置主机 $mydbuser ="root"; //数据库用户 $mydbpw ="123456"; //数据库密码 $mydbname ="news_php100"; //数据库名称 $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("|","{|}"); ?>
5. 根目录下index.php代码:
<?php header("Content-Type:text/html; charset=gbk"); include_once ('global.php'); mysql_query("set names 'GBK'"); $query=$db->query("SELECT * FROM `p_config`"); $row=$db->fetch_array($query); $smarty->assign("row","$row[name]"); $smarty->display("index.html"); ?>
6. 后台配置 admin\common\目录下action.class.php代码:
<?php class action extends mysql { /** * 用户权限判断($uid, $shell, $m_id) */ public function Get_user_shell($uid, $shell) { $query=$this->select('p_admin','*','`uid` =\''.$uid.'\''); $us = is_array($row = $this->fetch_array($query)); $shell = $us ? $shell == md5($row[username] . $row[password] . "TKBK") : FALSE; return $shell ? $row : NULL; } //end shell 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 (); } //end m_id } else { $this->Get_admin_msg('index.php','请先登陆'); } } //end shell //======================================== /** * 用户登陆超时时间(秒) */ public function Get_user_ontime($long = '3600') { $new_time = mktime(); $onlinetime = $_SESSION[ontime]; echo $new_time - $onlinetime; if ($new_time - $onlinetime > $long) { echo "登录超时"; session_destroy(); exit (); } else { $_SESSION[ontime] = mktime(); } } /** * 用户登陆 */ public function Get_user_login($username, $password) { $username = str_replace(" ", "", $username); $query=$this->select('p_admin','*','`username`=\''.$username.'\''); $us = is_array($row = $this->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_user_out() { session_destroy(); $this->Get_admin_msg('index.php','退出成功!'); } /** * 后台通用信息提示 */ 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=gb2312" /> <link rel="stylesheet" href="css/common.css" mce_href="css/common.css" type="text/css" /> <meta http-equiv="refresh" content="2; URL=' . $url . '" /> <title>管理区域</title> </head> <body> <div id="man_zone"> <table width="30%" border="1" align="center" cellpadding="3" cellspacing="0" class="table" style="margin-top:100px;" mce_style="margin-top:100px;"> <tr> <th align="center" style="background:#cef" mce_style="background:#cef">信息提示</th> </tr> <tr> <td><p>' . $show . '<br /> 2秒后返回指定页面!<br /> 如果浏览器无法跳转,<a href="' . $url . '" mce_href="' . $url . '">请点击此处</a>。</p></td> </tr> </table> </div> </body> </html>'; echo $msg; exit (); } //======================== } //end class ?>
7. page.class.php代码:
<?php /* * Created on 2007-6-8 * Programmer : Alan , Msn - haowubai@hotmail.com * php100.com Develop a project PHP - MySQL - Apache * Window - Preferences - PHPeclipse - PHP - Code Templates */ //为了避免重复包含文件而造成错误,加了判断函数是否存在的条件: $page = $_GET[page]; if(!function_exists(pageft)){ //定义函数pageft(),三个参数的含义为: //$totle:信息总数; //$displaypg:每页显示信息数,这里设置为默认是20; //$url:分页导航中的链接,除了加入不同的查询信息“page”外的部分都与这个URL相同。 // 默认值本该设为本页URL(即$_SERVER["REQUEST_URI"]),但设置默认值的右边只能为常量,所以该默认值设为空字符串,在函数内部再设置为本页URL。 function pageft($totle,$displaypg=20,$url=''){ //定义几个全局变量: //$page:当前页码; //$firstcount:(数据库)查询的起始项; //$pagenav:页面导航条代码,函数内部并没有将它输出; //$_SERVER:读取本页URL“$_SERVER["REQUEST_URI"]”所必须。 global $page,$firstcount,$pagenav,$_SERVER; //为使函数外部可以访问这里的“$displaypg”,将它也设为全局变量。注意一个变量重新定义为全局变量后,原值被覆盖,所以这里给它重新赋值。 $GLOBALS["displaypg"]=$displaypg; if(!$page) $page=1; //如果$url使用默认,即空值,则赋值为本页URL: if(!$url){ $url=$_SERVER["REQUEST_URI"];} //URL分析: $parse_url=parse_url($url); $url_query=$parse_url["query"]; //单独取出URL的查询字串 if($url_query){ //因为URL中可能包含了页码信息,我们要把它去掉,以便加入新的页码信息。 //这里用到了正则表达式,请参考“PHP中的正规表达式” $url_query=ereg_replace("(^|&)page=$page","",$url_query); //将处理后的URL的查询字串替换原来的URL的查询字串: $url=str_replace($parse_url["query"],$url_query,$url); //在URL后加page查询信息,但待赋值: if($url_query) $url.="&page"; else $url.="page"; }else { $url.="?page"; } //页码计算: $lastpg=ceil($totle/$displaypg); //最后页,也是总页数 $page=min($lastpg,$page); $prepg=$page-1; //上一页 $nextpg=($page==$lastpg ? 0 : $page+1); //下一页 $firstcount=($page-1)*$displaypg; //开始分页导航条代码: $pagenav="显示第 <B>".($totle?($firstcount+1):0)."</B>-<B>".min($firstcount+$displaypg,$totle)."</B> 条记录,共 $totle 条记录"; //如果只有一页则跳出函数: if($lastpg<=1) return false; $pagenav .= " <a href='$url=1'>首页</a> "; if ($prepg) $pagenav .= " <a href='$url=$prepg'>前页</a> "; else $pagenav .= " 前页 "; if ($nextpg) $pagenav .= " <a href='$url=$nextpg'>后页</a> "; else $pagenav .= " 后页 "; $pagenav .= " <a href='$url=$lastpg'>尾页</a> "; //下拉跳转列表,循环列出所有页码: $pagenav .= " 到第 <select name='topage' size='1' onchange='window.location=\"$url=\"+this.value'>\n"; for ($i = 1; $i <= $lastpg; $i++) { if ($i == $page) $pagenav .= "<option value='$i' selected>$i</option>\n"; else $pagenav .= "<option value='$i'>$i</option>\n"; } $pagenav .= "</select> 页,共 $lastpg 页"; } } ?>
8. admin_global.php
<?php session_start(); include_once("../common/mysql.class.php");//mysql类 include_once("../configs/config.php"); //配置参数 include_once("common/page.class.php"); //后台分页类 include_once("common/action.class.php"); //数据库操作类 $db = new action($mydbhost, $mydbuser, $mydbpw, $mydbname, ALL_PS, $mydbcharset);//数据库操作类 $uid = $_SESSION[uid]; $shell = $_SESSION[shell]; ?>
9. admin_left.php
<?php include_once ('admin_global.php'); $r=$db->Get_user_shell_check($uid, $shell); ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML><HEAD><TITLE>PHP100_left</TITLE> <META http-equiv=Content-Type content="text/html; charset=gb2312"> <link href="images/private.css" mce_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> <META content="MSHTML 6.00.6.000.16890" name=GENERATOR> </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><IMG src="images/menu.gif" mce_src="images/menu.gif" align=absMiddle border=0> <A href="admin_main.php" mce_href="admin_main.php" target=main>配置信息</A></TD> </TR> <TR> <TD><IMG src="images/menu.gif" mce_src="images/menu.gif" align=absMiddle border=0> <A onClick="return confirm('提示:您确定要退出系统吗?')" href="admin_main.php?action=logout" mce_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" mce_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><IMG src="images/menu.gif" mce_src="images/menu.gif" align=absMiddle border=0> <A href="admin_news_class.php" mce_href="admin_news_class.php" target=main>新闻分类</A></TD> </TR> <TR> <TD><IMG src="images/menu.gif" mce_src="images/menu.gif" align=absMiddle border=0> <A href="admin_news_list.php" mce_href="admin_news_list.php" target=main>新闻列表</A></TD> </TR> <TR> <TD><IMG src="images/menu.gif" mce_src="images/menu.gif" align=absMiddle border=0> <A href="admin_news_add.php" mce_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" mce_style="margin-top:5px"> <TBODY> <TR> <TH align=middle>〓 版本信息 〓</TH></TR> <TR> <TD align=middle><a href="http://localhost/include/php069/" mce_href="http://localhost/include/php069/" target="_blank">Localhost 1.0</a></TD></TR> <TR> <TD align=middle>PHP100.com</TD></TR></TBODY></TABLE></CENTER></BODY></HTML>
10. admin_main.php
<?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"); } ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML><HEAD><TITLE>后台管理</TITLE> <META http-equiv=Content-Type content="text/html; charset=gb2312"> <META content=Alan name=Author><LINK rev=MADE href="mailto:haowubai@hotmail.com"><LINK href="images/private.css" mce_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> <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="description" size=40 value="<?php echo $row_arr[description]?>"/> </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>
11. 后台登陆界面 index.php
<?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" mce_href="mailto:haowubai@hotmail.com"><title>后台管理</title> <link rel='stylesheet' type='text/css' href="images/private.css" mce_href="images/private.css"> <mce:script type="text/javascript"><!-- if(self!=top){ window.open(self.location,'_top'); } // --></mce: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> </form> </tr> </table> </body></html>
12. 登陆之后的主页面 main.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN"> <html> <head> <title>网页后台控制面板</title> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/> <script language="javascript"> window.self.focus(); </script> <meta content="MSHTML 6.00.6000.16890" name="GENERATOR" /> </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>
相关文章推荐
- PHP+MYSQL新闻系统开发之PHP100视频教程69
- PHP+MYSQL新闻系统开发之后台更新与删除文件admin_news_class.php
- PHP+MYSQL新闻系统开发之admin_news_add.php和admin_news_list.php
- PHP+MYSQL会员系统的开发实例教程
- PHP+MYSQL会员系统的开发实例教程
- [置顶] 【PHP开发】Mac系统ThinkPhp连接MySQL 教程(二)
- PHP+MYSQL新闻系统开发之后台编辑更新文件admin_news_edit.php
- PHP+MYSQL会员系统的开发实例教程
- PHP+MySQL视频教程
- PHP版微信公众平台搭建与开发(PDF完整版+视频教程+代码)
- 开源博客QBlog开发者视频教程:开篇-开发基础配置与系统运行(一)
- PHP特级课视频教程_第十六集 MySQL基础操作(二)_李强强
- PHP新闻系统开发流程
- java swing mysql实现的超市收银系统项目源码附带视频指导教程
- 微信小程序开发视频教程学习(第3天):上午前端下午PHP
- PHP特级课视频教程_第三十六集 Mongodb与php开发结合_李强强
- java swing mysql实现的仓库商品管理系统项目源码附带视频指导教程
- 0 WINDOWS系统 + Apache +PHP5 +Zend + MySQL + phpMyAdmin安装方法(视频教程)
- [推荐] 网络最强PHP开发工具+电子书+视频教程等资料下载汇总
- IIS+PHP+MySQL+Zend配置 (视频教程)