0
我有一個包含頁面名稱和ID的數據庫。我能夠獲取頁面的ID,但是如何獲取頁面的名稱?獲取頁面名稱以便將其刪除
我想要做的是刪除物理目錄本身的頁面,但我失敗了。我將文件名和id存儲在數據庫中。我想從數據庫中獲取文件名,但我不確定如何使用$ current_page變量從數據庫獲取文件名。
的$ CURRENT_PAGE變量是用做:
$current_page = find_page_by_id($_GET["page"], false);
的find_page_by_id的功能是
function find_page_by_id($page_id, $public=true) {
global $connection;
$safe_page_id = mysqli_real_escape_string($connection,
$page_id);
$query = "SELECT * ";
$query .= "FROM pages ";
$query .= "WHERE id = {$safe_page_id} ";
if ($public) {
$query .= "AND visible = 1 ";
}
$query .= "LIMIT 1";
$page_set = mysqli_query($connection, $query);
confirm_query($page_set);
if($page = mysqli_fetch_assoc($page_set)) {
return $page;
} else {
return null;
}
}
爲了刪除頁面,你必須要經過管理編碼當前頁面頁面的ID,然後解析它以刪除頁面。但對於菜單名稱,我該如何去做呢?
管理頁面:
<?php if ($current_page) { ?>
<h2><?php echo
htmlentities($current_page["menu_name"]); ?><br /></h2>
Menu name: <?php echo
htmlentities($current_page["menu_name"]); ?><br />
Position: <?php echo
($current_page["position"]); ?><br />
Content:<br />
<div class="view-content">
<?php echo
nl2br(htmlentities($current_page["content"])); ?>
</div>
<br />
<br />
<a href="edit_page.php?page=<?php echo
urlencode($current_page['id']); ?>">Edit Page</a>
<br />
<br />
<a href="delete_page.php?page=<?php echo
urlencode($current_page["id"]) ?>" onClick="return confirm('Are you sure you want to delete page?')">Delete page</a>
<?php } else { ?>
<p class="welcome">Welcome to H H Lee & Associates Dental Surgery’s dashboard!</p>
<p>To start navigating, please click on the "Menu" on the top left hand corner.</p>
<?php }?>
刪除頁:
<?php require_once("includes/session.php"); ?>
<?php require_once("includes/db_connection.php"); ?>
<?php require_once("includes/functions.php"); ?>
<?php
$current_page = find_page_by_id($_GET["page"], false);
if (!$current_page) {
//page ID missing or invalid or
//page cant be found in database
redirect_to("manage_content.php");
die();
}
function find_page_by_name($page_name) {
global $connection;
$safe_page_name = mysqli_real_escape_string($connection,
$page_name);
$query = "SELECT * ";
$query .= "FROM pages ";
$query .= "WHERE menu_name = '{$safe_page_name}' ";
$query .= "LIMIT 1";
$page_name = mysqli_query($connection, $query);
confirm_query($page_name);
if($pagename = mysqli_fetch_assoc($page_name)) {
return $pagename;
} else {
return null;
}
}
$current_name = find_page_by_name($_GET["page"]);
$id = $current_page["id"];
$menuname = $current_name["menu_name"];
echo $menuname;
$query = "DELETE FROM pages WHERE id = {$id} LIMIT 1";
$result = mysqli_query($connection, $query);
unlink($menuname.".php");
if ($result && mysqli_affected_rows($connection) == 1) {
// Success
$_SESSION["message"] = "Page deleted.";
//redirect_to("manage_content.php");
} else {
// Failure
$_SESSION["message"] = "Page deletion failed.";
redirect_to("manage_content.php?page={$id}");
}
?>
功能:
function find_page_by_id($page_id, $public=true) {
global $connection;
$safe_page_id = mysqli_real_escape_string($connection,
$page_id);
$query = "SELECT * ";
$query .= "FROM pages ";
$query .= "WHERE id = {$safe_page_id} ";
if ($public) {
$query .= "AND visible = 1 ";
}
$query .= "LIMIT 1";
$page_set = mysqli_query($connection, $query);
confirm_query($page_set);
if($page = mysqli_fetch_assoc($page_set)) {
return $page;
} else {
return null;
}
}
function confirm_query($result_set) {
if (!$result_set) {
die("Database query failed: ".
mysqli_connect_error() .
" (" . mysqli_connect_errno(). ")"
);
}
}
你的意思是頁面文件名? – David
是頁面文件名。服務器聽起來有點矯枉過正。有沒有其他方法可以使用?如果我要使用$ _SERVER方法。我將如何截斷使用substr()? – user3098046