第七天學習目的:學會SESSION的使用
SESSION的作用很多,最多用的就是站點內頁面間變量傳遞。在頁面開始我們要session_start();開啟SESSION; 然后就可以使用SESSION變量了,比如說要賦值就是:$_SESSION['item']="item1";要得到值就是$item1=$_SESSION['item'];,很簡單吧。這里我們可能會使用到一些函數,比如說判斷是不是某SESSION變量為空,可以這么寫:empty($_SESSION['inum'])返回true or false。
下面綜合一下前面所說的我們來看一個登陸程序,判斷用戶名密碼是否正確。 登陸表單是這樣:login.php <table width="100%" height="100%" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <form action="checklogin.php" method="post"><td align="center" valign="middle"><table width="400" border="0" cellpadding="5" cellspacing="1" class="tablebg"> <tr class="tdbg"> <td colspan="2"><div align="center">Administrators Login</div></td> </tr> <tr class="tdbg"> <td><div align="center">Username</div></td> <td><div align="center"> <input name="username" type="text" id="username"> </div></td> </tr> <tr class="tdbg"> <td><div align="center">Password</div></td> <td><div align="center"> <input name="password" type="password" id="password"> </div></td> </tr> <tr class="tdbg"> <td colspan="2"><div align="center"> <input type="submit" name="Submit" value="Submit"> <input type="reset" name="Submit2" value="Clear"> </div></td> </tr> </table></td></form> </tr> </table>
處理文件是這樣 <? require_once('conn.php'); session_start(); $username=$_POST['username']; $password=$_POST['password']; $exec="select * from admin where username='".$username."'"; if($result=mysql_query($exec)) { if($rs=mysql_fetch_object($result)) { if($rs->password==$password) { $_SESSION['adminname']=$username; header("location:index.php"); } else { echo "<script>alert('Password Check Error!');location.href='login.php';</script>"; } } else { echo "<script>alert('Username Check Error!');location.href='login.php';</script>"; } } else { echo "<script>alert('Database Connection Error!');location.href='login.php';</script>"; }?>
conn.php是這樣: <? $conn=mysql_connect ("127.0.0.1", "", ""); mysql_select_db("shop"); ?>
由于 $_SESSION['adminname']=$username;我們可以這樣寫驗證是否登陸語句的文件:checkadmin.asp <? session_start(); if($_SESSION['adminname']=='') { echo "<script>alert('Please Login First');location.href='login.php';</script>"; } ?>
呵呵,今天說到這里,明天說一下怎么弄一個分頁。第八天學習目的:做一個分頁顯示
關鍵就是用到了SQL語句中的limit來限定顯示的記錄從幾到幾。我們需要一個記錄當前頁的變量$page,還需要總共的記錄數$num
對于$page如果沒有我們就讓它=0,如果有<0就讓它也=0,如果超過了總的頁數就讓他=總的頁數。
$execc="select count(*) from tablename "; $resultc=mysql_query($execc); $rsc=mysql_fetch_array($resultc); $num=$rsc[0];
這樣可以得到記錄總數 ceil($num/10))如果一頁10記錄的話,這個就是總的頁數
所以可以這么寫 if(empty($_GET['page'])) { $page=0; } else { $page=$_GET['page']; if($page<0)$page=0; if($page>=ceil($num/10))$page=ceil($num/10)-1;//因為page是從0開始的,所以要-1 }
這樣$exec可以這么寫 $exec="select * from tablename limit ".($page*10).",10"; //一頁是10記錄的
最后我們需要做的就是幾個連接: <a href="xxx.php?page=0">FirstPage</a> <a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> <a href="xxx.php?page=<?=($page+1)?>">NextPage</a> <a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
這是一個大致的思路,大家可以想想怎么來優化?今天說到這里,明天說一下一些注意的問題。 第九天學習目的:注意事項
因為我是先學ASP的,所以再做PHP的時候會發現很多地方需要適應。
1、注意不要漏了分號 2、注意不要漏了變量前的$ 3、使用SESSION的時候注意不要遺漏session_start();
如果發生錯誤的時候,可以采用以下方法: 1、如果是SQL語句出錯,就注釋了然后輸出SQL語句,注意也要注釋調后續的執行SQL語句 2、如果是變量為空,大多是沒有傳遞到位,輸出變量檢查一下,檢查一下表單的id和name 3、如果是數據庫連接出錯,檢查是否正確打開MY SQL和是否遺漏了連接語句 4、注意縮進,排除括號不區配的錯誤
在做大網站的時候,我的思路是先構建數據庫,確定每一個字段的作用,和表之間的關系。然后設計后臺界面,從添加數據開始做起,因為添加是否成功可以直接到數據庫里面驗證,做好了添加再做顯示的頁面,最后才是兩者的結合。一般來說后臺就包括添加刪除修改和顯示,后臺沒有問題了,前臺也沒有什么大問題。前臺還需要注意安全性和容錯還有就是輸出格式。
好了,今天說到這里,明天說一下如果用PHP上傳文件和發郵件。 第十天學習目的:學會用PHP上傳文件和發郵件
上傳文件表單必須加上 enctype="multipart/form-data" 和 <input type="file" name="file"> 下面看一下代碼:
$f=&$HTTP_POST_FILES['file']; $dest_dir='uploads';//設定上傳目錄 $dest=$dest_dir.'/'.date("ymd")."_".$f['name'];//我這里設置文件名為日期加上文件名避免重復 $r=move_uploaded_file($f['tmp_name'],$dest); chmod($dest, 0755);//設定上傳的文件的屬性
上傳的文件名為date("ymd")."_".$f['name'] ,可以在以后插入到數據庫的時候用到,PHP實際上是把你上傳的文件從臨時目錄移動到指定目錄。move_uploaded_file($f['tmp_name'],$dest);這是關鍵
至于發郵件就更加簡單,可以使用mail()函數
mail("收件人地址","主題","正文","From:發件人\r\nReply-to:發件人的地址");
不過mail()需要服務器的支持,在WINDOWS下還需要配置SMTP服務器,一般來說外面的LINUX空間都行。 好像上傳文件和發郵件比ASP簡單很多,只要調用函數就可以了。ASP還需要用到服務器的不同組件比如FSO、JMAIL什么的。
十天學會PHP說到這里了,我的三大系列文章都用《十天學會》作為名字,想告訴大家的是ASP,PHP,ASP.NET入門都可以是十天,但是精通決不是十天啊,還需要大家自己去研究。 學習目的:學會用PHP上傳文件和發郵件
上傳文件表單必須加上 enctype="multipart/form-data" 和 <input type="file" name="file"> 下面看一下代碼:
$f=&$HTTP_POST_FILES['file']; $dest_dir='uploads';//設定上傳目錄 $dest=$dest_dir.'/'.date("ymd")."_".$f['name'];//我這里設置文件名為日期加上文件名避免重復 $r=move_uploaded_file($f['tmp_name'],$dest); chmod($dest, 0755);//設定上傳的文件的屬性
上傳的文件名為date("ymd")."_".$f['name'] ,可以在以后插入到數據庫的時候用到,PHP實際上是把你上傳的文件從臨時目錄移動到指定目錄。move_uploaded_file($f['tmp_name'],$dest);這是關鍵
至于發郵件就更加簡單,可以使用mail()函數
mail("收件人地址","主題","正文","From:發件人\r\nReply-to:發件人的地址");
不過mail()需要服務器的支持,在WINDOWS下還需要配置SMTP服務器,一般來說外面的LINUX空間都行。 好像上傳文件和發郵件比ASP簡單很多,只要調用函數就可以了。ASP還需要用到服務器的不同組件比如FSO、JMAIL什么的。
十天學會PHP說到這里了,我的三大系列文章都用《十天學會》作為名字,想告訴大家的是ASP,PHP,ASP.NET入門都可以是十天,但是精通決不是十天啊,還需要大家自己去研究。
|