Нужна помощь в написании функции "Ошибка доступа!".
И так, у меня есть обменник файлов в котором чтобы добавлять файлы нужно пройти регистрацию.
Сейчас я заметил, что если не регистрироваться и просто перейти по адресу:
http://site.ru/obmen/index.php?mode=upload , то можно загрузить файл =) И в графе "Добавил:" будет пустое место.,
Нужно сделать вообщем, чтобы когда незарегистрированный пользоваель переходил по этой ссылке, он попадал на странцу с таким содержанием:
Ошибка доступа!
Данная функция доступна только зарегистрированным пользователям!
Вам необходимо Зарегистрироваться в нашем сервисе либо Войти указав свой логин и пароль.
Я так понял нужно менять код файла upload.
Большая просьба изменить и написать код файла так как описано выше.
ниже прикреплён код файла upload
если так как ты показал index.php?mode=upload , то это находится в файле index.php. Это легко сделать. Какая переменная(массив) у тебя определяет зарегистрирован пользователь или нет?
19 Май 2011, 5:25I'am WM,
if($auth)
{
совершенно не понятно как это все работает, если $auth не обьявлена ранее и в файле вобще нет инклудов.
Похоже на dcms, куда дел шапку с инклудами?
Этот файл индекс из папки pages. Шапка в папке themes, а вот файл index.php из корня:
<?php
define('SECURED', true);
include'ini.php';
include'includes/func_validate.php';
ini_set('url_rewriter.tags','');
session_name('SessionID');
session_start();
if((isset($_GET['wml']) || $_COOKIE['version']=='wml' || $_SESSION['s_version']=='wml') && !isset($_GET['xhtml']))
{
$ver='wml';
$_SESSION['s_version']='wml';
SetCookie('version', 'wml', time()+3600*24*14);
include'themes/wml.php';
} else
{
$ver='html';
$_SESSION['s_version']='xhtml';
SetCookie('version', 'xhtml', time()+3600*24*14);
include'themes/html.php';
}
if(!empty($_SESSION['s_sid'])) $sid=$_SESSION['s_sid'];
if(!empty($_COOKIE['c_sid'])) $sid=$_COOKIE['c_sid'];
if(!empty($_GET['sid'])) $sid=$_GET['sid'];
$_SESSION['s_sid']=$sid;
SetCookie('c_sid', $sid, time()+3600*24*14)
/'sid='.$_GET['sid'].'&'.
$url=htmlspecialchars($_GET['url']);
if(empty($_COOKIE['c_sid'])) define('SID', session_name().'='.session_id().'&url='.$url);
else define('SID', 'url='.$url);
//echo "$_GET[sid]|$_SESSION[s_sid]|$_COOKIE[c_sid]|$sid";
if ($_SERVER['HTTP_X_OPERAMINI_PHONE_UA'])
{
$agent = val($_SERVER['HTTP_X_OPERAMINI_PHONE_UA']);
} else
{
$agent = val($_SERVER['HTTP_USER_AGENT']);
}
$agent=strtok($agent,'(');
$agent=strtok($agent,' ');
$agent=substr($agent,0,22);
if(empty($agent)) $agent='[not detected]';
$ip=getenv('REMOTE_ADDR');
$goback='<div class="v">» <a href="'.$_SERVER['PHP_SELF'].'?'.SID.'">Файлообменник</a></div>';
if(isset($_GET['exit']))
{
mysql_query("UPDATE `users` SET `session`='' WHERE `session`='".val($sid)."';");
SetCookie('c_sid', '');
unset($_SESSION['s_sid']);
$msg='<div class="r">Авторизация сброшена!<br/>Заходите к нам ещё!</div>';
}
$user = mysql_fetch_assoc(mysql_query("SELECT `id`,`login`,`level` FROM `users` WHERE `session`='".val($sid)."' AND `session`<>''"));
if(mysql_affected_rows())
{
mysql_query("UPDATE `users` SET `last`=".time().",`ip`='$ip',`soft`='$agent' WHERE `id`=".$user['id']);
$login=$user['login'];
$level=$user['level'];
$auth=true;
} else
{
$login='Гость';
$level=0;
$auth=false;
}
$mode = $_GET['mode'];
if(!in_array($mode,$modes))
{
$mode='index';
}
if($mode!='get') head();
include 'pages/'.$mode.'.php';
footer();
mysql_close();
?>
I'am WM, у меня нет дерева твоих папок, мало чем помогло.
ВОт:
index.txt (4.86 KB)
Скачано 5 раз(а)
^^файл выложен как есть? если да, оно вообще не должно работать.