我在從where is用破折號分隔的頁面獲取內容時遇到問題。例如,如果我去www.example.com/home
它工作正常,但如果我去例如www.example.com/about-us
它會得到一個錯誤Trying to get property of non-object
至於錯誤說是關於這條線;獲取slu and並用破折號寫入內容
<h1><?php echo $page->Title; ?></h1>
<?php echo $page->Content; ?>
我有一個函數,從數據庫中得到的slug看起來像這樣;
function getSlug($name = null) {
global $db;
if ($name) {
$query = $db->prepare('SELECT * FROM pages WHERE `Title` = ? LIMIT 1');
$query->execute(array($name));
return $query->fetchObject();
}
}
我也有一個函數來創建看起來像這樣的slu;;
function createSlug($string){
$string = preg_replace('/[«»""!?,[email protected]£$%^&*{};:()]+/', '', $string);
$string = strtolower($string);
$slug=preg_replace('/[^A-Za-z0-9-]+/', '-', $string);
return $slug;
}
在我的htaccess我有規則RewriteRule ^([a-zA-Z0-9-/]+)$ index.php?name=$1 [L]
。
得到我使用下面的代碼的內容;
<?php
include 'header.php';
$slug = create_slug($_GET['name']);
$page = getSlug($slug);
?>
<div class="container">
<h1><?php echo $page->Title; ?></h1>
<?php echo $page->Content; ?>
<?php include 'footer.php'; ?>
我真的沒有任何線索是什麼問題。任何幫助將非常感激。
在此先感謝。親切的問候
感謝您的快速回復@ sk8terboi87,我htaccess的是這樣的; ' \t RewriteEngine敘述在 \t#RewriteBase/ \t#重寫所有其他URL的index.php/URL \t重寫規則^([A-ZA-Z0-9 - /] +) $的index.php?名1 = $ [L] \t 的ErrorDocument 404的index.php ' –