[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: if else d OOP
m4a1fox
Доброго времени суток всем знатокам! Как известно использование условных операторов if else в ООП является примером дурного кода и говнокода. Но как реализовать следующую задачу. Нужно выполнить минимум 3 проверки при регистрации. Первое - что все поля не путы, второе - что пароль и подтвержденный пароль совпадают, третье - что email валидный. Пример токого говнокода пишется 3 минуты

if(!empty($_SESSION['AR'])){
if(!$this->model->lookEquals(Session::getOne('AR', 'login'))){
if(Session::getOne('AR', 'pass') == Session::getOne('AR', 'confirmPass')){
if(filter_var(Session::getOne('AR', 'email'), FILTER_VALIDATE_EMAIL)){
foreach($array as $key=>$value){
$this->model->getString($key, $value, true, $_POST[$key]);
}
header("Location: /index");
}else{
self::setError('WrongEmail', 'Пожалуйста введите корректный email адресс. Спасибо.');
$this->index();
}

}
else{
self::setError('EaqualsPass', 'Пароли должны совпадать');
$this->index();
}
}
else{
self::setError('EaqualsLogin', 'This user already isset! Please choose other name.');
$this->index();
}
}
else{
Error::errorRefresh();
}
}


Но это естественно - бред. Как логически это реализовать. Есть идея, что нужно сделать метод, кот. будет в массив записывать ошибки, и если есть хоть одна ошибка - то прирывать работу скрипта.... как то вот так. На практике еще не пробовал. У кого какие идеи будут?



Спустя 9 минут, 36 секунд (29.12.2011 - 11:21) sharki написал(а):
m4a1fox
Цитата
if else в ООП является примером дурного кода и говнокода

Если уровень вложенности превышает 3-4.

Через год, человек который будет разбираться в твоем коде, будет тебя адски материть, и думаю ты сам будешь матерится на свой нынешний код. ООП не панацея smile.gif

Хороший и главное ПРОСТОЙ код, для понимания вот залог успеха твоей программы!

Спустя 1 минута, 5 секунд (29.12.2011 - 11:22) m4a1fox написал(а):
sharki
Цитата
Хороший и главное ПРОСТОЙ код, для понимания вот залог успеха твоей программы!

Вот и я за это!

Цитата
Если уровень вложенности превышает 3-4.
\А вот это не знал!

Спустя 1 час, 49 минут, 8 секунд (29.12.2011 - 13:12) Invis1ble написал(а):
m4a1fox
Цитата
Как известно использование условных операторов if else в ООП является примером дурного кода и говнокода.

с чего бы это?
А в твоем случае да, лучше переделать. С массивом идея нормальная, я сам примерно так делаю.

Спустя 53 минуты, 58 секунд (29.12.2011 - 14:05) m4a1fox написал(а):
Invis1ble
Цитата
А в твоем случае да, лучше переделать. С массивом идея нормальная, я сам примерно так делаю.

Ок! Значит на верном пути. Буду мучаться! smile.gif

Цитата
с чего бы это?

Это не я сказал!

P.S. Логически то понял... теперь с программным кодом заминка....

Спустя 19 минут, 11 секунд (29.12.2011 - 14:25) Invis1ble написал(а):
Цитата
Это не я сказал!

если не ты сказал, то зачем пишешь это? А если разделяешь позицию автора этих строк - обоснуй.



Спустя 4 минуты, 26 секунд Invis1ble написал(а):
Цитата
Как известно использование условных операторов if else в ООП является примером дурного кода и говнокода.

Кому известно? Мне например не было известно до момента прочтения топика, вот хотелось бы услышать объективную аргументацию.

Спустя 9 минут, 41 секунда (29.12.2011 - 14:34) m4a1fox написал(а):
Invis1ble
Ок! Беру слова обратно! Вы правы. Но в моем случае - условности пример плохого кода.

