A. CI怎麼關閉調試
您好,我來為您解答:
$this->output->enable_profiler(FALSE);
在config/databses.php中有$db['default']['db_debug'] = TRUE;設為FALSE
config/config.php中也有相應的錯誤記錄設置$config['log_threshold'] = 2;
B. CI怎麼關閉調試
在index.php的第一行error_reporting(0);
$this->output->enable_profiler(FALSE);在config/databses.php中有$db['default']['db_debug'] = TRUE;設為FALSEconfig/config.php中也有相應的錯誤記錄設置$config['log_threshold'] = 2;
C. php 統計一個文件中某段文字出現多少次出現問題。
你的程序不好,多次讀取文件,第一次count的時候系統會把文件所有內容讀入一個數組,然後你有循環每一行去讀,不要這樣寫程序。
按照你現在的思路,可以這樣寫:
foreach (file('access.log') as $line){.......}
你要查看某個字元串出現的次數,不要使用preg_match,那樣效率很低的,最簡單就是下面一個語句:
$n=count(explode('GET /CI/index.php/tongji',file_get_contents('access.log')));
echo "總共出現 $n 次";
補充:
你的錯誤運行的時候系統會提示你,有的語法不對,有的邏輯不對,例如:
$fh[] .= file_get_contents("access.log",false,NULL,($b-1)*100,100); //按段獲得文件的內容
這是不對的,不能對數組進行連接,如果是往數組裡面PUSH一個新記錄,應該刪除.,如果是往字元串後面添加內容,刪除[]。不過你這種寫法就是不科學的,怎麼修改都會錯!
你發消息說我這些寫會在文件過大時會出問題,其實你的問題更大,你內存裡面存放文件的多個副本,我只存了一次,為了對付超級大文件,那麼應該使用下面的方法:
$fp=fopen('access.log','r');
$i=0;//一定記住初始化變數
while(!feof($fp)){
$line=fgets($fp);
if (preg_match("/GET\s?\/CI\/index\.php\/tongji/i" ,$line)) // 正則匹配這個語句我沒有檢查你的是否正確,本來就不該用正則的,我粘貼你的語句只是讓你明白
{$i++;}
}
fclose($fp);
echo $i;
D. php顯示中文亂碼,phpmyadmin里的MySQL資料庫中文亂碼,如何解決
將瀏覽器中的編碼改成utf-8,資料庫中也是。在php頁面首行加上header("Content-type:
text/html;
charset=utf-8");,必須首行,前面不能有輸出。
還有,在查詢資料庫時加上:mysql_query(set
names
utf-8);
E. 求一份php的CI框架寫的日誌記錄demo,最好是寫進日誌文件,不是插入資料庫的,非常感謝
functionlog($filename,$loginfo){
//打開文件
$fd=fopen($filename,"a");
//增加文件
$str="[".date("Y/m/dh:i:s",time())."]".$loginfo;
//寫入字元串
fwrite($fd,$str." ");
//關閉文件
fclose($fd);
}
在你要寫日誌的地方 調用以上函數就可以
F. CI是怎麼載入類的
LZ顯然是不夠仔細,CI在執行CI_Controller類之前已經執行了CodeIgniter.php,而is_loaded()函數是在load_class函數中被調用的,再返回到CodeIgniter.php文件中看,該文件中有很多地方調用了load_class(),比如$BM =& load_class('Benchmark', 'core'); $EXT =& load_class('Hooks', 'core'); $CFG =& load_class('Config', 'core'); 等等,CI_Controller中調用的is_load()怎麼沒載入任何文件呢?恰恰是載入了一些核心的類庫。 要知道CI_Controller中調用的is_load()有沒有載入文件或者它初始載入了哪些文件,其實很簡單,你就在CI_Controller中的__construct函數里把is_load()的返回值列印出來不就一目瞭然嗎?
G. 新手上路求助,CI框架不列印日誌
自己實驗過的。
第一步:index.php文件,修改環境為開發環境
define('ENVIRONMENT', 'development');
第二步:application/config/config.php文件修改
$config['log_threshold'] = 4; //0表示關閉,4表示所有級別都打開
第三步:在需要輸出日誌的地方加入如下類似語句
log_message('error', 'Some variable did not contain a value.');
第四步:在application/logs目錄就可以看到日誌文件
H. php處理大文件文件
我前幾天有一個面試,面試題就是有這樣一道題。先把自己的思路說一下,因為信息量非常的大,所以我採用了分表,分成24張表,每個小時一張,雖然凌晨時刻的表可能很少數據,但這樣sum欄位的問題就容易解決了,我理解的sum欄位是一個小時同一個用戶在相同的環境的登陸次數。這樣理解不知對否,請網友自行甄辨。然後我通過PHP中的fgets函數一行一行的數據取出,入表。實驗了幾萬條數據是沒有問題的,但是上億條數據可能夠嗆。這一點也請網友注意,我也是新手。只是看到這里沒有答案,給大家一個參考。廢話不多,看流程:
日誌文件(access.log)格式:
200/alipeng.gif?zoneid=2&bannerid=44&clentid=6&materialid=64&redirect=http%3a%2f%2fwww.alipeng.cn&time=1384444800.832&ip=127.0.0.1&user_agent=Mozilla/5.0(X11;Linuxx86_64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/31.0.1650.48Safari/537.36&utrace=
502/alipeng.gif?zoneid=2&bannerid=44&clentid=6&materialid=64&redirect=http%3a%2f%2fwww.alipeng.org&time=1384444800.904&ip=127.0.0.1&user_agent=Mozilla/5.0(X11;Linuxx86_64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/31.0.1650.48Safari/537.36&utrace=
配置文件cfg.php:
define(HOST,'localhost');//主機名
define(USER,'root');//資料庫賬號
define(PASS,'111111');//資料庫密碼
define(DBNAME,'test');//所用的資料庫
define(CHARSET,'utf8');//使用的字元集
具體代碼test.php:
<?php
header("content-type:text/html;charset=utf-8");
require'./cfg.php';
$link=mysql_connect(HOST,USER,PASS)ordie('連接資料庫失敗');
//程序中自動建庫和建表,這樣一定程度上拖慢了程序的速度
//創建資料庫
$crdb="createdatabaseifnotexists".DBNAME;
if(!mysql_query($crdb)){
die('創建資料庫失敗');
}
//鏈接資料庫
mysql_select_db(DBNAME)ordie('選擇資料庫失敗');
mysql_set_charset(CHARSET);
//因為數據量很大我將數據按小時分表,分成24個表,每小時一個表,這樣num欄位的值也好做統計
//數據循環建表
for($i=0;$i<24;$i++){
if($i<10){
$tbhz='0'.$i;//如果前10張表,表後綴應該是00-09
}else{
$tbhz=$i;
}
$ctbsql="_{$tbhz}(
idintnotnullauto_incrementprimarykey,
zoneidintnotnulldefault0,
banneridintnotnulldefault0,
clentidintnotnulldefault0,
materialidintnotnulldefault0,
redirectchar(200)notnulldefault'',
timechar(16)notnulldefault'',
user_agentchar(200)notnulldefault'',
utracechar(32)notnulldefault'',
sumintnotnulldefault0
)TYPE=_general_ci";
mysql_query($ctbsql);
}
//打開文件
$file=fopen("./access.log",'r')ordie("打開文件失敗");
//對文件內容進行循環,直到文件末尾才停止
while(!feof($file)){
//每次讀取一行
$line=fgets($file,1024);
//狀態是200的進行寫入資料庫操作
if(preg_match('/^200/',$line)){
$pinfo=parse_url($line);//url信息
$ext=$pinfo['query'];//取得傳遞的各個參數
$parray=explode('&',$ext);//根據&分解為數組
//因為分解為數組後並不是要的值,所以要對值進行一次截取,將等號及等號左邊的都去掉
foreach($parrayas$val){
$narray[]=ltrim(strstr($val,'='),'=');
}
$narray[8]=rtrim($narray[8],'_');
//截取時間的秒數
$getmun=substr($parray[5],5,10);
$time=date('Y-m-dH',$getmun);//將秒數轉化為時間類型。
//得到表後綴
$tbhz=date('H',$getmun);
$sql="insertintologininfo_{$tbhz}values(null,'{$narray[0]}','{$narray[1]}','{$narray[2]}','{$narray[3]}','{$narray[4]}','{$time}','{$narray[7]}','{$narray[8]}',0)";
//echo$sql;
$res=mysql_query($sql);//執行插入
if(!$res||!mysql_affected_rows()>0){
die('寫入資料庫失敗');
}
unset($narray);//循環一次將narray銷毀,為下一次循環做准備
//var_mp(parse_url($line)['query']);
}
}
fclose($file);//關閉
//因為sum欄位還是0,下面代碼段需要處理sum欄位的值
//24張表循環處理
for($i=0;$i<24;$i++){
if($i<10){
$tbhz='0'.$i;//如果前10張表,表後綴應該是00-09
}else{
$tbhz=$i;
}
//該sql語句是把同一個小時內,並且符合條件相等的登陸的總次數和需要的登陸信息查出,為下面修改sum做准備
$sql="SELECTCOUNT('zoneid')ASsum,zoneid,bannerid,clentid,materialid,redirect,user_agent,utraceFROMlogininfo_{$tbhz}GROUPBYzoneid,bannerid,clentid,materialid,redirect,user_agent,utrace";
//發送查詢sql
$res=mysql_query($sql);
if($res&&mysql_num_rows($res)>0){
while($row=mysql_fetch_assoc($res)){
//修改sum欄位,即同一小時內的登陸次數
$upsql="updatelogininfo_{$tbhz}setsum='{$row['sum']}'wherezoneid='{$row['zoneid']}'andbannerid='{$row['bannerid']}'andclentid='{$row['clentid']}'andmaterialid='{$row['materialid']}'andredirect='{$row['redirect']}'anser_agent='{$row['user_agent']}'antrace='{$row['utrace']}'";
//發送修改sql,執行修改sum
$upres=mysql_query($upsql);
if(!$upres){
die('修改登陸sum失敗');
}
}
}
}
echo'數據成功入表';
使用說明:
將配置文件cfg.php中的連接資料庫賬號、密碼修改為自己本機的(默認新增的庫名是test)
直接運行test1.php
I. CI怎麼連接sqlserver2012,用的是PHPstudy
一、啟用FileTable
1、修改資料庫引擎的屬性
打開「SQL Server配置管理器」,修改SQL Server資料庫引擎的屬性。使用此頁可針對此 Microsoft SQL Server 2012安裝啟用 FILESTREAM。
(1)針對 Transact-SQL 訪問啟用 FILESTREAM
選中此項可針對 Transact-SQL 訪問啟用 FILESTREAM。 必須選中此控制選項,才能使用其他控制選項。如果不啟用此選項,就不能添加FileStream文件組。
(2)針對文件 I/O 流訪問啟用 FILESTREAM
選中此項可針對 FILESTREAM 啟用 Win32 流訪問。
(3)Windows 共享名
使用此控制選項可輸入將用來存儲 FILESTREAM 數據的 Windows 共享的名稱。默認為該SQL Server實例的名稱。
(4)允許遠程客戶端針對 FILESTREAM 數據啟用流訪問
選中此控制選項可允許遠程客戶端訪問此伺服器上的此 FILESTREAM 數據。
2、修改伺服器的屬性
打開「SQL Server Management Studio」,修改該實例的配置。默認配置如下:
上述選項解釋如下:
(1)「FILESTREAM 訪問級別」顯示 SQL Server 實例上支持的 FILESTREAM 的當前級別。若要更改訪問級別,請選擇以下值之一:
已禁用
無法將二進制大型對象 (BLOB) 數據存儲在文件系統中。此為默認值。即filestream access level=0
已啟用 Transact-SQL 訪問
可使用 Transact-SQL 訪問 FILESTREAM 數據,但不能通過文件系統進行訪問。即filestream access level=1
已啟用完全訪問
FILESTREAM 數據可使用 Transact-SQL 以及通過文件系統進行訪問。即filestream access level=0
注意:在首次啟用 FILESTREAM 時,您可能需要重新啟動計算機才能配置驅動程序。
(2)「FILESTREAM 共享名稱」顯示在安裝過程中選擇的 FILESTREAM 共享的只讀名稱。
在本次實驗中,我們將「FILESTREAM 訪問級別」 設定為:已啟用完全訪問。
如果是通過T-SQL腳本執行,則運行以下腳本:
EXEC sys.sp_configure N'filestream access level', N'2'
RECONFIGURE WITH OVERRIDE
注意:設置完成之後,重啟實例。
3、配置防火牆
若要在防火牆保護的環境中使用 FILESTREAM,客戶端和伺服器都必須能夠將 DNS 名稱解析為包含 FILESTREAM 文件的伺服器。FILESTREAM 要求 Windows 文件共享埠 139 和 445 處於打開狀態。
二、配置文件組
1、添加文件組
完成上述操作之後,就可以為該資料庫添加專用於FileStream的文件組。
如果是通過腳本操作,請運行以下腳本:
ALTER DATABASE [db01] ADD FILEGROUP [FileStreamFileGroup] CONTAINS FILESTREAM
2、添加文件
完成上述操作之後,就可以為該資料庫添加FilStream類型的資料庫文件。
在本例中,系統並沒有為「FileStream數據」的文件類型創建mdf或ndf文件,而是在文件夾C:\SqlData下面自動創建以邏輯名稱命名的文件夾,即 C:\SqlData\FileData。其中filestream.hdr 文件是 FILESTREAM 容器的頭文件。當這個資料庫被刪除時,mdf、ndf、log連同這個文件夾都會被刪除。
如果是通過腳本操作,請運行以下腳本:
ALTER DATABASE [db01] ADD FILE ( NAME = N'FileData', FILENAME = N'C:\SqlData\FileData' ) TO FILEGROUP [FileStreamFileGroup]
注意:在上例中,在運行腳本之前,必須存在C:\SqlData,建議使用右側的選擇按鈕選擇路徑。如果路徑不存在,就會報錯:
同時不能存在重復的文件夾,即不能存在C:\SqlData\FileData。否則也會報錯:
3、啟動非事務訪問
FileTable 使 Windows 應用程序可以獲取 FILESTREAM 數據的 Windows 文件句柄而不需要 SQL Server 事務。為了允許對 SQL Server 中存儲的文件進行此非事務性訪問,必須為要包含 FileTable 的每個資料庫在資料庫級別上指定所需的非事務性訪問級別。
選項解釋如下:
(1)FILESTREAM 非事務訪問
為從文件系統到 FileTables 中存儲的 FILESTREAM 數據的非事務性訪問指定以下選項之一:OFF、READ_ONLY 或 FULL。
如果在伺服器上未啟用 FILESTREAM,則該值將設置為 OFF 並且被禁用。在本次實驗中,將其設置為FULL。
(2)FILESTREAM 目錄名稱
為與所選資料庫相關聯的 FILESTREAM 數據指定目錄名稱。在 FileTable 文件夾層次結構中,此資料庫級目錄將成為在實例級別為 FILESTREAM 指定的共享名稱的子級以及在資料庫中創建的 FileTable 的父級。
如果啟用非事務性訪問時沒有提供目錄名稱,則在以後必須提供它,這樣才能在資料庫中創建 FileTable。
如果是通過腳本執行,如下:
ALTER DATABASE db01
SET FILESTREAM ( NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N'ImageFiles' )
注意:更改現有資料庫時,調用帶 DIRECTORY_NAME FILESTREAM 選項的 ALTER DATABASE (Transact-SQL) 語句。使用這些選項更改目錄名稱時,資料庫必須以獨占方式鎖定,沒有打開的文件句柄。
說明:為檢查是否在資料庫上啟用了非事務性訪問,可以查詢目錄視圖,腳本如下:
SELECT DB_NAME(database_id), non_transacted_access, non_transacted_access_desc
FROM sys.database_filestream_options
三、創建FileTable
1、創建第一個FileTable
「SQL Server Management Studio」只提供一個腳本模板,要想創建FileTable還是得用腳本完成:
USE db01
CREATE TABLE ImageTable1 AS FILETABLE
官方的範本為:
USE [db01]
CREATE TABLE [dbo].[ImageTable1] AS FILETABLE ON [PRIMARY] FILESTREAM_ON [FileStreamFileGroup]
WITH
(FILETABLE_DIRECTORY = N'ImageTable1', FILETABLE_COLLATE_FILENAME = Chinese_PRC_CI_AS)
2、創建第二個FileTable
CREATE TABLE ImageTable2 AS FILETABLE
3、獲取共享路徑
文件表創建之後,就會相應的產生一個文件表共享目錄,該目錄路徑可以通過內建函數獲取:
SELECT FileTableRootPath('ImageTable1')
本次實驗所返回的結果為:\\SQL1\SqlFile\ImageFiles\ImageTable1
4、查看
通過Windows資源管理器,可見已經創建了以GUID命名的文件夾。
通過SQL Server Management Studio,查看錶的結構。
四、操作
1、向文件夾中添加文件
通過 「Windows資源管理器」,向文件夾\\SQL1\SqlFile\ImageFiles\ImageTable1中添加一個文件A01.GIF。然後運行腳本:
select * from ImageTable1
結果如下:
可見, SQL Server自動在Table中添加了記錄。
2、文件改名
運行以下腳本:
update ImageTable1 set name='Cup.GIF' where name='A01.GIF'
通過「Windows資源管理器」,查看文件夾\\SQL1\SqlFile\ImageFiles\ImageTable1,可見文件A01.GIF已經被改名為Cup.GIF 。
3、查看共享文件夾
我們可以繼續復制其他文件,然後通過「Windows資源管理器」,查看文件夾。
4、刪除文件
可以使用腳本刪除,例如:
Delete ImageTable1 where name='Cup.GIF'
或者,通過「Windows資源管理器」直接刪除該文件。
五、備份和還原
1、備份資料庫
使用 SQL Server 備份資料庫時,FILESTREAM 數據將與資料庫中的結構化數據一起備份。
2、部分備份
如果不想將 FILESTREAM 數據與關系數據一起備份,則可以使用部分備份將 FILESTREAM 文件組排除在外。
J. php怎麼在mysql創建留言板步驟
工具:
Dreamweaver
php、mysql伺服器
步驟/方法
首先是確定自己的留言板需求.例如:名字,郵件及留言內容.
一. 建立一個資料庫guestbook。
CREATE TABLE IF NOT EXISTS `content` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(20) NOT NULL,
`email` varchar(50) NOT NULL,
`content` varchar(200) NOT NULL,
PRIMARY KEY (`id`))
ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=3;
二. 新建config.php
< ? php
$q = mysql_connect("伺服器","資料庫用戶","資料庫密碼");
if(!$q)
{
die('Could not connect: ' . mysql_error());
}
mysql_query("set names utf8"); //以utf8讀取數據
mysql_select_db("guestbook",$q); //資料庫
?>
三. 新建index.php
< ?php
include("config.php"); //引入資料庫連接文件
$sql = "select * from content"; //搜索數據表content
$resule = mysql_query($sql,$q);
?>
< html>
< meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
< body>
< table width="678" align="center">
< tr>
< td colspan="2">< h1>留言本< /h1>< /td>
< /tr>
< tr>
< td width="586">< a href="index.php">首頁< /a> | < a href="liuyan.php">留言< /a>< /td>
< /tr>
< /table>
< p>
< ?
while($row=mysql_fetch_array($resule))
{
?>
< /p>
< table width="678" border="1" align="center" cellpadding="1" cellspacing="1">
< tr>
< td width="178">Name:< ? echo $row[1] ?>< /td>
< td width="223">Email:< ? echo $row[2] ?>< /td>
< /tr>
< tr>
< td colspan="4">< ? echo $row[3] ?>< /td>
< /tr>
< tr>
< /table>
< ?
}
?>
< /body>
< /html>
四. 新建liuyan.php
< html>
< body>
< meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
< table width="678" align="center">
< tr>
< td colspan="2">< h1>留言本< /h1>< /td>
< /tr>
< tr>
< td width="586">< a href="index.php">首頁< /a> | < a href="liuyan.php">留言< /a>< /td>
< /tr>
< /table>
< table align="center" width="678">
< tr>
< td>
< form name="form1" method="post" action="post.php">
< p>
Name:
< input name="name" type="text" id="name">
< /p>
< p>Email:< input type="test" name="email" id="email">< /p>
< p>
留言:
< /p>
< p>
< textarea name="content" id="content" cols="45" rows="5">< /textarea>
< /p>
< p>
< input type="submit" name="button" id="button" value="提交">
< input type="reset" name="button2" id="button2" value="重置">
< /p>
< /form>
< /td>
< /tr>
< /table>
< /body>
< /html>
五. 新建post.php
< ?php
header("content-Type: text/html; charset=utf-8");
include("config.php");
$name= $_POST['name'];
$email= $_POST['email'];
$patch = $_POST['content'];
$content = str_replace("
","< br />",$patch);
$sql = "insert into content (name,email,content) values ('$name','$email','$content')";
mysql_query($sql);
echo "< script>alert('提交成功!返回首頁。');location.href='index.php';< /script>";
?>
這樣已經成功的寫出一個留言板了。
第二部分
此次將在上面版本上加多管理,回復等功能。
首先在sql中位元組。
ALTER TABLE `content` ADD `reply` VARCHAR( 200 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `content`
一. 新建login.php
< html xmlns="http://www.w3.org/1999/xhtml">
< meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
< title>無標題文檔< /title>
< /head>
< body>< table width="678" align="center">
< tr>
< td colspan="2">< h1>留言本< /h1>< /td>
< /tr>
< tr>
< td width="586">< a href="index.php">首頁< /a> | < a href="liuyan.php">留言< /a>< /td>
< /tr>
< /table>
< table align="center" width="678">
< tr>
< td align="center">
< form name="form1" method="post" action="login2.php">
< label for="textfield">< /label>
< p> < /p>
< p>帳號:
< input type="text" name="name" id="name">
< /p>
< p>密碼:
< input type="password" name="pw" id="pw">
< /p>
< p>
< input type="submit" name="button" id="button" value="提交">
< input type="reset" name="button2" id="button2" value="重置">
< /p>
< /form>< /td>
< /tr>
< /table>
< /body>
< /html>
二.login2.php
< ?
session_start();
header("content-Type: text/html; charset=utf-8");
$name = $_POST['name'];
$pw = $_POST['pw'];
if($name == "admin" && $pw == "admin"){
$_SESSION["adminname"] = $name;
echo "< script>alert('登錄完成,返回首頁!');location.href='index.php';< /script>";
}else{
echo "< script>alert('錯誤!');location.href='login.php';< /script>";
}
?>
三. 在原有的index.php上添加
< ?php
session_start();
include("config.php");
$sql = "select * from content";
$resule = mysql_query($sql,$q);
?>
< html>
< meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
< body>
< table width="678" align="center">
< tr>
< td colspan="2">< h1>留言本< /h1>< /td>
< /tr>
< tr>
< td width="586">< a href="index.php">首頁< /a> | < a href="liuyan.php">留言< /a>< /td>
< td width="80">
// 新增管理員登錄
< ?php
if (isset($_SESSION['adminname']) && $_SESSION["adminname"] == "admin"){
echo "< a href='logout.php'>登出< /a>";
}else{
echo "< a href='login.php'>管理員登錄< /a>";
}
?>
< /td>
< /tr>
< /table>
< p>
< ?
while($row=mysql_fetch_array($resule))
{
?>
< /p>
< table width="678" border="1" align="center" cellpadding="1" cellspacing="1">
< tr>
< td width="178">Name:< ? echo $row[1] ?>< /td>
< td width="223">Email:< ? echo $row[2] ?>< /td>
< td width="100">
< ?php
if(isset($_SESSION['adminname']) && $_SESSION["adminname"] == "admin"){
echo "< a href='huifu.php?id=" . $row[0] . "'>回復< /a>";
echo " | " . "< a href='delete.php?id=" . $row[0] . "'>刪除< /a>";
} else {
echo "";
}
?>
< /td>
< /tr>
< tr>
< td colspan="4">< ? echo $row[3] ?>< /td>
< /tr>
< tr>
< td colspan="4">< ?
if($row[4] == ""){
?>
< ? echo "暫無回復。";?>
< ? }else {echo "管理員回復:". $row[4]; } ?>< /td>
< /tr>
< /table>
< ?
}
?>
< /body>
< /html>
四. 新建huifu.php
< ?php
include("config.php");
$sql = "select * from content where id=".$_GET["id"];
$resule = mysql_query($sql,$q);
SetCookie("id",$_GET["id"]);
session_start();
header("content-Type: text/html; charset=utf-8");
if(empty($_SESSION["adminname"])){
exit("< script language='javascript'>alert('您尚未登錄後台,或登錄已超時,請重新登錄!');window.location.href='login.php';< /script>");
}
?>
< !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>
< table width="678" align="center">
< tr>
< td colspan="2">< h1>留言本< /h1>< /td>
< /tr>
< tr>
< td width="586">< a href="index.php">首頁< /a> | < a href="liuyan.php">留言< /a>< /td>
< /tr>
< /table>
< table align="center" width="678">
< tr>
< td>
< form name="reply" method="post" action="reply.php" >
< p>回復:
< ?
while($row=mysql_fetch_array($resule))
{
echo $row[3];
}
?>
< /p>
< p>
< textarea name="reply" id="reply" cols="45" rows="5">< /textarea>
< /p>
< p>
< input type="submit" name="button" id="button" value="回復" />
< input type="reset" name="button2" id="button2" value="重置" />
< /p>
< /form>
< /td>
< /tr>
< /table>
< /body>
< /html>
五. reply.php 回復留言提交頁面.
< ?
include("config.php");
$id = $_COOKIE["id"];
$sql = "select * from content";
header("content-Type: text/html; charset=utf-8");
$patch = $_POST["reply"];
$reply = str_replace("
","< br />",$patch);
$resule = mysql_query("UPDATE `2`.`content` SET `reply` = '$reply' WHERE `content`.`id` ="."$id");
echo "< script>alert('回復成功!');location.href='index.php';< /script>";
?>
這樣就可以建立出一個簡單的管理.管理帳號都是admin 因為只是判別輸入的是不是admin 是的話就把值輸入進session中.