W11_作業二實作_陽春部落格


Posted by Christy on 2021-08-30

如何判斷網址列是否包含特定字串

MTR05 -> W11 -> 參考範例:hw2 部落格(上)(請先寫完作業再看)

這篇筆記是用來記錄,假設使用者登入以後,到了後台管理的頁面(如果現在網址是在 admin.php 那一頁),要怎麼把導覽列上的「後台管理」變成「發布文章」

解題思維:

先拿到現在網址:$_SERVER['REQUEST_URI']

判斷網址裡面是否包含特定字串:$isAdminPage = (strpos($uri, 'admin.php') !== false);


實作編輯文章時,想要保留舊文章的資訊

如果是 input 標籤的話,可以用 value 把 php 放在裡面

<input name="title" class="edit-post__input" value="<?php echo escape($row['title']);?>" />

遇到的困難:

  1. 在修改文章的頁面裡面,因為 edit.php 的 sql 寫錯了,在修改的時候,在送出按鈕的下面,要傳一個隱藏起來的 input,裡面放 id,這樣才可以把資料帶過去

<input type="hidden" name="id" value="<?php echo escape($row['id']); ?>">

<form action="handle_edit.php" method="POST">
  <div class="edit-post__title">
    修改文章:
  </div>
  <div class="edit-post__input-wrapper">
    <input name="title" class="edit-post__input" value="<?php echo escape($row['title']);?>" />
  </div>
  <div class="edit-post__input-wrapper">
    <textarea name="content" rows="20" class="edit-post__content"><?php echo escape($row['content']); ?></textarea>
  </div>
  <div class="edit-post__btn-wrapper">
    <input type="submit" value="送出"class="edit-post__btn"></input>
  </div>
  <input type="hidden" name="id" value="<?php echo escape($row['id']); ?>">
</form>
  1. 因為有兩個地方可以修改文章,一個是在管理後台的編輯那邊,一個是在登入以後的首頁。

可以利用下面的程式碼把頁面導回「上一個頁面」

header('Location: ' . $_SERVER['HTTP_REFERER'] );

這個會把頁面導到上一頁,但是不可以直接用

作法:

在 edit.php 那個檔案,在表格裡面在加上

<input type="hidden" name="page" value="<?php echo escape($_SERVER['HTTP_REFERER']); ?>">

在 handle_edit.php 裡面才可以用

$page = $_POST['page'];
header('Location: ' . $page);









Related Posts

ES6 新功能

ES6 新功能

[筆記] Linux NFS、vsftpd server 架設

[筆記] Linux NFS、vsftpd server 架設

[ React筆記 ] 使用ReactDOM製作一個Modal

[ React筆記 ] 使用ReactDOM製作一個Modal


Comments