Спустя 8 часов, 22 минуты, 13 секунд (29.12.2011 - 22:57) kirik написал(а):
Тоже не вижу связи ООП и кривого кода)
$error = array();

if (empty($_SESSION['AR'])) {
Error::errorRefresh();
} elseif ($this->model->lookEquals(Session::getOne('AR', 'login'))) {
$error = array(
'name' => 'EaqualsLogin',
'text' => 'This user already isset! Please choose other name.'
);
} elseif (Session::getOne('AR', 'pass') != Session::getOne('AR', 'confirmPass')) {
$error = array(
'name' => 'EaqualsPass',
'text' => 'Пароли должны совпадать'
);
} elseif (!filter_var(Session::getOne('AR', 'email'), FILTER_VALIDATE_EMAIL)) {
$error = array(
'name' => 'WrongEmail',
'text' => 'Пожалуйста введите корректный email адресс. Спасибо.'
);
}

if (empty($error)) {
foreach($array as $key => $value){
$this->model->getString($key, $value, true, $_POST[$key]);
}
header("Location: /index");
} else {
self::setError($error['name'], $error['text']);
$this->index();
}

Спустя 14 минут, 9 секунд (29.12.2011 - 23:11) kirik написал(а):
ЗЫ. там ещё в цикле нужно проверять на "объявленность" $_POST[$key]

Спустя 7 минут, 47 секунд (29.12.2011 - 23:18) m4a1fox написал(а):
kirik
Вот так сделал:

function checkForm(){
if(!empty($this->model->empty)){
self::setError('FullAllFields', 'All fields mus be full');
$this->index();
return false;
}elseif(!filter_var(Session::getOne('AR', 'email'), FILTER_VALIDATE_EMAIL)){
self::setError('WrongEmail', 'Не правильный формат Email');
$this->index();
return false;
}elseif(Session::getOne('AR', 'pass') != Session::getOne('AR', 'confirmPass')){
self::setError('EaqualsPass', 'Ваши пароли не совпадают');
$this->index();
return false;
}elseif($this->model->lookEquals(Session::getOne('AR', 'login'))){
self::setError('IssetLogin', 'Пожалуйста, выберите другой логин.');
$this->index();
return false;
}
return true;
}

public static function setError($name, $value){
self::$error[$name] = $value;
}

public static function getError($name){
if(!empty(self::$error) && isset(self::$error[$name])){
return self::$error[$name];
}
}



А вот тут срабатывает

if($this->checkForm())
header("Location: /index");
}else{
Error::errorRefresh();
}

Спустя 51 минута, 29 секунд (30.12.2011 - 00:10) kirik написал(а):
m4a1fox
У тебя дублируется кучу раз один и тот же код.. Вынеси

            self::setError('IssetLogin', 'Пожалуйста, выберите другой логин.');
$this->index();
return false;

в конец метода. И зачем тебе методы getError и setError?

Спустя 7 минут, 56 секунд (30.12.2011 - 00:18) m4a1fox написал(а):
kirik, не совсем тебя понял! Дублируется вот эта часть

$this->index();
return false;

Вот ее надо, согласен, вынести!

Цитата

И зачем тебе методы getError и setError?

Устанавливаем ошибки и получаем к ним доступ! Считаешь излишни?

Спустя 20 часов, 16 минут, 7 секунд (30.12.2011 - 20:34) Guest написал(а):
Цитата (m4a1fox @ 29.12.2011 - 21:18)

Цитата

И зачем тебе методы getError и setError?

Устанавливаем ошибки и получаем к ним доступ! Считаешь излишни?

Смешаны абстракции в одном классе.
Метод checkForm() относится к абстракции - Валидации и проверки форм
Методы getError() и setError() относятся к абстракции управлением ошибок системы (хотя как по мне так лучше использовать встроенный механизм исключений он очень мощный)

