X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

2 страниц V   1 2 >
Открыть тему
Тема закрыта
> Регистрация на сайте
ZhukV
ZhukV
Topic Starter сообщение 21.6.2010, 12:40; Ответить: ZhukV
Сообщение #1


Добрый день или ночь :) всем....
Сейчас я Вам хочу показать, как осуществить на сайте регистрацию использую сессию и куки...
SESSION or COOKIE
В даном классе, в целях безопасности большынство переменных и функций обявлены как private.
Нам не нужно лезть в них, нам нужно только верно задать все параметры.
Сечас, я покажу, где прописываются параметры БД:
[PHP]
/*--------------------------------------------------
####################################################
ПЕРЕМЕННЫЕ ДЛЯ БД
####################################################
--------------------------------------------------*/
private $DB_LOCALHOST = "localhost"; //ХОСТ БД. Можна также указывать при помощи IP
private $DB_USER = "root"; //ПОЛЬЗОВАТЕЛЬ БД
private $DB_PASS = ""; //ПАРОЛЬ ПОЛЬЗОВАТЕЛЯ
private $DB_DATABASE = "register"; //БД
private $DB_CODE = "utf8"; //utf8, cp1251 ....
[/PHP]

1. Здесь указываем хост БД, к котроому будем подключатся
2. Указываем юзера для БД
3. Пароль: (у меня он пустой, поскольку это дефоулт денвера)
4. ну и конечно же саму БД, к которой будем конектится: (я создал БД "register")
5. По желаниею (если нужно для БД), можем указать кодировку: (у меня просто все файлы имеют кодировку utf8)

А вот здесь все для таблицы, где висят пользователи:
[PHP]
private $DB_TABLE = "login"; //ТАБЛИЦА, В КОТОРОЙ ВИСЯТ ЮЗЕРА
private $DB_ROWS_MD_LOGIN = "login"; //ИМЯ ПОЛЯ, ГДЕ ВИСЯТ ЛОГИНЫ
private $DB_ROWS_MD_PASSWORD = "password"; //ИМЯ ПОЛЯ, ГДЕ ВИСЯТ ПАРОЛИ

[/PHP]
Создадим файлик index.php в котором будем проверять, авторизирован ли пользователь, или нет:
Сразу же в нем подключили сесию (ее пожключение желательно ставить в самый верх, тоесть в начало файла)
Теперь подключим сам класс авторизации, тоесть файл, но не будем производить инициализацию (это позже):

Файл index.php
[PHP]
<?php
header("ContentType: text/html; charset=utf8");
//в этом файле будем порверять авторизацию пользователя
session_start();
include "register.core.php";
?>
[/PHP]
Что ж, теперь нам следует подключить сам класс, тоесть произвести его инициализацию...
[PHP]
$R = new Register();
[/PHP]
Так, класс инициализировали и дали ему переменную $R
Давайте для пользователя создандим форму авторизации:
<form action="" method="post">
<input type="text" name="login" /><br />
<input type="password" name="password" /><br />
<!-- Поле, по котрому будем проверять, есть ли авторизация, тоесть, была ли нажата кнопка Go!!! -->
<input type="hidden" name="register" value="1" />
<input type="submit" value="Go!!!" />
</form>

