[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проверка на администратора в плагинах
Sonax
На данный момент я написал свой первый серьёзный проект и был бы очень благодарен, если вы бы ткнули на мои ошибки=).

И так, сайт http://realty66.org.ru (Сайт ещё в разработке, так что просьба строго не судить).
На данный момент есть следующая проблема, которая есть только в режиме администратора. Поэтому пароль к админке 111 ( http://realty66.org.ru/admin.php ).

После того, как вы авторизовались прошу пройти в любую не пустую категорию и выбрать вариант. Внизу будет впаяный плагин Uploadify После того, как Вы выберите загружаемый файл, то он отправляет его на страницу http://realty66.org.ru/plugins/upload/scripts/uploadify.php . Содержимое этого файла:
<?php
include '../../../include/connect.php';
if(count($_FILES)!=0)
{
function random_text()
{
list($usec, $sec) = explode(" ", microtime());
$mctime = str_replace('.','',((float)$usec + (float)$sec));
$ar = array('1','2','3','4','5','6','7','8','9','0','A','B','C','D','E','F','G','H','I','J','K','L','M',
'N','O','P','Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','x','y','w','z');
for ($i=49;$i>0;$i--)$mctime = str_replace($i,$ar[$i],$mctime);
return $mctime;
}
define('img_name', random_text(),true);
function name_file($thumb=0)
{
global $config, $ext;
$name_file = '../../../'.$config['folder_photo'].'/'.img_name;
if($thumb==0) $name_file.='.'.$ext;
if($thumb==1) $name_file.='_thumb.'.$ext;
if($thumb==2) $name_file=img_name.'.'.$ext;
return $name_file;
}

$tempFile = $_FILES['Filedata']['tmp_name'];
$ext=explode('.', $_FILES['Filedata']['name']);
$ext=$ext[count($ext)-1];
$from=explode('@', $_GET['from']);
$targetPath = $_SERVER['DOCUMENT_ROOT'] . '/'.$config['folder_photo'] . '/';
$targetFile = str_replace('//','/',$targetPath) . img_name.".".$ext;

function resizeImage($image)
{
$sizes = getimagesize($image);
$width = $sizes[0];
$height = $sizes[1];
global $config;

$scale = $config['max_width']/$width;
$scale_thumb = $config['max_width_thumb']/$width;
$newImageWidth_thumb = ceil($width * $scale_thumb);
$newImageHeight_thumb = ceil($height * $scale_thumb);
$newImage_thumb = imagecreatetruecolor($newImageWidth_thumb,$newImageHeight_thumb);
$source_thumb = imagecreatefromjpeg($image);
imagecopyresampled($newImage_thumb,$source_thumb,0,0,0,0,$newImageWidth_thumb,$newImageHeight_thumb,$width,$height);
imagejpeg($newImage_thumb, name_file($thumb=1), 90);
chmod($image, 0777);

$newImageWidth = ceil($width * $scale);
$newImageHeight = ceil($height * $scale);
$newImage = imagecreatetruecolor($newImageWidth,$newImageHeight);
$source = imagecreatefromjpeg($image);
imagecopyresampled($newImage,$source,0,0,0,0,$newImageWidth,$newImageHeight,$width,$height);
imagejpeg($newImage,$image,90);
chmod($image, 0777);
return true;
}

$ext_strtolower=strtolower($ext);
if($ext_strtolower=='jpg' or $ext_strtolower=='jpeg')
{
move_uploaded_file($tempFile, $targetFile);
mysql_query("INSERT INTO `photo` (`id`, `table`, `name`) VALUES ('".$from[0]."', '".$from[1]."', '".name_file($thumb=2)."')");
mysql_query("UPDATE `".$from[1]."` SET `Photo` = `Photo`+1 WHERE `id` =".$from[0]);
resizeImage(name_file());
}
echo "1";
}
?>

Моё беспокойство состоит в том, что со стороны клиента, если человек в OPERA, например, введёт HTML-код загрузчика, то сможет загружать фотографии на сайт. Такие права конечно нужно ограничить. Так вот при успешной авторизации Вы получаете $_SESSION['login']='Администратор';
if (isset($_POST['password']) and $_POST['password'] !== $config['admin_pass']) $error_authorization="Не верный пароль!<br>";
if ($_POST['password'] == $config['admin_pass']) $_SESSION['login']='Администратор';
if(empty($_SESSION['login']))
{
echo "<form method='post'>
$error_authorization
Пароль<br>
<input type='password' name='password'><br>
<input type='submit' value='Войти' name='rederect_submit'>"
;
}
else
{
...
}

Если система авторизации ненадёжна, то прошу сообщить об этом, так как придумал её сам и наверняка какие-нибудь недочёты забыл.

Пробывал и не понимал какое-то время, почему такой код в uploadify.php не работает
if(count($_FILES)!=0 and isset($_SESSION['login'])){...} 
//Или этот код
if(count($_FILES)!=0 and $_SESSION['login']='Администратор')

Потом про просто допёр, что плагин не передаёт мои $_SESSION данные.
Цитата
Вопрос №1 в том, как сделать проверку на администратора.

Второй чуть позже
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.