Спустя 2 минуты, 56 секунд (30.12.2011 - 20:37) Invis1ble написал(а):
Цитата
Смешаны абстракции в одном классе.
Метод checkForm() относится к абстракции - Валидации и проверки форм

согласен

Спустя 22 минуты, 21 секунда (30.12.2011 - 20:59) Guest написал(а):
Вот так будет лучше и читаемость увеличиться
/**
* Исключения валидации форм
*/

class FormException extends Exception
{
private $badAction = '';

public function __construct($badAction, $message, $code = 0, Exception $previous = null)
{
$this->badAction = $badAction;
parent::__construct($message, $code, $previous);
}

public function GoToIndex($index) {
$index->index();
}
}


class Auth
{
public function __construct()
{

}


public function checkForm()
{
try
{
if(!empty($this->model->empty))
{
throw new FormException('FullAllFields', 'All fields mus be full');
}
elseif(!filter_var(Session::getOne('AR', 'email'), FILTER_VALIDATE_EMAIL))
{
throw new FormException('WrongEmail', 'Не правильный формат Email');
}
elseif(Session::getOne('AR', 'pass') != Session::getOne('AR', 'confirmPass'))
{
throw new FormException('EaqualsPass', 'Ваши пароли не совпадают');
}
elseif($this->model->lookEquals(Session::getOne('AR', 'login')))
{
throw new FormException('IssetLogin', 'Пожалуйста, выберите другой логин.');
}

return true;
}
catch(FormException $e)
{
$e->GoToIndex($this);
return false;
}
}
}

Спустя 10 минут, 48 секунд (30.12.2011 - 21:10) Guest написал(а):
Вот так будет ещё правильней с точки зрения абстракций
/**
* Исключения валидации форм
*/

class FormException extends Exception
{
private $badAction = '';

public function __construct($badAction, $message, $code = 0, Exception $previous = null)
{
$this->badAction = $badAction;
parent::__construct($message, $code, $previous);
}

public function GoToIndex($index) {
$index->index();
}
}


class AuthForm extends Form
{
public function __construct()
{

}


public function checkForm()
{
try
{
if(!empty($this->model->empty))
{
throw new FormException('FullAllFields', 'All fields mus be full');
}
elseif(!filter_var(Session::getOne('AR', 'email'), FILTER_VALIDATE_EMAIL))
{
throw new FormException('WrongEmail', 'Не правильный формат Email');
}
elseif(Session::getOne('AR', 'pass') != Session::getOne('AR', 'confirmPass'))
{
throw new FormException('EaqualsPass', 'Ваши пароли не совпадают');
}
elseif($this->model->lookEquals(Session::getOne('AR', 'login')))
{
throw new FormException('IssetLogin', 'Пожалуйста, выберите другой логин.');
}

return true;
}
catch(FormException $e)
{
$e->GoToIndex($this);
return false;
}
}
}


class Auth
{
public function __construct()
{
$formValidation = new AuthForm();
$formValidation->checkForm();
}
}

Спустя 22 минуты, 56 секунд (30.12.2011 - 21:33) Invis1ble написал(а):
все зависит от задач, можно 100500 сущностей наплодить

Спустя 1 час, 30 минут, 6 секунд (30.12.2011 - 23:03) m4a1fox написал(а):
Спасибо за труд. Очень интересно буду исправлять. На сегодняшний момент код выглядит вот так

function run(){
$this->model->run();

$array = array(
'login' => 'Логин',
'name' => 'Имя',
'surname' => 'Фамилия',
'day' => 'День рождения',
'month' => 'Месяц рождения',
'year' => 'Год рождения',
'sex' => 'Пол',
'email' => 'Email',
'pass' => 'Пароль',
'confirmPass' => 'Повтор пароля',
'token' => 'Токен'
);

if(!empty($_SESSION['AR'])){
foreach($array as $key=>$value){
$this->model->getString($key, $value, true, $_POST[$key]);
}

if($this->checkForm()){
Session::set('loggedIn', true);
$this->model->create();
header("Location: ../index");
}
}
else{
Error::errorRefresh();
}
}