Для начала, нам нужно будет зафиксировать юзера, тоесть передать на класс его логин и пароль.
За этоотвечает функция: setUser(Login, Password, Memory)
параметр мемори, роскажу позже.
И так, заносим все значения:
[PHP]
if($_POST["register"] == "1"){
$R -> setUser($_POST["login"], $_POST["password"], $_POST['memory']);
}
[/PHP]
А далее нужно порсто поризвести авторизацию:
За это отвечает функция AuthorizationUSER(Login, Password)
Параметры можна не указывать (желательно!!!!)
[PHP]
if($_POST["register"] == "1"){
$R -> setUser($_POST["login"], $_POST["password"], $_POST['memory']);
$R -> AuthorizationUSER();
}
[/PHP]
Давайте теперь порверим, верно ли ввел пользователь логин и пароль?
За это отечает переменаая ERROR['TYPE'], которая может иметь только два значения:
1. ERROR - когда случилась ошибка в классе
2. NOT_USER - когда нет такого юзера в БД
Даный массив также стоит на ПРИВАТ, но есть функция, которая его извлекает getError(n)
[PHP]
<? if($R -> getError("TYPE") == "NOT_USER"){?><strong>Не верно введены логин или пароль...</strong><? } ?>
<form action="" method="post">
<input type="text" name="login" /><br />
<input type="password" name="password" /><br />
<label><input type="checkbox" name="memory" value="1">Запомнить</label><br />
<!-- Поле, по котрому будем проверять, есть ли авторизация, тоесть, была ли нажата кнопка Go!!! -->
<input type="hidden" name="register" value="1" />
<input type="submit" value="Go!!!" />
</form>
<? } ?>
[/PHP]
В класе так же установлены редиректы при успешной авторизации и при выходе из акаунта:
[PHP]
private $REDIRECT_FILE = "yes.php"; //АДРЕС, КУДА ПЕРЕЙДЕТ ПОЛЬЗОВАТЕЛЬ ПРИ УПЕШНОЙ АВТОРИЗАЦИИ
private $REDIRECT_EXIT = "exit.php"; //АДРЕС, КУДА ПЕРЕЙДЕТ ПОЛЬЗОВАТЕЛЬ ПРИ ВЫХОДЕ

[/PHP]
Создадим эти файлы:
yes.php:
Добро пожаловать на сайт<br />
Сапсибо за авторизацию<br />
<a href="#" onclick="window.location = 'index.php'">Назад</a>

exit.php:
Все куки очищены<br />
<a href="#" onclick="window.location = 'index.php'">Назад</a>

А давайте теперь установим кнопочку Выход:
Для этого нужно определить, был ли пользователь авторизирован:
Отвечает функция StartUSER()
После исполнения при помощи getLogin() можна будет поверить, был ли он авторизирован:
[PHP]
<? if ($R -> getLogin() == true){ ?>
<a href="?do=exit">Выход</a>
<? }else{?>

<? if($R -> getError("TYPE") == "NOT_USER"){?><strong>Не верно введены логин или пароль...</strong><? } ?>
<form action="" method="post">
<input type="text" name="login" /><br />
<input type="password" name="password" /><br />
<!-- Поле, по котрому будем проверять, есть ли авторизация, тоесть, была ли нажата кнопка Go!!! -->
<input type="hidden" name="register" value="1" />
<input type="submit" value="Go!!!" />
</form>
<? } ?>
[/PHP]
А как же сделать выход?
А есть функция ExitUSER(), которая очищает все куки, связаны с классом.
Давайтека сделаем и выход.
ПРЕДУПРЕЖДЕНИЕ.. Для выхода также есть редирект на отдельную страницу
[PHP]
$R = new Register();
if($_POST["register"] == "1"){
$R -> setUser($_POST["login"], $_POST["password"], $_POST['memory']);
$R -> AuthorizationUSER();
}elseif($_GET["do"] == "exit"){
$R -> ExitUSER();
}else{
$R -> StartUSER();
}
[/PHP]
А теперь давайте посмотрим, как же делается авторизаци при помощи куков. Вот пример:
На сайте html.by есть галочка "запомнить"
В таком случае, даные запишутся в куки, и при закрытии браузера они все равно сохраняются. Вот так то...
Давайте и мы у себя также установим голочку:
В форме втулите:
<label><input type="checkbox" name="memory" value="1">Запомнить</label>

Так, галочка есть, теперь еге оброботчик
Для записи в куки у нас успользуется переменная которая инициализируется также с функцией setUser()
Так, теперь мы видим, что также передали параметр на запись в куки.
[если нужно, можна категорически запретить использование куков и также установить врямя куков (устанавливается в секундах)] (читайте коментарии к переменным класса)
Что ж, подробно описывать не буду, думаю поймете. В конце могу только выложить весь файл index.php, который получился:
[PHP]
<?php
//в этом файле будем порверять авторизацию пользователя
session_start();
include "register.core.php";
$R = new Register();
#$R -> MD_LOGIN = $_SERVER['REMOTE_ADDR'];
if($_POST["register"] == "1"){
$R -> setUser($_POST["login"], $_POST["password"], $_POST['memory']);
$R -> AuthorizationUSER();
}elseif($_GET["do"] == "exit"){
$R -> ExitUSER();
}else{
$R -> StartUSER();
}
?>

