這是刪除鏈接代碼:數據庫清理檢查所有者
<a href="picture_manager.php?do=delete&id=<?php print $picturedata['id']; ?>" >Delete</a>
這是我目前的數據庫語法:
if (array_key_exists('do', $_GET) && $_GET['do'] == "delete" && array_key_exists('id', $_GET))
{
$pictureid = trim(sanitize($_GET['id']));
if ($picture->delete($pictureid) === true)
{
header('Location: picture_manager.php?success=removed');
}
}
有了上面的代碼中,其他用戶可以刪除其他用戶的圖片像= picture_manager。 php?do =刪除& id =(受害者)。
現在我找到了解決方案,以防止濫用其他用戶,我改變,因爲下面的舊語法:
這是我的新的數據庫語法:
if (!array_key_exists('id', $_GET) || $_GET['id'] == "" || $picture->pictureExists(trim(sanitize($_GET['id']))) === false || $picture->checkOwn($user->getUserID(trim(sanitize($_SESSION['key']))), trim(sanitize($_GET['id']))) === false)
{
header('Location: picture_manager.php');
}
else
{
$pictureid = trim(sanitize($_GET['id']));
if ($picture->delete($pictureid) === true)
{
header('Location: picture_manager.php?success=removed');
}
}
可悲的是,它不工作「的頁面沒有正確重定向 - 說火狐瀏覽器」
現在專家展望。
我發現在下面回答的解決方案。
現在編輯: 其難度我,當我編寫如下:?
if (isset($_GET['do']) && $_GET['do'] == 'delete' && (!array_key_exists('id', $_GET) || $_GET['id'] == "" || $picture->pictureExists(trim(sanitize($_GET['id']))) === false || $picture->checkOwn($user->getUserID(trim(sanitize($_SESSION['key']))), trim(sanitize($_GET['id']))) === false))
{
header('Location: picture_manager.php');
}
else
{
$pictureid = trim(sanitize($_GET['id']));
if ($picture->delete($pictureid) === true)
{
header('Location: picture_manager.php?success=removed');
}
}
當我點擊即picture_manager.php做=刪除的文件不會刪除& ID = 6125
請告訴我錯我的代碼?
正在尋找解決方案。謝謝 – user2279205