亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

PHP は、単純なゲストブックをカプセル化したデータベース クラスを開発します

先ほど、データベースを使用するクラス LyDB の設(shè)定について説明しました

ここでは、すべての SQL 関數(shù)とページング関數(shù)をカプセル化し、後で直接呼び出します:

<?php
class LyDB{

   var $_host="localhost";
   var $_user="root";//
   var $_password="root";
   var $_database="test";

   var $page_size=3;
   var $link;
   public function  __construct(){        //連接數(shù)據(jù)庫
      date_default_timezone_set('PRC');
      $this->link = mysqli_connect($this->_host,$this->_user,$this->_password,$this->_database);
      if (!$this->link) { 
         die('Could not connect to MySQL: ' . mysqli_connect_error());
      } 
   }

   public function __destruct(){
      mysqli_close($this->link);
   }
   public function insert($nickname,$avatar,$message)   //添加留言內(nèi)容到數(shù)據(jù)庫
   {
      $message=str_replace ("<" , "<" , $message);
      //str_replace() 函數(shù)以其他字符替換字符串中的一些字符(區(qū)分大小寫)。
      $message=str_replace (">" , ">" , $message);
      $message=str_replace ("\n" , " " , $message);
      $message=trim($message);  //trim() 函數(shù)移除字符串兩側(cè)的空白字符或其他預(yù)定義字符。

      $lytime=date("Y-m-d H:i:s");
      $sql="insert into ly (nickname,message,avatar,lytime)values('$nickname','$message','$avatar','$lytime')";
      $query=mysqli_query($this->link,$sql);
      if($query){
         return true;
      }
      else {
         return false;
      }
   }
   public function reply($id,$reply){   
      $message=str_replace ("<" , "<" , $reply);
      $message=str_replace (">" , ">" , $message);
      $message=str_replace ("\n" , " " , $message);
      $message=trim($message);
      $reply=$message;
      $retime=date("Y-m-d H:i:s");
      $sql="update ly set reply='$reply', retime='$retime' where id=$id";
      $query=mysqli_query($this->link,$sql);
      if($query)return true;
      else return false;
   }
   public function delete_by_id($id){   //刪除留言
      $sql="delete from ly where id=$id";
      mysqli_query($this->link,$sql);
   }
   
   
   public function select_page_info(){    //分頁
      $sql = "select count(*) as pagecount from ly";
      $query = mysqli_query($this->link,$sql);
      $row = mysqli_fetch_assoc($query);
      $ly_count=$row["pagecount"];
      $page_count=($ly_count%$this->page_size==0)?($ly_count/$this->page_size):($ly_count/$this->page_size+1);
      $page_info=array("ly_count"=> $ly_count,"page_count"=>(int)$page_count,"page_size"=>$this->page_size);
      return $page_info;
   }
   
   public function select_all_result(){   //查詢顯示留言
      $sql="select * from ly order by id desc";
      $query=mysqli_query($this->link,$sql);
      return $query; 
   }
   
   public function select_page_result(&$page_no){   //上一頁,下一頁,首頁,末頁
      $page_info=$this->select_page_info();
      if(!isset($page_no))$page_no=1;
      else if($page_no<1)$page_no=1;
      else if($page_no>$page_info["page_count"])$page_no=$page_info["page_count"];

      $first=($page_no-1)*$this->page_size;
      $sql="select * from ly order by id desc limit $first,$this->page_size ";
      $query=mysqli_query($this->link,$sql);
      $page_result=array("page_data"=>$query,"page_info"=>$page_info,"page_no"=>$page_no);
      return $page_result;
   }
}
?>

このクラス ファイルに名前を付けます: lydb.class.php

Administratorログインと権限の判斷も呼び出しクラスのauthority.class.phpファイルを作成します

<?php

class Authority{
   static public  function check_insert(){  //聲明公共變量
      //檢查是否具有添加留言權(quán)限
      return true;
   } 
   static public  function check_delete(){
      //檢查是否具有delete權(quán)限
      if(isset($_SESSION["username"]) && $_SESSION["username"]=="admin")
         return true;
      else 
         return false;
   }
}
?>

<?php
   class User{
      static public function validate($username,$password){  // static public 聲明公共變量
         if("admin"==$username && "12345"==$password){
            return true;
         }
         else 
            return false;
      }
   }
?>

そしてそれをフロントエンドページで直接引用します:

<?php require_once("lydb.class.php");?>
<?php require_once("authority.class.php");?>

require_once()ステートメントはスクリプト実行中に指定されたファイルをインクルードして実行します(人気のポイント、括弧內(nèi)のファイルは 1 回実行されます)。この動作は require() ステートメントに似ていますが、唯一の違いは、ファイル內(nèi)のコードが既にインクルードされている場合、再度インクルードされないことです。

學(xué)び続ける
  • おすすめコース
  • コースウェアのダウンロード
現(xiàn)時點ではコースウェアはダウンロードできません?,F(xiàn)在スタッフが整理中です。今後もこのコースにもっと注目してください?