我從以前的(不再提供幫助的)開發者那裏繼承了一個站點,我並沒有太多的PHP編碼器,所以請耐心等待。函數沒有在PHP中定義變量
我不斷收到錯誤,有些變量是不確定的和CMS管理工具欄一直顯示在頁面的頂部,即使我沒有登錄了。
重要事項這只是發生在我當地發展環境。
錯誤:
Notice: Undefined variable: buttons in /Users/shortname/Sites/sitename.com/public_html/admin/editable.class.php on line 275
編輯下面是完整的文件:
Pastebin of editable.class.php
在我的網頁,我有一個包括
<?php
include_once 'admin/editable.class.php';
$page = new page(6, 2, 0);
echo $page->get();
?>
它的工作是抓住所有的頁面元素從數據庫並將其扔在頁面上。
的包括後來在頁面顯示以及(在頁腳)
<?
include_once "admin/editable.class.php";
$login = new dynamic;
if($login->isAdmin())
{
echo '
<div id="adminBar">
<div>
<h3>Admin Menu</h3> <span class="editable">Editable Pages: <a href="/company/media.php">In The Media</a> | <a href="/company/faq_about.php">FAQ</a> | <a href="/company/tradeshows.php">Tradeshows</a></span> <a class="logout" href="/admin">Logout</a>
</div>
</div>
';
}
?>
我以爲是什麼顯示CMS信息欄和按鈕,如果你是一個身份驗證的用戶。麻煩的是,我無法進行身份驗證,也無法讓警告消失。這裏的認證功能editable.class.php
:
function isAdmin()
{
if (isset($_COOKIE["admin"]) && $_COOKIE["admin"] === sha1("username".$this->salt.$this->users["username"]))
{
$this->admin = true;
return true;
}
else
{
$this->admin = false;
return false;
}
}
function login()
{
if($this->isAdmin())
{
return true;
}
if (!isset($_SERVER['PHP_AUTH_USER']) || !isset($this->users[$_SERVER['PHP_AUTH_USER']]) || $this->users[$_SERVER['PHP_AUTH_USER']] !== $_SERVER['PHP_AUTH_PW'])
{
header('WWW-Authenticate: Basic realm="Administration"');
header('HTTP/1.0 401 Unauthorized');
echo 'Authorization Required';
exit;
}
else
{
setcookie("admin", sha1("username".$this->salt.$this->users["username"]), 0, "/", ".sitename.com");
$this->admin = true;
return true;
}
}
function logout()
{
header('HTTP/1.0 401 Unauthorized');
setcookie("username", "", time() - 1, "/", ".sitename.com");
}
我嘗試添加<?php setcookie("username", "", time() - 1, "/", ".sitename.com"); ?>
,看看我是否能清除cookie的數據,並刪除了管理工具,但是,這也不能工作。我在本地開發環境中缺少什麼會導致這些錯誤?
這裏是粘貼bin ... http://pastebin.com/ir3uAXK2 – Ofeargall 2012-03-27 21:23:13
我的道歉離開國防部相關部分了。 – Ofeargall 2012-03-27 21:25:24
真棒,更新了我的答案(這是一個相當簡單的修復)。 – 2012-03-27 21:27:16