function checkForm(){
if(!empty($this->model->empty)){
Request::set('FullAllFields', 'Необходимо заполнить все поля');
$this->index();
return false;
}elseif(!filter_var(Session::getOne('AR', 'email'), FILTER_VALIDATE_EMAIL)){
Request::set('WrongEmail', 'Пожалуйста, введите правильный адрес электронной почты.');
$this->index();
return false;
}elseif(Session::getOne('AR', 'pass') != Session::getOne('AR', 'confirmPass')){
Request::set('EaqualsPass', 'Ваши пароли не совпадают');
$this->index();
return false;
}elseif($this->model->lookEquals(Session::getOne('AR', 'login'))){
Request::set('IssetLogin', 'Такой логин уже зарегестрирован. Выберите другой.');
$this->index();
return false;
}
return true;
}


Спустя 2 минуты, 56 секунд (30.12.2011 - 23:06) caballero написал(а):
Цитата
Вот так будет ещё правильней с точки зрения абстракций

А при чем тут абстракции и вообще шо сие такое в данном контексте.

Цитата
все зависит от задач, можно 100500 сущностей наплодить

Да, пример класического индусского кода.

Спустя 7 минут, 52 секунды (30.12.2011 - 23:14) caballero написал(а):
а зачем это повторять?
$this->index();

почему не
   
if($this->checkForm()){
Session::set('loggedIn', true);
$this->model->create();
header("Location: ../index");
}
else
{
$this->index();
}



Спустя 8 минут, 19 секунд (30.12.2011 - 23:22) m4a1fox написал(а):
caballero
Тут вот так реализовано

if(!empty($_SESSION['AR'])){
foreach($array as $key=>$value){
$this->model->getString($key, $value, true, $_POST[$key]);
}

if($this->checkForm()){
Session::set('loggedIn', true);
$this->model->create();
header("Location: ../index");
}
}
else{
Error::errorRefresh();
}


Это от прямого доступа!

Спустя 11 минут, 19 секунд (30.12.2011 - 23:34) caballero написал(а):
Цитата
Это от прямого доступа!

Куда доступа? Я просто вынес повторяющийся 4 раза код за скобки.

Спустя 36 минут, 18 секунд (31.12.2011 - 00:10) Guest написал(а):
Цитата (caballero @ 30.12.2011 - 20:06)
А при чем тут абстракции и вообще шо сие такое в данном контексте.

Учим ООП проектирование и не сношаем моск другим своей безграмотностью

Спустя 5 минут, 47 секунд (31.12.2011 - 00:16) Guest написал(а):
Цитата (Invis1ble @ 30.12.2011 - 18:33)
все зависит от задач, можно 100500 сущностей наплодить

Да всё правильно, но в данном случае разделение абстракций как раз уместно.
Приведу пример, если m4a1fox захочет ввести валидацию отдельно по каждому полю и вывод ошибочного сообщения только тому полю, которое инициировало ошибку, тогда нужно будет раздувать функции работающие с ошибками это во первых. Во вторых применение различных моделей форм можно будет применять на лету а не статически записанном в checkForm, вообщем чем лучше спроектирована система по абстракциям тем более гибкая, пример тому JS (caballero, если не понял лучше спроси чем глупы посты пдлодить на подобие
Цитата
А при чем тут абстракции и вообще шо сие такое в данном контексте.

)

Спустя 1 минута, 57 секунд (31.12.2011 - 00:18) Guest написал(а):
Цитата (caballero @ 30.12.2011 - 20:06)
Цитата
Вот так будет ещё правильней с точки зрения абстракций

А при чем тут абстракции и вообще шо сие такое в данном контексте.

Это ООП, для неграмотных объектно-ориентированное программирование.
Встречный вопрос, а какой контекст здесь? ohmy.gif