<? if ($R -> getLogin() == true){ ?>
<a href="?do=exit">Выход</a>
<? }else{?>

<? if($R -> getError("TYPE") == "NOT_USER"){?><strong>Не верно введены логин или пароль...</strong><? } ?>
<form action="" method="post">
<input type="text" name="login" /><br />
<input type="password" name="password" /><br />
<label><input type="checkbox" name="memory" value="1">Запомнить</label><br />
<!-- Поле, по котрому будем проверять, есть ли авторизация, тоесть, была ли нажата кнопка Go!!! -->
<input type="hidden" name="register" value="1" />
<input type="submit" value="Go!!!" />
</form>
<? } ?>
[/PHP]
В архиве имеется класс и простый пример его использования.
P.S.
Если что-то непонятно, либо есть каки-то замечания или коментарии, оставляйте пожалуйста здесь...
А и еще очень главное.
Авторизаци на сайте, одно из главных и сложных. Я выклал полостью на freeware класс для авторизации, использование какого является простым делам + отличная защита даных (кроме ID пользователя). Если кто-то попросит помочь установить этот скрипт у себя на сайте, не тыкайте его сразу в платный раздел, мол я там те помогу, как любит делать это gambius. Я же тоже мог спокойно этот класс дать на лицензию.... Все мы учимся, так давайте поможем тем, кто еще толком не понимает в этом, тем более, если сам порцес уже автоматизтрован.
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Mulder_hb
Mulder_hb
сообщение 21.6.2010, 21:21; Ответить: Mulder_hb
Сообщение #2


(ZhukV @ 21.6.2010, 15:40) *
include*"register.core.php";

Не учите людей дурному. Минимум include_once. В идеале require_once.
(ZhukV @ 21.6.2010, 15:40) *
<!-- Поле, по котрому будем проверять, есть ли авторизация, тоесть, была ли нажата кнопка Go!!! -->
<input type="hidden" name="register" value="1" />

Никогда не понимал сакральный смысл применения в подобных случаях скрытого текстового поля. Почему сразу нельзя проверять существования элемента массива с именем кнопки?

По классу. Для записи лога лучше применять буферизацию. А если это еще и полноценный сайт, где множество компонентов требуют логирования, то вынести все операции по логированию в отдельный класс.
Логин и пароль проходит только md5-хеширование перед установкой в куку? ИМХО, куда безопаснее использовать открытые криптографические алгоритмы с доступом по ключу.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZhukV
ZhukV
Topic Starter сообщение 22.6.2010, 10:05; Ответить: ZhukV
Сообщение #3


(Mulder_hb @ 22.6.2010, 00:21) *
А если это еще и полноценный сайт, где множество компонентов требуют логирования, то вынести все операции по логированию в отдельный класс.

Спора нет. У меня так и есть. Но все же....
Много, кто здесь присутвует на форуме не смотрят в сторону ошибок уровня PHP, тем более собственных. В результате, если делаеш для общего понимания (чтоб каждый мог использовать), ПРИХОДИТСЯ делать систему встроеного лога.
(Mulder_hb @ 22.6.2010, 00:21) *
ИМХО, куда безопаснее использовать открытые криптографические алгоритмы с доступом по ключу.

А ты постав значение:
[PHP]
public $MD_COUNT = 1;
[/PHP]
Цыкл кеша порйдет один раз.
[PHP]public $MD_COUNT = 5;[/PHP]
Имхо, и логин, и пароль закешируется в цыкле пять раз, да потом еще сцеплены вместе тоже закешируются в том же цыкле. Скажи тогда плз, какая вероятность того, что хакер зможет взломать даже вот такие даные:
LOGIN - ZhukVit
PASS - ZhukVit
//А вот и что получилось
de6ab6ab6db8e66133636e4ea1276695

