線上書籍

Home

[1032]PHP入門

<?php /*----引入檔案----*/ require_once "config.php"; require_once "function.php"; /*----整理傳進來的變數或變數初始值----*/ $op=isset($_REQUEST['op'])?$_REQUEST['op']:""; $sn=isset($_REQUEST['sn'])?intval($_REQUEST['sn']):""; $toolbar=""; if(isset($_SESSION['uid']) and !empty($_SESSION['uid'])){ $toolbar='<a href="post.php" class="btn btn-primary btn-block"><i class="fa fa-pencil"></i> 發布新聞</a>'; } $error_msg=$news_list=""; $uname=isset($_POST['uname'])?$_POST['uname']:""; $passwd=isset($_POST['passwd'])?$_POST['passwd']:""; /*----流程控制----*/ switch ($op) { case 'db_error': $error_msg=error_msg("資料庫連線錯誤!!請檢查資料庫帳號、密碼是否正確!"); break; case 'view': //列出單一內容 $news_list=view($sn); $toolbar.="<a href='{$_SERVER['PHP_SELF']}?g2p={$g2p}' class='btn btn-success btn-block'><i class='fa fa-home'></i> 回新聞列表</a>"; break; case 'delete': //刪除單一內容 delete($sn); header("location: {$_SERVER['PHP_SELF']}"); break; case 'login': //登入 login($uname,$passwd); header("location: {$_SERVER['PHP_SELF']}"); break; case 'logout': //登出 logout(); header("location: {$_SERVER['PHP_SELF']}"); break; default: //列出所有內容 $news_list=list_news(); break; } /*----輸出----*/ show_page('list_tpl'); /*----所有函數----*/ function login($uname,$passwd){ link_db(); $passwd=md5($passwd); $sql="select uid from eznews_users where uname='$uname' and passwd='$passwd'"; $result=mysql_query($sql) or die("{$sql}<br>".mysql_error()); list($uid)=mysql_fetch_row($result); if(!empty($uid)){ $_SESSION['uid']=$uid; $_SESSION['uname']=$uname; } } //登出 function logout(){ unset($_SESSION['uid']); unset($_SESSION['uname']); } //列出所有內容 function list_news(){ global $g2p; include_once "PageBar.php"; link_db(); //讀取eznews資料表所有欄位(日期大到小排列) //$sql="select * from eznews order by post_time desc"; $sql="select a.*,b.cate_title from eznews as a left join eznews_cate as b on a.cate_sn=b.cate_sn order by a.status='置頂' desc, a.post_time desc"; $PageBar = new PageBar($sql, 10); $bar_arr=$PageBar->makeBar(); $sql=$bar_arr['sql']; $bar=$bar_arr['bar']; //傳回值存到 $result 以供抓取資料用 $result=mysql_query($sql) or die("{$sql}<br>".mysql_error()); $tools_title=""; if(isset($_SESSION['uid']) and !empty($_SESSION['uid'])){ $tools_title=" <th class='col-md-2 text-center'>功能</th> "; } $news_list=" <script> function del_func(sn){ var sure = window.confirm('確定要刪除此資料?'); if (!sure) return; location.href='index.php?op=delete&sn=' + sn; } </script> <h1>列出所有新聞</h1> $bar <table class='table table-striped table-bordered'> <tr> <th class='col-md-2 text-center'>分類</th> <th class='col-md-5 text-center'>新聞標題</th> <th class='col-md-3 text-center'>發布時間</th> $tools_title </tr> "; //取回資料庫一筆資料,並以欄位名稱為索引的資料陣列 while($news=mysql_fetch_assoc($result)){ $title=empty($news['news_title'])?"無標題":$news['news_title']; $top_label=$news['status']=="置頂"?"<span class='label label-danger'>置頂</span>":""; $color=$news['status']=="高亮"?"class='warning'":""; $tools=""; if(isset($_SESSION['uid']) and !empty($_SESSION['uid']) and $news['uid']==$_SESSION['uid']){ $tools=" <td class='text-center'> <a href='javascript:del_func({$news['sn']})' class='btn btn-xs btn-danger'>刪除</a> <a href='post.php?op=modify&sn={$news['sn']}' class='btn btn-xs btn-warning'>編輯</a> </td> "; } $news_list.=" <tr $color> <td> {$news['cate_title']} </td> <td> <span class='label label-info'>{$news['counter']}</span> {$top_label} <a href='{$_SERVER['PHP_SELF']}?op=view&sn={$news['sn']}'>{$title}</a> </td> <td class='text-center'>{$news['post_time']}</td> $tools </tr> "; //$news_list=$news_list."<li>{$news['news_title']}</li>"; } $news_list.="</table> $bar"; return $news_list; } //顯示單一頁面 function view($sn=""){ link_db(); $sql="update `eznews` set `counter` = `counter` + 1 where sn='{$sn}'"; mysql_query($sql) or die("{$sql}<br>".mysql_error()); //讀取eznews資料表所有欄位,並指定某一筆特定資料 $sql="select a.*,b.* from eznews as a left join eznews_cate as b on a.cate_sn=b.cate_sn where a.sn='$sn'"; //傳回值存到 $result 以供抓取資料用 $result=mysql_query($sql) or die("{$sql}<br>".mysql_error()); $news=mysql_fetch_assoc($result); $news_content=$news['news_content']; //抓附檔 $sql="select * from eznews_files where sn={$sn}"; $result=mysql_query($sql) or die("{$sql}<br>".mysql_error()); $files_list=""; while($file=mysql_fetch_assoc($result)){ //判斷是否為圖檔 if(strpos($file['file_type'], "image")!==false){ $show_file="<img src='uploads/{$file['file_new_name']}' style='width: 120px'>"; }else{ $show_file=$file['file_name']; } $files_list.="<li><a href='uploads/{$file['file_new_name']}' target='_blank'>{$show_file}</a></li>"; } $one_news="<h1><span class='label label-info'>{$news['cate_title']}</span> {$news['news_title']}</h1> 點閱數:{$news['counter']} <div class='well'> {$news_content} </div> $files_list "; return $one_news; } //刪除單一頁面 function delete($sn=""){ if(!isset($_SESSION['uid']) or empty($_SESSION['uid'])){ return; } link_db(); //刪除指定某一筆特定資料 $sql="delete from eznews where sn='$sn' and uid='{$_SESSION['uid']}'"; mysql_query($sql) or die("{$sql}<br>".mysql_error()); } ?>