Спустя 3 минуты, 2 секунды (31.12.2011 - 00:21) Guest написал(а):
Цитата (caballero @ 30.12.2011 - 20:06)
Да, пример класического индусского кода.

Просто требую аргументов biggrin.gif

Спустя 37 минут, 33 секунды (31.12.2011 - 00:58) Guest написал(а):
Цитата (caballero @ 30.12.2011 - 20:06)
Да, пример класического индусского кода.


Гмм ... странно, Вы считаете и разработчиков YII индусами в области WEB разработки. Потому что код напоминает модель YII.

Спустя 7 минут, 12 секунд (31.12.2011 - 01:05) caballero написал(а):
Цитата
Учим ООП проектирование и не сношаем моск другим своей безграмотностью

А еще лучше не втыкаем умняки где ни попадя.

Цитата
Это ООП, для неграмотных объектно-ориентированное программирование.

ООП я уже знал когда ты еще не знал что такое компьютер.

Цитата
Встречный вопрос, а какой контекст здесь?

Контекст здесь- конкретный вопрос конкретного человека с конкретным куском кода. Прежде чем давать встречный вопрос - ответь на заданный.

Цитата
Просто требую аргументов


Количество лишних строк кода и лишних сущностей в частности не имеющего смысла класса FormException. Не пробовал перейти от копипастов с вумных книжек к правтическому программированию?





Спустя 3 минуты, 59 секунд (31.12.2011 - 01:09) caballero написал(а):
Цитата
  Вы считаете и разработчиков YII индусами в области WEB разработки

Индусов много в программировании- это не ругательство а стиль кодирования. На каждый чих создается иерархия классов, интерфейсов абстрактных фабрик и прочего. Они так привыкли им раньше плалтили зарплату от количествотва строк кода (как при совке кстати)

Спустя 1 минута, 12 секунд (31.12.2011 - 01:11) Guest написал(а):
Цитата (caballero @ 30.12.2011 - 22:05)
Цитата
Учим ООП проектирование и не сношаем моск другим своей безграмотностью

А еще лучше не втыкаем умняки где ни попадя.

Цитата
Это ООП, для неграмотных объектно-ориентированное программирование.

ООП я уже знал когда ты еще не знал что такое компьютер.

Цитата
Встречный вопрос, а какой контекст здесь?

Контекст здесь- конкретный вопрос конкретного человека с конкретным куском кода. Прежде чем давать встречный вопрос - ответь на заданный.

Цитата
Просто требую аргументов


Количество лишних строк кода и лишних сущностей в частности не имеющего смысла класса FormException. Не пробовал перейти от копипастов с вумных книжек к правтическому программированию?

Пад сталом! особенно с
Цитата
ООП  я  уже  знал  когда  ты  еще  не  знал  что  такое  компьютер.


Ты хоть знаешь мой опыт, по твоим аргументам можно делать лекции, как я не умею думать. Кстати книги иногда полезно почитать, да и других проектах посмотреть как хорошо делается. Блин такое впечатление что за ником caballero находится ламер с большим рюкзаком комплекса неполноценности, юноша который хочет доказать всему миру что я делаю лучше всех и большой знаток программирования.

Спустя 1 минута, 45 секунд (31.12.2011 - 01:12) Guest написал(а):
Цитата (caballero @ 30.12.2011 - 22:09)
Цитата
  Вы считаете и разработчиков YII индусами в области WEB разработки

Индусов много в программировании- это не ругательство а стиль кодирования. На каждый чих создается иерархия классов, интерфейсов абстрактных фабрик и прочего. Они так привыкли им раньше плалтили зарплату от количествотва строк кода (как при совке кстати)

В YII такой же принцип архитектуры, ещё раз они то же индусы (хотя за свои строчки кода не получили ни чего)