Ах, да, еще й забыл.
По дефоулту имя переменной куков есть:
bf1c525e27aadc802e81669a529af7f9{$ID}, где $ID - уникальный номер пользователя.
Установи:
[PHP]
$this -> MD_LOGIN = $_SERVER['REMOTE_ADDR'];
[/PHP]
Не пытался? Тогда чего бредиш?
Уникально, на каждом компе будет по разному называтся куки.
Я вообще не могу понять, прочитал пост и сразу пишеш? Что ты можеш писать, если не смотрел код?
А вот откуда я это взял:
Если бы читал код заметил бы сразу, что в классе имеется собственная функция кодировки: $this -> MD5([string])
[PHP]
/*--------------------------------------------------
Функция кеширования заданого значения
--------------------------------------------------*/
private function MD5($t = ''){
if($t === true){ $t = $this -> MD_LOGIN; }
for($i = 0; $i < $this -> MD_COUNT; $i++){ $t = md5($t); }
return $t;

}
[/PHP]
Раз такой умный, типа те не нравится мой метод шифрование, пожалуйста, изменяй все как те угодно. Все будет работать без порблем при изминение даной функции, вот только первую строчку не забудь оставить, потому что будет лажа...
(Mulder_hb @ 22.6.2010, 00:21) *
Никогда не понимал сакральный смысл применения в подобных случаях скрытого текстового поля. Почему сразу нельзя проверять существования элемента массива с именем кнопки?

Позоду ты его й тогда никогда не поймеш...
Часто бывало, когда нужно передать из одной страницы инфу на другую страницу, тем более зашифрованые даные пользователя (возможно его хеш), что ты тогда будеш делать? А как ты себе представляеш удаленную загрузку на JavaScript? Куки? А если отключены.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Mulder_hb
Mulder_hb
сообщение 22.6.2010, 21:38; Ответить: Mulder_hb
Сообщение #4


(ZhukV @ 22.6.2010, 13:05) *
Спора нет. У меня так и есть. Но все же....
Много, кто здесь присутвует на форуме не смотрят в сторону ошибок уровня PHP, тем более собственных. В результате, если делаеш для общего понимания (чтоб каждый мог использовать), ПРИХОДИТСЯ делать систему встроеного лога.

Как связаны между собой "не смотрят в сторону ошибок уровня PHP, тем более собственных" и встроенная система логирования? Ну ладно, не буду придираться. Если это учебный класс, то пойдет и так.
(ZhukV @ 22.6.2010, 13:05) *
Имхо, и логин, и пароль закешируется в цыкле пять раз, да потом еще сцеплены вместе тоже закешируются в том же цыкле.

О боже, операция md5-хеширования в цикле??? Кто-то давеча меня пытался обучить скорости выполнения и производительности скриптов...
(ZhukV @ 22.6.2010, 13:05) *
Скажи тогда плз, какая вероятность того, что хакер зможет взломать даже вот такие даные:

Вы меня не так поняли. Наверное, я не так выразился. Зачем хакеру взламывать ваш пароль? Как известно, зная md5-хеш, почти невозможно восстановить входное сообщение. Т.е. вы получив от пользователя в куках хеш не производите его декодирования, а подставляете его на прямую. Это фактически тоже самое, что напрямую передавать пароль. Что мешает хакеру просто перехватить куку и подставить в своем запросе тот же хеш? Ничего. Хакеру не нужно взламывать хеш, ему нужно просто его перехватить. Я же предлагаю ваш хеш перед передачей в куку еще и закриптовать, а когда пользователь возвращает вам свою куку, вы просто его декодируете обратно и только потом сверяете эти хеши. У вас сейчас нет никакой защиты куков.
(ZhukV @ 22.6.2010, 13:05) *
Ах, да, еще й забыл.
По дефоулту имя переменной куков есть:
bf1c525e27aadc802e81669a529af7f9{$ID}, где $ID - уникальный номер пользователя.

А зачем мне знать имя переменной? У вас кука устанавливается в корень. Мне достаточно знать имя сайта, чтобы украсть нужные куки.
(ZhukV @ 22.6.2010, 13:05) *
Раз такой умный, типа те не нравится мой метод шифрование

