好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

php ajax 留言板 - 综合实例

php ajax 留言板

提供一款国人写的留言板,他是利用了jquery php mysql ajax来实现php ajax 局部刷新留方板实例的喜欢就下载吧,代码如下:

$link  = @mysql_connect( $db_host , $db_user , $db_pass )  or   die ( 'unable to establish a db connection' );    mysql_query( "set names 'utf8'" );  mysql_select_db( $db_database , $link );    class  comment  {    private   $data  =  array ();      public   function  __construct( $row )   {     /*     / the constructor     */          $this ->data =  $row ;   }      public   function  markup()   {     /*     / this method outputs the xhtml markup of the comment     */          // setting up an alias, so we don't have to write $this->data every time:      $d  = & $this ->data;         $link_open  =  '' ;     $link_close  =  '' ;         if ( $d [ 'url' ]){           // if the person has entered a url when adding a comment,       // define opening and closing hyperlink tags            $link_open  =  '<a href="' . $d [ 'url' ]. '">' ;      $link_close  =   '</a>' ;    }         // converting the time to a unix timestamp:      $d [ 'dt' ] =  strtotime ( $d [ 'dt' ]);         // needed for the default gravatar image:      $url  =  'http://' .dirname( $_server [ 'server_name' ]. $_server [ "request_uri" ]). '/img/default_avatar.gif' ;         return  '         <div  class = "comment" >      <div  class = "avatar" >        '.$link_open.'        <img src= "http://www.gravatar.com/avatar/'.md5($d['email']).'?size=50&amp;default='.urlencode($url).'"  />        '.$link_close.'       </div>            <div  class = "name" > '.$link_open.$d[' name '].$link_close.' </div>      <div  class = "date"  title= "added at '.date('h:i on d m y',$d['dt']).'" > '.date(' d m y ',$d[' dt ']).' </div>      <p> '.$d[' body '].' </p>     </div>    ';   }      public   static   function  validate(& $arr )   {     /*     / this method is used to validate the data sent via ajax.     /     / it return true/false depending on whether the data is valid, and populates     / the $arr array passed as a paremter (notice the ampersand above) with     / either the valid input data, or the error messages.     */          $errors  =  array ();     $data  =  array ();         // using the filter_input function introduced in php 5.2.0          if (!( $data [ 'email' ] = filter_input(input_post, 'email' ,filter_validate_email)))    {      $errors [ 'email' ] =  'please enter a valid email.' ;    }         if (!( $data [ 'url' ] = filter_input(input_post, 'url' ,filter_validate_url)))    {      // if the url field was not populated with a valid url,       // act as if no url was entered at all:            $url  =  '' ;    }         // using the filter with a custom callback function:          if (!( $data [ 'body' ] = filter_input(input_post, 'body' ,filter_callback, array ( 'options' => 'comment::validate_text' ))))    {      $errors [ 'body' ] =  'please enter a comment body.' ;    }         if (!( $data [ 'name' ] = filter_input(input_post, 'name' ,filter_callback, array ( 'options' => 'comment::validate_text' ))))    {      $errors [ 'name' ] =  'please enter a name.' ;    }         if (! empty empty ( $errors )){           // if there are errors, copy the $errors array to $arr:            $arr  =  $errors ;      return  false;    }         // if the data is valid, sanitize all the data and copy it to $arr:          foreach ( $data   as   $k => $v ){      $arr [ $k ] = mysql_real_escape_string( $v );    }         // ensure that the email is lower case:          $arr [ 'email' ] =  strtolower (trim( $arr [ 'email' ]));         return  true;       }      private   static   function  validate_text( $str )   {     /*     / this method is used internally as a filter_callback     */          if (mb_strlen( $str , 'utf8' )<1)      return  false;         // encode all html special characters (<, >, ", & .. etc) and convert      // the new line characters to <br> tags:          $str  =  nl2br (htmlspecialchars( $str ));         // remove the new line characters that are left      $str  =  str_replace ( array ( chr (10), chr (13)), '' , $str );         return   $str ;   }    }    $comments  =  array ();  $result  = mysql_query( "select * from comments order by id asc" );    while ( $row  = mysql_fetch_assoc( $result ))  {    $comments [] =  new  comment( $row );  }    ?>    <!doctype html  public   "-//w3c//dtd xhtml 1.0 strict//en"   "http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd" >  <html xmlns= "http://www.w3.org/1999/xhtml" >  <head>  <meta http-equiv= "content-type"  content= "text/html; charset=gb2312"  />  <title>simple ajax commenting system | tutorialzine demo</title>    <link rel= "stylesheet"  type= "text/css教程"  href= "styles.css"  />  //开源代码phpfensi.com   </head>    <body>          <div id= "main" >    <?php    /*   / output the comments one by one:   */     foreach ( $comments   as   $c ){    echo   $c ->markup();  }    ?>    <div id= "addcommentcontainer" >   <p>add a comment</p>   <form id= "addcommentform"  method= "post"  action= "" >       <div>           <label  for = "name" >your name</label>           <input type= "text"  name= "name"  id= "name"  />                            <label  for = "email" >your email</label>              <input type= "text"  name= "email"  id= "email"  />                            <label  for = "url" >website (not required)</label>              <input type= "text"  name= "url"  id= "url"  />                            <label  for = "body" >comment body</label>              <textarea name= "body"  id= "body"  cols= "20"  rows= "5" ></textarea>                            <input type= "submit"  id= "submit"  value= "submit"  />          </div>      </form>  </div>    </div>    <script type= "text/javascript"  src= "http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" ></script>  <script type= "text/javascript"  src= "script.js" ></script>    </body>  </html> 

数据库结构,代码如下:

--   -- table structure for table `comments`   --     create   table  `comments` (    `id`  int (10) unsigned  not   null  auto_increment,    ` name `  varchar (128)  collate  utf8_unicode_ci  not   null   default   '' ,    `url`  varchar (255)  collate  utf8_unicode_ci  not   null   default   '' ,    `email`  varchar (255)  collate  utf8_unicode_ci  not   null   default   '' ,    `body` text  collate  utf8_unicode_ci  not   null ,    `dt`  timestamp   not   null   default   '0000-00-00' ,     primary   key   (`id`)  ) engine=myisam   default  charset=utf8  collate =utf8_unicode_ci;

查看更多关于php ajax 留言板 - 综合实例的详细内容...

  阅读:68次