Спустя 2 минуты, 55 секунд (31.12.2011 - 01:15) Guest написал(а):
Цитата (Invis1ble @ 30.12.2011 - 18:33)
все зависит от задач, можно 100500 сущностей наплодить

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

Спустя 10 минут, 47 секунд (31.12.2011 - 01:26) Guest написал(а):
Цитата (caballero @ 30.12.2011 - 22:05)
Контекст здесь- конкретный вопрос конкретного человека с конкретным куском кода. Прежде чем давать встречный вопрос - ответь на заданный.

Это не контекст это вопрос, контекст этого кода как раз лежит в области ООП и лучшем применении условных переходов. А если ты очень хороший спец в ООП должен знать что ООП так же призвано убрать условности из программ.

Спустя 17 минут, 59 секунд (31.12.2011 - 01:44) caballero написал(а):
Цитата
по твоим аргументам можно делать лекции, как я не умею думать.

угадал
Цитата
юноша который хочет доказать всему миру что я делаю лучше всех

Не угадал
Цитата
большой знаток программирования

угадал

Спустя 4 минуты, 29 секунд (31.12.2011 - 01:48) Invis1ble написал(а):
Дорогие гости, вы хоть подписывайтеся хоть каким-нибудь ником, чтобы различать действующие лица smile.gif

Спустя 47 секунд (31.12.2011 - 01:49) caballero написал(а):
Цитата
В YII такой же принцип архитектуры

Такой это какой? И с каких пор YII - истина в последней инстанции.

Цитата
что ООП так же призвано убрать условности из программ

Шо сие такое "условности" и при чем тут ООП?

Цитата
Это не контекст это вопрос,

Может начать с толкового словаря русского языка прежде чем к ООП переходить?

Цитата
контекст этого кода как раз лежит в области ООП

Как говорил профессор Преобрадженский "кто на ком стоял? Голубчик потрудитесь излагать ваши мысли яснее".

Спустя 12 минут, 54 секунды (31.12.2011 - 02:02) Guest написал(а):
Тебе политиком нужно быть, баки забивать и темы переводить, это получается лучше.

Спустя 12 секунд (31.12.2011 - 02:02) caballero написал(а):
Цитата
Тьфу блин несмышлёныш.
Да же не хочется диалог вести. Только воду в ступе толочь.

Так говори понятным ТЕХНИЧЕСКИМ языком а не неси какую то невнятную лабуду из наукообразных терминов и бессмысленных конструкций типа "абстракция" "условность" и прочее. .

Спустя 8 минут, 44 секунды (31.12.2011 - 02:11) Guest написал(а):
Цитата (caballero @ 30.12.2011 - 23:02)
Так говори понятным ТЕХНИЧЕСКИМ языком а не неси какую то невнятную лабуду из наукообразных терминов и бессмысленных конструкций типа "абстракция" "условность" и прочее. .

Да же в ступор ввёл и подтвердил мои слова
http://www.ctc.msiu.ru/materials/Book/node82.html
http://www.objectorient.narod.ru/1d.htm
- вперёд и с песнями.
Если уже это считать НЕ ТЕХНИЧЕСКИМ языком, тогда уж извини ты сам себя сдал в неграмотности.

Спустя 1 минута, 9 секунд (31.12.2011 - 02:12) inpost написал(а):
Guest
Мега крутой авторитетный источник: "narod.ru" smile.gif

Спустя 3 минуты, 13 секунд (31.12.2011 - 02:15) inpost написал(а):

 ! 

М
Мне не нравится поведение некоторых анонимов в связи с их грубостью. В эту тему закрыт доступ для анонимов. Георгий, вроде так тебя зовут, сколько лет тебе не было, есть такая вещь: "Человеческое общение", и если ты обделён ею, не надо всю грязь выливать на других посетителей. Тебя не пытались оскорблять, так кто тебе давал право так себя вести? К тому же, если не ошибаюсь, тебе уже за 30, а поведением остался на уровне троллей.
Ах да, ещё ко всему прочему сейчас у людей праздник, не можешь испускать из своих уст радость, доброту и праздничное настроение, то лучше помолчать, и свои проблема оставить при себе... это так, мой тебе совет.
inpost