У вас нет никакого метода шифрования. Вы передаете данные в открытую.
(ZhukV @ 22.6.2010, 13:05) *
пожалуйста, изменяй все как те угодно

Спасибо, конечно, но я пишу собственные скрипты с шифрованием.
(ZhukV @ 22.6.2010, 13:05) *
Позоду ты его й тогда никогда не поймеш...
Часто бывало, когда нужно передать из одной страницы инфу на другую страницу, тем более зашифрованые даные пользователя (возможно его хеш), что ты тогда будеш делать? А как ты себе представляеш удаленную загрузку на JavaScript? Куки? А если отключены.

Вы меня снова не поняли. Я задал конкретный вопрос, какой сакральный смысл существования скрытого поля конкретно в вашем случае. Разберем ваш случай. Есть форма, в которой визуально присутствуют только три элемента: текстовое поле для ввода логина, текстовое поле для ввода пароля и кнопка ввода. Объясните мне, зачем вы КОНКРЕТНО в этом случае еще создаете дополнительное скрытое поле? Чтобы удостоверится была ли нажата кнопка? Ну так и проверяйте существование элемента кнопки, а не существование скрытого элемента.
[php]
<form action="" method="post">
<input type="text" name="login" /><br />
<input type="password" name="password" /><br />
<label><input type="checkbox" name="memory" value="1">Запомнить</label><br />
<input type="submit" name="Go" value="Go!!!" />

<?php
if (isset($_REQUEST['Go'])) {
echo "Кнопка нажата! И зачем конкретно в этом случае поле hidden?"
}
?>
[/php]
(ZhukV @ 22.6.2010, 13:05) *
Что ты можеш писать, если не смотрел код?

Если бы я не смотрел код, я бы не задавал подобных вопросов. Как вы думаете?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
MetSerp
MetSerp
сообщение 23.6.2010, 0:19; Ответить: MetSerp
Сообщение #5


ZhukV, не взрывайтесь, критика вполне конструктивная. Не стоит на замечания отвечать в стиле гопника "ты чо умный шоле?!" лучше анализировать и если реально в чем то не уверен то все же пересмотреть свои взгляды немного, это помогает развиваться дальше.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ottaviano
ottaviano
сообщение 23.6.2010, 1:16; Ответить: ottaviano
Сообщение #6


(MetSerp @ 23.6.2010, 03:19) *
ZhukV, не взрывайтесь, критика вполне конструктивная. Не стоит на замечания отвечать в стиле гопника "ты чо умный шоле?!" лучше анализировать и если реально в чем то не уверен то все же пересмотреть свои взгляды немного, это помогает развиваться дальше.

а мне нравится читать их диалоги ))) узнаю много нового ))))
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZhukV
ZhukV
Topic Starter сообщение 23.6.2010, 9:57; Ответить: ZhukV
Сообщение #7


(Mulder_hb @ 23.6.2010, 00:38) *
Я же предлагаю ваш хеш перед передачей в куку еще и закриптовать, а когда пользователь возвращает вам свою куку, вы просто его декодируете обратно и только потом сверяете эти хеши. У вас сейчас нет никакой защиты куков.

Я не считаю это нужным. Как Вы сказали, нужно просто перехватить куки и все. В результате, если они даже по сто раз хешируются (кодируются), то нет никакого результата. Перехватив кук, все станет просто.
Как раз, у меня ддля этого и предвидена переменная MD_LOGIN, которая и устанавливает названия куков.
Если ее закодировать, к примеру по браузеру, IP, и дате собственным алгоритмом кодирования. В результате, перехватите Вы куки, или нет, все равно в чужей акаунт не влезете! :)



(Mulder_hb @ 23.6.2010, 00:38) *
Вы меня снова не поняли. Я задал конкретный вопрос, какой сакральный смысл существования скрытого поля конкретно в вашем случае. Разберем ваш случай. Есть форма, в которой визуально присутствуют только три элемента: текстовое поле для ввода логина, текстовое поле для ввода пароля и кнопка ввода. Объясните мне, зачем вы КОНКРЕТНО в этом случае еще создаете дополнительное скрытое поле? Чтобы удостоверится была ли нажата кнопка? Ну так и проверяйте существование элемента кнопки, а не существование скрытого элемента.

