Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

17.05.2008, 04:27
|
|
Новичок
Регистрация: 06.12.2005
Сообщений: 8
Провел на форуме: 35842
Репутация:
4
|
|
например так:
В каждом скрипте пишем(или же пишем в одном отдельном файле, на котором потом include поставить)
Смотрим авторизован ли юзер(смотря посредством чего идет авторизация, у меня пример проверки сессии):
PHP код:
<?
session_start();
if (!isset($_SESSION['login'])){
echo "Доступ запрещен. Авторизуйтесь";
exit;
}else{
//Тут можем сделать запрос в базу
//Посмотреть имеет ли данный юзер доступ к скрипту
//Естесственно, должна быть соответ. база
}
//далее сам скрипт
?>
|
|
|

17.05.2008, 04:41
|
|
наркоман с медалью
Регистрация: 07.05.2005
Сообщений: 3,704
Провел на форуме: 19975136
Репутация:
4536
|
|
а зачем тут елсе?
|
|
|

17.05.2008, 04:48
|
|
Новичок
Регистрация: 06.12.2005
Сообщений: 8
Провел на форуме: 35842
Репутация:
4
|
|
У меня вопрос.
ООП в пхп. У меня прописаны классы для работы с MySQL.
Есть функции которые выполняют определенные действия и внутри себя обращаются к классам....
На денвере все нормально работало, но хостинге выскакивали ошибки, типа не возможен доступ к объекту на линии такой-то. Хотя обращался я к классу до функции($con = new MySQLconn(); ), и в самой функции естественно кидал эту переменную в GLOBAL $con .. далее обращение к экземпляру класса $result=$con->createResult($string); Собсвтенно это и вызывало ошибку.
Тут подумал что это не совсем правильно, и надо убрать все функции и сделать классы которые были бы exception(наследованием) класса MySQL
Стоит ли? Ведь это приводит к усложнению скрипта и времени разработки.
Возможно есть какой-нибудь компромис?
|
|
|

17.05.2008, 11:57
|
|
Постоянный
Регистрация: 30.08.2007
Сообщений: 773
Провел на форуме: 3069349
Репутация:
808
|
|
убрать все функции и сделать классы которые были бы exception(наследованием) класса MySQL
Убрать все функции и сделать все классы потомками класса для работы с БД - что-то тут определённо не так.
exception - это "исключение".
|
|
|

17.05.2008, 12:52
|
|
Members of Antichat - Level 5
Регистрация: 01.04.2007
Сообщений: 1,268
Провел на форуме: 10046345
Репутация:
4589
|
|
Сообщение от Buffalon
Плиз дайте хорошую ссылку про то 'Как обезопасить свой код (РHP+Mysql)' короче наверн поняли.. .
http://www.php.su/security/
+ моск))
|
|
|

18.05.2008, 01:04
|
|
Участник форума
Регистрация: 01.03.2006
Сообщений: 169
Провел на форуме: 519496
Репутация:
78
|
|
Проблема с написанием авторизации... есть скрипт login.php
PHP код:
<form method="POST">
<br/>
Login:<input type="text" name="log" title="Введите login" value="">
<br/>
<br />
Password:<input type="text" name="passwd" title="Введите password" value="">
<br/>
<br />
<input type="submit" name="sub" value=" Go! " />
<br/>
<br/>
</form>
<?php
$password="1";
$login="1";
if(isset($_POST['sub']))
{
$inputlogin=$_POST['log'];
$inputpassword=$_POST['passwd'];
$inputlogin=trim($inputlogin);
$inputpassword=trim($inputpassword);
if($inputpassword==$password && $inputlogin==$login)
{
print ("<script>document.location='admin.php';</script>\r\n");
}
else
{
echo "<font color=Red>Неправильный пароль</font>";
}
}
?>
И есть скрипт admin.php, к которому и нужно открыть доступ через Login.php и сделать запрет на прямой доступ к скриту... Каким образом запретить прямой доступ к скрипту admin.php и при прямом доступе отправлять пользователя на линк авторизации..
|
|
|

18.05.2008, 01:55
|
|
Познающий
Регистрация: 06.12.2006
Сообщений: 57
Провел на форуме: 418176
Репутация:
31
|
|
Zircool создавай в login.php сессию а в admin.php проверяй на существование её 
|
|
|

18.05.2008, 02:05
|
|
Участник форума
Регистрация: 01.03.2006
Сообщений: 169
Провел на форуме: 519496
Репутация:
78
|
|
vizard-06 Пример можно для моего случая...
|
|
|

18.05.2008, 02:19
|
|
Познающий
Регистрация: 06.12.2006
Сообщений: 57
Провел на форуме: 418176
Репутация:
31
|
|
login.php
PHP код:
<?session_start();?>
<form method="POST">
<br/>
Login:<input type="text" name="log" title="Введите login" value="">
<br/>
<br />
Password:<input type="text" name="passwd" title="Введите password" value="">
<br/>
<br />
<input type="submit" name="sub" value=" Go! " />
<br/>
<br/>
</form>
<?php
$password="1";
$login="1";
if(isset($_POST['sub']))
{
$inputlogin=$_POST['log'];
$inputpassword=$_POST['passwd'];
$inputlogin=trim($inputlogin);
$inputpassword=trim($inputpassword);
if($inputpassword==$password && $inputlogin==$login)
{
$_SESSION['aut'] = true;
print ("<script>document.location='admin.php';</script>\r\n");
}
else
{
echo "<font color=Red>Неправильный пароль</font>";
}
}
?>
admin.php
PHP код:
<?session_start();
if(!isset($_SESSION['aut'])) exit('Доступ запрещён');
echo 'авторизован!';
//дальше исходник....
?>
|
|
|

18.05.2008, 02:53
|
|
Флудер
Регистрация: 20.11.2006
Сообщений: 3,316
Провел на форуме: 16641028
Репутация:
2371
|
|
Настолько тупо делать так:
PHP код:
if(!isset($_SESSION['aut'])) exit('Доступ запрещён');
зачем пользователю знать что выводит файл
Лучше просто
PHP код:
if(isset($_SESSION['aut']))
{
//code
}
И все =\
и все =э
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|