Спустя 18 минут, 34 секунды (31.12.2011 - 02:34) Greg1978 написал(а):
Цитата (inpost @ 30.12.2011 - 23:15)
Мне не нравится поведение некоторых анонимов в связи с их грубостью. В эту тему закрыт доступ для анонимов. Георгий, вроде так тебя зовут, сколько лет тебе не было, есть такая вещь: "Человеческое общение", и если ты обделён ею, не надо всю грязь выливать на других посетителей. Тебя не пытались оскорблять, так кто тебе давал право так себя вести? К тому же, если не ошибаюсь, тебе уже за 30, а поведением остался на уровне троллей.
Ах да, ещё ко всему прочему сейчас у людей праздник, не можешь испускать из своих уст радость, доброту и праздничное настроение, то лучше помолчать, и свои проблема оставить при себе... это так, мой тебе совет.inpost

Не не не, не надо меня сюда впутывать ... извольте.
То что я согласен с гостем не даёт право Вам меня обвинять в этом.
И большая просьба удалить своё замечание в мой адрес.

Спустя 13 минут, 9 секунд (31.12.2011 - 02:47) inpost написал(а):
Greg1978
У вас не только IP одинаковый, но и юзерагент, и другие параметры. Даже подделка с дополнительного приложения к FF не поможет скрыть.
В любом случае смысл не в этом, спор - это всегда плюс на любого программирования, не надо лишь грубить.
update: ещё и настройки браузера такие же.

Спустя 2 минуты, 20 секунд (31.12.2011 - 02:50) Greg1978 написал(а):
Цитата (inpost @ 30.12.2011 - 23:47)
Greg1978
У вас не только IP одинаковый, но и юзерагент, и другие параметры. Даже подделка с дополнительного приложения к FF не поможет скрыть.
В любом случае смысл не в этом, спор - это всегда плюс на любого программирования, не надо лишь грубить.
update: ещё и настройки браузера такие же.

Простите, но я сам специалист веб разработчик. Не ужели вы думаете я не знаю по каким параметрам вычисляется один и тот же пользователь.
И да кстати по IP это не вариант. У меня он динамический, странно как это может быть один и тот же. Да ладно, удачи и весёлых праздников.

Спустя 7 минут, 29 секунд (31.12.2011 - 02:57) inpost написал(а):
Greg1978
Никто не спорит про ваш опыт в веб-разработках, наоборот, достаточно проблемным был бы троллем, если бы стал вдруг таким. Потому что подделывать и скрывать данные можешь хорошо.
Про IP я сказал специально, чтобы вызвать такую реакцию и возмущение. Если динамический, то выдаётся провайдером, к тому же на сеть может быть один общий, тебе бы ещё и не знать. Возмущение у тебя вызвало то, что ты поменял свой IP прежде чем написать, а тут тебе говорят, что общий IP, ну как не возмутиться на прямую ложь в свой адрес. Это уже психология.
Ты можешь спорить, но мы оба знаем, что это был ты. В любом случае, тебя тоже с праздником и весёлых выходных!

Спустя 2 минуты, 52 секунды (31.12.2011 - 03:00) Greg1978 написал(а):
Ок, раз на то пошло просьба удалить меня с форума.
PS: Глубоко ошибаетесь.

Спустя 9 минут, 39 секунд (31.12.2011 - 03:10) inpost написал(а):
3 000 уникальных в сутки. Какова вероятность, что под именем "Георгий" есть только 1 посетитель всего? Никто не говорил на тебя, ты сам сказал на себя это.
В любом случае я насчитал 4 факта, которые выдали тебя. А эта наука, кстати, называется "Криминальная психология"
Быстрый ответ:

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