Да, возможно и такое, и это вполне также верно.
У меня на сайтах, немного другая история:
На одну страницу есть несколько оброботчиков на формы. Формы динамические, тоесть могут изменятся как угодно, при этом должен и изменится обробочтик. Вот я и скрытым полем контролирую оброботчик.
Также есть, когда несколько форм на странице. Оброботчик один. Я по этому и скрытому полю как раз и указываю, какую форму обрабатывать.

(Mulder_hb @ 23.6.2010, 00:38) *
Как связаны между собой "не смотрят в сторону ошибок уровня PHP, тем более собственных" и встроенная система логирования? Ну ладно, не буду придираться. Если это учебный класс, то пойдет и так.

Ну а если помотреть на эту сторону, как новичек?
Я к примеру никогда не смотрел, какие ошибки могут возникнуть. В результате, пришел с утра на работу, открыл системный лог ПХП, и там +100 записей. Круто было.
После этого и пришло в голову контролировать даже собственные ошибки.

(MetSerp @ 23.6.2010, 03:19) *
ZhukV, не взрывайтесь, критика вполне конструктивная. Не стоит на замечания отвечать в стиле гопника "ты чо умный шоле?!" лучше анализировать и если реально в чем то не уверен то все же пересмотреть свои взгляды немного, это помогает развиваться дальше.

СПС ОГРОМНОЕ. Будем принимать это к вниманию.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Mulder_hb
Mulder_hb
сообщение 23.6.2010, 21:39; Ответить: Mulder_hb
Сообщение #8


(ZhukV @ 23.6.2010, 12:57) *
Я не считаю это нужным. Как Вы сказали, нужно просто перехватить куки и все. В результате, если они даже по сто раз хешируются (кодируются), то нет никакого результата.

Я вижу, вы не имеете никакого представления о криптографических алгоритмах. Если вы перехватите куку, которая была предварительно закриптована, вы ничего с ней не сделаете, так как вы не знаете ключа, который применялся при кодировании. А расшифровать вы будите обязаны, т.к. скриптом принимается не криптографический хеш, а md5-сумма. Еще раз ваш алгоритм:
1. Составляем md5-хеш пароля.
2. Передаем этот md5-хеш в куку.
3. При повторном входе пользователя забираем эту куку и НАПРЯМУЮ сравниваем ее с md5-суммой в базе.
В результате на сайте дыра. Достаточно перехватить куку и НАПРЯМУЮ передать ее скрипту.
Алгоритм с шифрованием:
1. Составляем md5-хеш пароля.
2. Кодируем его при помощи секретного ключа.
3. Передаем полученный шифр в куку.
4. При повторном входе пользователя снимаем куку, расшифровываем ее при помощи того же ключа. Полученный md5-хеш сравниваем с хешем в базе.
В результате если хакер перехватит куку, он не сможет НАПРЯМУЮ передать ее скрипту, просто потому, что он не сможет расшифровать ее - он не знает секретного ключа.
(ZhukV @ 23.6.2010, 12:57) *
Как раз, у меня ддля этого и предвидена переменная MD_LOGIN, которая и устанавливает названия куков.
Если ее закодировать, к примеру по браузеру, IP, и дате собственным алгоритмом кодирования. В результате, перехватите Вы куки, или нет, все равно в чужей акаунт не влезете!

