如何判斷網址列是否包含特定字串
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']);?>" />
遇到的困難:
- 在修改文章的頁面裡面,因為 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>
- 因為有兩個地方可以修改文章,一個是在管理後台的編輯那邊,一個是在登入以後的首頁。
可以利用下面的程式碼把頁面導回「上一個頁面」
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);