們先新建一個database.php,用來寫數據庫連接,之后每次需要使用的時候直接調用這個文件這樣就不需要在每個文件中重復的寫同樣的代碼,圖一貼了database的代碼,代碼中都有注釋。
(圖一)database.php
寫完數據庫連接,我們在來寫一個登錄的頁面,新建一個login.php,在圖二html代碼中寫上用戶名和密碼的輸入框,代碼中使用下拉框選擇的用戶名,如果需要使用文本框輸入,請參考登錄密碼的寫法。
(圖二)login.php
(圖三)
我們運行一下login.php文件看下效果(圖三),可以看到基本的效果已經達到了,我們繼續在代碼的最上端加上連接數據庫的語句(圖四)。
(圖四)
數據庫的基本工作已經做好了,我們是不是應該去建個數據,我們在MySql中新建一個數據庫命名為register,在其中建立一個users表,user_id(自增長列),userName(用戶名),password(密碼)。建好后在users表中增加幾條數據如(圖五)。
(圖五)
在用戶名的下拉框中沒有可以選擇的用戶名,我們在增加一段php代碼,使其能獲取到數據庫中的用戶名,并且顯示在下拉框中(圖六)。
(圖六)
我們刷新一下頁面看下是不是能顯示出數據庫中的2個用戶名(圖七)在不使用數據庫后記得關閉數據庫哦。
(圖七)
現在輸入用戶名和密碼點擊登錄是沒有反應的,我們在加上一個from,使用post傳值,這樣login.php這個頁面就寫完了,整段代碼粘貼到(圖八)。
(圖八)
然后我們來寫判斷登錄的php文件logins.php(圖九),這段代碼我就不分開說了因為比較短,都有打備注。
(圖九)
最后測試,密碼輸入1顯示登錄成功并跳轉home頁面,輸入其他密碼顯示登錄失敗并跳回登錄頁面。沒有問題,如果大家有看不懂的地方,或者我有寫錯的地方麻煩大家評論或者私信我我都會一一回復的。
今天這個連接數據庫登錄的頁面寫完了,下一篇文章我們來寫注冊,第一次寫文章可能寫的不是太好望見諒。
文件系統處理的作用:
1. 所有的項目離不開文件處理
2. 可以用文件長時間保存數據
3. 建立緩存, 服務器中文件操作
文件處理
以Linux為模型的, 在Windows只能獲取file, dir或unknow 三種類型
在Linux/Unix下, block, char, dir, fifo, file, link, unknown和種型
block :塊設置文件,磁盤分區,軟驅, cd-rom等
char: 字符設備,I/O 以字符為單位, 鍵盤,打印機等
dir: 目錄也是文件的一種
fifo:
file:
link:
unknown
filetype("目錄或文件名")
is_array();
is_int();
is_string();
is_null;
is_bool();
is_dir -- 判斷給定文件名是否是一個目錄
is_executable -- 判斷給定文件名是否可執行
is_file -- 判斷給定文件名是否為一個正常的文件
is_link -- 判斷給定文件名是否為一個符號連接
is_readable -- 判斷給定文件名是否可讀
is_uploaded_file -- 判斷文件是否是通過 HTTP POST 上傳的
is_writable -- 判斷給定的文件名是否可寫
is_writeable -- is_writable() 的別名
file_exists();
filesize();
is_readable();
is_writeable();
filectime();
filemtime();
fileactime();
stat();
相對路徑:相對于當前目錄的上級和下級目錄
. 當前目錄
.. 上一級目錄
./php/apache/index.php
php/apahce/index.php
login.php
./login.php
../images/tpl/logo.gif
路徑分隔符號
linux/Unix "/"
windows "\"
DIRECTORY_SEPARATOR 為不同平臺,在Windows \ Linux /
不管是什么操作系統PHP的目錄分割符號都支技 / (Linux)
在PHP和Apache配置文件中如果需要指定目錄,也使用/作為目錄符號
絕對路徑:
/ 根路徑
/images/index.php
指的操作系統的根
指的是存放網站的文檔根目錄
分情況
如果是在服務器中執行(通過PHP文件處理函數執行)路徑 則 “根”指的就是操作系統的根
如果程序是下載的客戶端,再訪問服務器中的文件時,只有通過Apache訪問,“根”也就指的是文檔根目錄
http://www.xsphp.com/logo.gif
basename(url)
dirname(url)
pathinfo(url)
創建文件 touch("文件名")
刪除文件 unlink("文件路徑");
移動文件 為文件重新命名 rename("當前文件路徑", “目錄為文件路徑”)
復制文件 copy("當前", “目標”);
一定要有PHP執行這個文件權限, Apache, 一個用戶
和權限設計有關的函數
ls -l 或 ll
_rwxrwxrwx 777
_ 類型 _文件 d 表示是目錄 l b
rwx 表這個文件的擁有者 r讀 w寫 x執行
rwx 表這個文件的擁有者所在的組 r讀 w寫 x執行
rwx 其它用戶對這個為文件的權限 r讀 w寫 x執行
r 4
w 2
x 1
7 7 7 4+2+1 4+2+1 4+2+1
rwx rwx rwx
644
4+2 4 4
rw_ r__ r__
754
chmod u=rwx,g=rw,o=x
chmod 777 demo.php
chmod 644 demo.html
chown mysql demo.php
chgrp apache demo.php
chgrp -- 改變文件所屬的組
chmod -- 改變文件模式
chown -- 改變文件的所有者
filegroup -- 取得文件的組
fileowner -- 取得文件的所有者
讀取文件中的內容
file_get_contents(); //php5以上
file()
readfile();
不足:全部讀取, 不能讀取部分,也不能指定的區域
fopen(URL, mode)
本地文件:
./test.txt
c:/appserv/www/index.html
/usr/local/apahce/index.html
遠程:
http://www.baidu.com
fopen("./test.txt", "a+")
fwrite fread
r , 以只讀模式打開文件
r+ 寫
w, 以只寫的方式打開,如果文件不存在,則創建這個文件,并寫放內容,如果文件存在,并原來有內容,則會清除原文件中所有內容,再寫入(打開已有的重要文件)
w+ 除了可以寫用fwrite, 還可以讀fread
a 以只寫的方式打開,如果文件不存在,則創建這個文件,并寫放內容,如果文件存在,并原來有內容,則不清除原有文件內容,再原有文件內容的最后寫入新內容,(追加)
a+除了可以寫用fwrite, 還可以讀fread
b 以二進制模式打開文件(圖,電影)
t 以文本模式打開文件
fread() // 第一個是讀取指定長度的字符
fgetc() //一次從文件中讀取一個字符
fgets() //一次從文件中讀取一行字符
feof($file); 如果讀取文件出錯,或到文件結束,則返回真
寫入文件
file_put_contents(“URL”, “內容字符串”); //php5以上
如果文件不存在,則創建,并寫入內容
如果文件存在,則刪除文件中的內容,重新寫放
不足: 不能以追加的方式寫,也不能加鎖
fopen()
fwrite() 別名 fputs
第一個參數是文件資源(fopen返回來的),第個參數是寫的內容
本地文件:
./test.txt
c:/appserv/www/index.html
/usr/local/apahce/index.html
遠程:
http://www.baidu.com
http://www.163.com
ftp://user@pass:www.baidu.com/index.php
ftell($file) //返回當前文件針的位置
fseek($file, 10);
fread();
rewind();
目錄的處理
opendir()
readdir()
closedir()
rewinddir()
創建目錄
mkdir(); //創建一個空目錄
刪除目錄
rmdir(); //只可以刪除空目錄
在PHP中實時將數據庫中的數據顯示在網頁上,您可以使用Ajax和PHP進行無刷新更新。Ajax這個術語源自描述從基于Web的應用到基于數據的應用,它不是一種新的編程語言,而是一種用于創建更好更快以及交互性更強的Web應用程序的技術。Ajax在瀏覽器與Web服務器之間使用異步數據傳輸,這樣就可以使網頁從服務器請求少量的信息,而不是整個頁面。下面是一個簡單的示例:
1.在您的HTML文件中,創建一個div元素來顯示數據庫中的數據。
<div id="data-container"></div>
2.在PHP文件中,編寫一個從數據庫中檢索數據的腳本來返回數據并將其插入到HTML文件中。
<?php
// 連接到數據庫
// ...
// 從數據庫中檢索數據
$data=// ... 查詢語句 ...;
// 將數據插入到HTML文件中
$html='<p>'.implode('<br>', $data).'</p>';
// 輸出有意義的HTTP頭部
header('Content-type: text/html');
// 輸出HTML文件中的數據
echo $html;
?>
3.在您的JavaScript文件中,使用Ajax技術調用PHP腳本并將結果插入到div元素中。
function updateData() {
// 創建Ajax請求
var xhttp=new XMLHttpRequest();
xhttp.onreadystatechange=function() {
if (this.readyState==4 && this.status==200) {
// 更新頁面上的數據容器
document.getElementById("data-container").innerHTML=this.responseText;
}
};
// 調用PHP腳本并傳遞參數(如果有的話)
xhttp.open("GET", "get_data.php", true);
xhttp.send();
}
// 每隔一段時間調用updateData()函數以獲取新數據
setInterval(updateData, 1000);
這樣,每當指定的時間間隔過去時,JavaScript文件就會通過Ajax調用PHP腳本,獲取最新的數據并將其插入到HTML文件中的指定位置。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。