Т.е. вы готовы хранить в базе столько лишних и бесполезных данных, затрачивать системные ресурсы для кодирования этой бессмысленной информации и для производства последующего сравнения? И все ради чего? Ради желания изобретать велосипед и тешить себя псевдоубеждениями, что ваш алгоритм кодирования (который нельзя декодировать, а можно только сравнить) лучше, чем алгоритмы разрабатываемые тысячами профессионалов по всему миру на протяжении хз скольких лет?
Кодировать браузер? Сегодня редких браузер не способен предоставлять лживую информацию о себе. Кодировать ип? Т.е. люди с динамическим ип будут вынуждены каждый раз авторизовываться заново? Кодировать дату? Т.е. пользователь должен будет каждую секунду авторизовываться заново? Вы думаете ваш сайт удержит клиентов, ставя им такие препоны?
(ZhukV @ 23.6.2010, 12:57) *
Ну а если помотреть на эту сторону, как новичек?
Я к примеру никогда не смотрел, какие ошибки могут возникнуть. В результате, пришел с утра на работу, открыл системный лог ПХП, и там +100 записей. Круто было.
После этого и пришло в голову контролировать даже собственные ошибки.

Авторы книг а-ля "PHP для чайников", "Освой PHP за 21 день" и мифический Попов думают также. Если человек новичек, давайте подсуним ему всякий бред. Я до сих пор не вижу смысла во встроенной системе логирования. Поставьте, где нужно перехваты и дело с концом. Одна из основных идеологий классов: класс должен быть однотипным. Если класс неоднотипен, он должен быть разделен на несколько классов. Ваш класс неоднотипен: в нем и авторизация пользователя, и логирование, и работа с базой Mysql. А если у клиента не мускул, а другая база? А если клиент использует логирование на в файл, а в базу? Все, ломай переписывай хорошо отлаженный класс авторизации, ради смены 2-3 функций...

Я придерживаюсь принципа: если ты решил создавать туторы, уроки, мануалы, гайды, то ты должен учитывать все нюансы и сразу предоставлять качественный и правильный код, а не делать ссылки на новичков, мол новичок ничего не поймет, поэтому упростим все до уровня бреда. А потом этот новичок вдыхает этот бред и в силу того, что он новичок начинает использовать его повсеместно, полагая, что это правильно, что так и надо. А когда открываешь их код, становится страшно и стыдно. Стыдно, что столь мощный и прекрасный язык новички превращают в посмешище.

Извините, что я так резок... Накипело...
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
kotosharik
kotosharik
сообщение 29.11.2010, 18:48; Ответить: kotosharik
Сообщение #9


доброго всем времени суток.
Подскажите, пожалуйста, этот скрипт кто-нибудь использовал? Просто попробовал прикрутил себе к сайту, на локалхосте всё замечательно, залил на хостинг, сайт перестал грузиться, выдаёт пустую страницу, отключаю класс - всё нормально.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
MetSerp
MetSerp
сообщение 29.11.2010, 23:50; Ответить: MetSerp
Сообщение #10


kotosharik, ну бегло глянув на код я могу предположить что на сервере отключены короткие теги
[PHP]<? ?>[/PHP]
потому как толькао интерпретатор их ловит, скрипт просто падает с syntax_error, а выдача ошибок на сервере наверняка тоже выключена дабы не раздражать:sarcastic:
пройдите по скрипту и змените <? на <?php
может и заработает, ну а вообще, хоть я и не читал вдумчиво код, но судя по всему он далек от идеала, лучше поищите еще что либо.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2 страниц V   1 2 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Горячая тема (нет новых ответов) Странный трафик на сайте длительное время
34 TABAK 8995 Вчера, 23:38
автор: Arsenwenger
Горячая тема (нет новых ответов) CryptoCloud — прием USDT, BTC, ETH, LTC на любом сайте
37 CryptoCLoud 10810 Вчера, 15:37
автор: CryptoCLoud
Открытая тема (нет новых ответов) Боты могут делать пушподписки на моём сайте?
3 Megaspryt 946 Вчера, 5:18
автор: Skyworker
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыБыстрый и качественный обмен на сайте Baksman.org
Обмен Bitcoin, BTC-e, PM, Qiwi, Yandex money, Карты банк
53 Baksman 33806 23.4.2024, 11:29
автор: Baksman
Открытая тема (нет новых ответов) Алтуально ли заработок на сайте?
Оцение пожалуйста идею
10 hitman20 1887 1.2.2024, 5:37
автор: Liudmila


 



RSS Текстовая версия Сейчас: 25.4.2024, 0:07
Дизайн