[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проверка паролей и стоит ли ее вообще делать?
PHP_Fox
Сижу размышляю о том стоит ли делать проверку пароля если он все равно будет хешироваться!?

Раньше я всегда делал проверку пароля c помощью какого нибудь регулярного выражения, ну например простое
 /^[-a-z0-9_.]{6,20}$/i

или можно добавить еще какие нибудь спец. символы.

Но вот сижу пишу новый движок, и начал размышлять о юзабилити, что бы по минимум ограничивать пользователя. Вспомнил много высказываний из книг, форумов где общаются true программеры.

Вот например с хабра:
Расстрелял бы… Пароль должен быть от 0х00 до 0хFF без исключений, как его набирать и запоминать дело пользователя.

пароль должен быть от \u0000 до \uFFFF

Или где-то в какой-то книге уже не помню но что-то типа:
Твиттер вообще не накладывает ограничений на пароль.
Даже посидел сегодня поэкспериментировал, зарегистрировал там аккаунт на Васю Пупкина, и пробовал менять пароли типа <?php $a=67; ?> или &nbsp'<br>"\ и так далее, все без проблем прошли и все работает.

Начал думать как бы составить регулярку под данные требования. Не долго думая пришла в голову элементарная регулярка. Ну вот например:
/^.{6,20}$/


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

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

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



Спустя 1 час, 36 минут, 5 секунд (22.09.2012 - 09:54) Michael написал(а):
Цитата (PHP_Fox)
Может ли быть такая проверка опасной

с чего бы это проверка стала опасной? Не вводи ограничений на пароль.

Спустя 31 минута, 49 секунд (22.09.2012 - 10:26) AlmazDelDiablo написал(а):
А зачем вы огриниваете пароль двадцатью символами? Понимаю еще, что минимум шесть символов, это да, нужно. Но по длине он ограничен не должен быть. В любом случае в базе харниться будет хэш длинною 32 символа, так что хоть всю «Войну и Мир» юзер загонит себе в пароль, какая вам разница?

Спустя 29 минут, 41 секунда (22.09.2012 - 10:56) PHP_Fox написал(а):
Цитата (AlmazDelDiablo @ 22.09.2012 - 10:26)
А зачем вы огриниваете пароль двадцатью символами? Понимаю еще, что минимум шесть символов, это да, нужно. Но по длине он ограничен не должен быть. В любом случае в базе харниться будет хэш длинною 32 символа, так что хоть всю «Войну и Мир» юзер загонит себе в пароль, какая вам разница?

Ну я уже и об этом думал, чтобы сделать вообще вот так

/^.{6,}$/

А почему 32 символами? Вы что сохраняете пароли в базе используя функцию md5()?
Вот это как раз минимальная защита, это не безопасно )))

У меня вообще длина хеша 62 символа, в алгоритме используется две уникальных соли, и вообще алгоритм очень сложный и взломать его будет ну очень сложно, даже если украдут и базу и сам скрипт.

Спустя 1 час, 17 минут, 32 секунды (22.09.2012 - 12:13) twin написал(а):
Пароль - личная собственность. Ни у кого же не возникает желания ограничить человека в количестве выпитого пива. Всё зависит от его адекватности и вместимости пивного животика.

Сейчас есть модная фраза - ограничиваешь меня в действиях... ты кто такой? Ну и по тексту.

Спустя 22 минуты, 17 секунд (22.09.2012 - 12:36) PHP_Fox написал(а):
Цитата (twin @ 22.09.2012 - 12:13)
Пароль - личная собственность.  Ни у кого же не возникает желания ограничить человека в количестве выпитого пива. Всё зависит от его адекватности и вместимости пивного животика.

Сейчас есть модная фраза - ограничиваешь меня в действиях... ты кто такой? Ну и по тексту.

Вот по этому я и пришел ко мнению, что нужно делать как можно меньше ограничений. Но что бы это было безопасно и не создало проблем в будущем huh.gif Просто привык делать все на отлично rolleyes.gif
Тем более что движок пишу для себя, и вкладываю в него всю душу smile.gif

Раньше я придерживался проверки как на Яндексе

Пароль должен содержать от 6 до 20 символов. Можно использовать латинские буквы, цифры и символы из списка:
! @ # $ % ^ & * ( ) _ - + : ; , .

Только у меня было больше разрешенных спец символов. Кстати на Яндексе до сих пор такое ограничение ) Что очень странно.

Вот мне и интересно как люди проверяют пароли, проверяют ли вообще и т.д. Буду рад любым советам, примерам и т.д. rolleyes.gif

Спустя 6 минут, 1 секунда (22.09.2012 - 12:42) Michael написал(а):
Ну ты же сам видеть должен был на существующих сайтах, проверка обычно плана - чтобы пароль не был сильно простым.

Спустя 10 минут, 49 секунд (22.09.2012 - 12:52) PHP_Fox написал(а):
Цитата (Michael @ 22.09.2012 - 12:42)
Ну ты же сам видеть должен был на существующих сайтах, проверка обычно плана - чтобы пароль не был сильно простым.

Это все понятно, но учившие меня книги и интернет )) Все время мне долбили, все данные полученные из вне нужно либо тщательно проверять, либо всячески фильтровать либо принимать только то что тебе нужно(то есть делать ограничения).

Но опятьже, на большинстве сайтов где я регистрировался и обращал на это внимание, были ограничения как на Яндексе, по этому и сам так делал. И считал что это нормально.
Век живи век учись, и все равно дураком помрешь :)

Что-то только все говорят, что да не нужно ограничивать, но никто не чего не сказал, могут ли быть какие нибудь сложности с этим? Может кто нибудь выложил бы кусок своего кода, как Вы это делаете обычно ну и т.д.

Вот например этого достаточно? :)

	
$password = trim($_POST['password']);

if($password = ''){
...
}elseif(preg_match('/^.{6,}$/', $password)){
...
}else{
...
}

# Если все проверки прошел то отправляем $password в функцию хеша.

Или кто что еще посоветует проверить и т.д?

Спустя 31 минута, 56 секунд (22.09.2012 - 13:24) neadekvat написал(а):
if($password = '')

Вот это, надеюсь, не из рабочего кода, а так, на бегу писал?

Чтобы подсчитать длину строки, нет смысла использовать рег. выражения. (mb_)strlen.

Спустя 46 минут, 56 секунд (22.09.2012 - 14:11) PHP_Fox написал(а):
Цитата (neadekvat @ 22.09.2012 - 13:24)
<pre class="sh_sourceCode" rel="php"><span class="sh_control">if</span><span class="sh_symbol">(</span><span class="sh_variable">$password</span> <span class="sh_symbol">=</span> <span class="sh_string">''</span><span class="sh_symbol">)</span></pre>
Вот это, надеюсь, не из рабочего кода, а так, на бегу писал?

Чтобы подсчитать длину строки, нет смысла использовать рег. выражения. (mb_)strlen.

Ну в рабочем скрипте это выглядит вот так:
if(empty($password) and $password !== '0')

Хотя и вот так сразу, не пойму чем этот метод хуже?
if($password == '')

Или ты об опечатке вместо оператора равенства я там указал оператор присвоить. Каюсь в спешке набросал ))

Или оба варианта плохие? Есть лучше? Мне просто пока в голову лучше не пришел вариант, да и всего-то нужно убедиться что пользователь не отправил, пустое поле!

По поводу регулярки. Ты имеешь введу вот так?
if(strlen($password) < 6)

Спустя 11 минут, 30 секунд (22.09.2012 - 14:23) neadekvat написал(а):
Цитата (PHP_Fox @ 22.09.2012 - 15:11)
Или ты об опечатке вместо оператора равенства я там указал оператор присвоить.

Да, я об этом.

Цитата (PHP_Fox @ 22.09.2012 - 15:11)
По поводу регулярки. Ты имеешь введу вот так?

Да

Спустя 3 минуты, 53 секунды (22.09.2012 - 14:27) PHP_Fox написал(а):
Цитата (neadekvat @ 22.09.2012 - 14:23)
Цитата (PHP_Fox @ 22.09.2012 - 15:11)
Или ты об опечатке вместо оператора равенства я там указал оператор присвоить.

Да, я об этом.

Цитата (PHP_Fox @ 22.09.2012 - 15:11)
По поводу регулярки. Ты имеешь введу вот так?

Да

Ага спасибо! Вот уже есть польза от создания темы ) Просто я сегодня только пришел к решению не проверять пароль, и сразу начал думать в сторону упрощения регулярки, а об strlen() даже не подумал. Спасибо за замечание, применю в коде )) Кто что еще посоветует? Буду рад любым замечаниям и советам! )

Спустя 12 минут, 58 секунд (22.09.2012 - 14:40) Invis1ble написал(а):
Цитата
Чтобы подсчитать длину строки, нет смысла использовать рег. выражения. (mb_)strlen.

я уж думал, никто не напишет этого smile.gif

Спустя 1 минута, 30 секунд (22.09.2012 - 14:41) killer8080 написал(а):
Цитата (PHP_Fox @ 22.09.2012 - 14:11)
По поводу регулярки. Ты имеешь введу вот так?
if(strlen($password) < 6)

для юникода mb_strlen()

Спустя 5 минут, 22 секунды (22.09.2012 - 14:47) PHP_Fox написал(а):
Цитата (Invis1ble @ 22.09.2012 - 14:40)
Цитата
Чтобы подсчитать длину строки, нет смысла использовать рег. выражения. (mb_)strlen.

я уж думал, никто не напишет этого smile.gif

Так а чегож сразу не посоветовал, я ведь прошу любую помощь в этом вопросе, советы и т.д. А Вы смотрите и молчите )) А потом пишите, мол я думал )

Спустя 3 минуты, 30 секунд (22.09.2012 - 14:50) inpost написал(а):
twin
А ты хоть свой пароль уменьшил до 7-и символов, или до сих пор ограничения в 8 стоят?! smile.gif
А я то тебе писал, не надо ограничивать, пусть каждый сам за себя решает.

Спустя 5 минут, 3 секунды (22.09.2012 - 14:55) neadekvat написал(а):
Цитата (inpost @ 22.09.2012 - 15:50)
А я то тебе писал, не надо ограничивать, пусть каждый сам за себя решает.

Это общее правило. Не везде оно работает.

Когда поток жалоб об угнанных аккаунтах переходит какую-то границу, приходится запрещать 123456, на корню запрещать брутить пароли и пр.

Спустя 1 минута, 26 секунд (22.09.2012 - 14:57) Invis1ble написал(а):
Цитата (PHP_Fox @ 22.09.2012 - 14:47)
Цитата (Invis1ble @ 22.09.2012 - 14:40)
Цитата
Чтобы подсчитать длину строки, нет смысла использовать рег. выражения. (mb_)strlen.

я уж думал, никто не напишет этого smile.gif

Так а чегож сразу не посоветовал, я ведь прошу любую помощь в этом вопросе, советы и т.д. А Вы смотрите и молчите )) А потом пишите, мол я думал )

Прости, что не проснулся раньше на 1.5 часа и не отписался biggrin.gif

Спустя 15 минут, 1 секунда (22.09.2012 - 15:12) PHP_Fox написал(а):
Цитата (killer8080 @ 22.09.2012 - 14:41)
Цитата (PHP_Fox @ 22.09.2012 - 14:11)
По поводу регулярки. Ты имеешь введу вот так?
if(strlen($password) < 6)

для юникода mb_strlen()

Кстати по поводу функций (mb_). Может быть мне показалось, но они в последних сборках PHP не также работают как и без (mb_)? Просто была ситуация у меня с функцией mb_strtolower().
Писал функцию и в ней нужно было использовать функцию strtolower(), Все исзодники в UTF-8 как и база данных. Были проблемы пришлось использовать функцию mb_strtolower(). И у меня тогда более старый PHP был установлен, а недавно установил последний PHP и что-то копался в той функции и толи по запаре толи еще как, снова написал strtolower() и не каких проблем вообще непроявилось, я еще и подумал может в последних сборках уже и обычные функции без (mb_) стали поддерживать Юникод!? Ведь об этом говорилось что PHP плавно переходит в 6 версию, в которой будет полная поддержка Юникода. Или я ошибаюсь?

Спустя 46 секунд (22.09.2012 - 15:12) inpost написал(а):
neadekvat
Достаточно подсказку повесить:
- легкие пароли ломаются быстро и легко! Не хотите, чтобы к вашему аккаунту подобрали пароль и вас взломали - делайте сложные пароли. Любой уважающий хакер проверяет стандартные пароли: qwerty, test, 123, а так же дату рождения, ФИО данные и идентичный логину пароль. С уважением, администрация.

Ну я думаю, что только в банковских системах стоит контроль включать. Хотя политика некоторых банков относительно пароля - ужасна!

Спустя 3 минуты, 24 секунды (22.09.2012 - 15:16) PHP_Fox написал(а):
Цитата
и идентичный логину пароль

Мне кажется что это все таки еще нужно проверять! Или уже и это не проверяют? ))

Спустя 11 минут, 45 секунд (22.09.2012 - 15:27) killer8080 написал(а):
Цитата (PHP_Fox @ 22.09.2012 - 15:12)
а недавно установил последний PHP и что-то копался в той функции и толи по запаре толи еще как, снова написал strtolower() и не каких проблем вообще непроявилось, я еще и подумал может в последних сборках уже и обычные функции без (mb_) стали поддерживать Юникод!? Ведь об этом говорилось что PHP плавно переходит в 6 версию, в которой будет полная поддержка Юникода. Или я ошибаюсь?

php>=5.4 ?

Спустя 1 минута, 35 секунд (22.09.2012 - 15:29) inpost написал(а):
str не будет поддерживать Юникод. Там совсем о другом говорилось!
И strtolower русский текст опустим в нижний реестр? Ты в этом уверен?

Спустя 11 минут, 39 секунд (22.09.2012 - 15:41) PHP_Fox написал(а):
Цитата (inpost @ 22.09.2012 - 15:29)
str не будет поддерживать Юникод. Там совсем о другом говорилось!
И strtolower русский текст опустим в нижний реестр? Ты в этом уверен?

Да я в этом уверен вот только что протестировал, вот код:

$keywords = 'Тест функции strtolower() специально для сайта phpforum.ru )))';

$keywords = strtolower($keywords);

echo '<pre>';
var_dump($keywords);
echo '</pre>';
# Результат работы скрипта string(91) "Тест функции strtolower() специально для сайта phpforum.ru )))"


Так что все работает, можете сами проверить, яж почему и спросил что сам удивился )))

А хотя нет сори, она походу не сработала буква Т так и осталась в верхнем регистре.

А вот эта сработала как нужно
$keywords = mb_strtolower($keywords, 'UTF-8');
# Результат работы скрипта string(91) "тест функции mb_strtolower() специально для сайта phpforum.ru )))"

Тогда значит я просто не доглядел как и сейчас ))))

Спустя 5 минут, 25 секунд (22.09.2012 - 15:46) Invis1ble написал(а):
Цитата
# Результат работы скрипта string(91) "Тест функции strtolower() специально для сайта phpforum.ru )))"


Спустя 3 минуты, 8 секунд (22.09.2012 - 15:49) PHP_Fox написал(а):
Цитата (Invis1ble @ 22.09.2012 - 15:46)
Цитата
# Результат работы скрипта string(91) "Тест функции strtolower() специально для сайта phpforum.ru )))"

Да-да, я уже откорректировал свой пост выше )) Просто поспешил, ждал скорее ошибки а не то что она просто не сработает. По этому не обратил внимание на букву Т сразу )) Каюсь ))

Спустя 4 минуты, 20 секунд (22.09.2012 - 15:54) inpost написал(а):
PHP_Fox
Зачем для библиотеки mb_ ты указываешь второй параметр ЮТФ?

Спустя 6 минут, 42 секунды (22.09.2012 - 16:00) PHP_Fox написал(а):
Цитата (inpost @ 22.09.2012 - 15:54)
PHP_Fox
Зачем для библиотеки mb_ ты указываешь второй параметр ЮТФ?

Хм... Даже не знаю, наверно я тогда думал, а вдруг будут переданы не стандартные символы, что нибудь вроде β ))

Спустя 2 минуты, 58 секунд (22.09.2012 - 16:03) inpost написал(а):
Ну что делает второй параметр? Указывает кодировку. 5.4.: кодировка ПО УМОЛЧАНИЮ = utf-8. До 5.4. - какая-то левая, поэтому свою и надо указывать. Но лучше вообще в htaccess указывать.

Спустя 6 минут, 52 секунды (22.09.2012 - 16:10) PHP_Fox написал(а):
Цитата (inpost @ 22.09.2012 - 16:03)
Ну что делает второй параметр? Указывает кодировку. 5.4.: кодировка ПО УМОЛЧАНИЮ = utf-8. До 5.4. - какая-то левая, поэтому свою и надо указывать. Но лучше вообще в htaccess указывать.

Ну я программирую на PHP чуть больше года, и полностью самоучка, по книгам и по сайтам. У меня нет не одного знакомого или тем более друга, который бы вообще знал что такое программирование, не говоря уже о PHP. И по скольку я самоучка да еще и одиночка, то как на сайте php.net прочитал, как эту функцию понял, так ей и пользуюсь. Вот буду чаще тут общаться может и начну грамотнее программировать ))

А в htaccess. у меня и так написано ))

Цитата
# Кодировка файлов.
AddDefaultCharset utf-8


Так что теперь можно этот параметр не указывать?

Спустя 2 минуты, 25 секунд (22.09.2012 - 16:13) killer8080 написал(а):
PHP_Fox
можно один раз, в начале установить кодировку
mb_internal_encoding("UTF-8");

Спустя 2 минуты, 48 секунд (22.09.2012 - 16:15) inpost написал(а):
Если в htaccess указал, можно больше не писать. И указывать в htaccess надо до 5.4, после всё автоматически уже стоит как надо.

Спустя 4 минуты, 19 секунд (22.09.2012 - 16:20) PHP_Fox написал(а):
Цитата (inpost @ 22.09.2012 - 16:15)
Если в htaccess указал, можно больше не писать. И указывать в htaccess надо до 5.4, после всё автоматически уже стоит как надо.

Ага, все понял, спасибо запомню )) и исправлю во всех скриптах )

Спустя 2 минуты, 45 секунд (22.09.2012 - 16:22) PHP_Fox написал(а):
А что на счет проверки паролей, кому нибудь есть еще что добавить, может кто-то выложит кусок своего кода, как он проверяет, будет очень интересно посмотреть, может что нового для себя увижу!?

Спустя 6 минут, 30 секунд (22.09.2012 - 16:29) Invis1ble написал(а):
элементарная проверка - не менее N (6-8 обычно) символов.
более продвинутые - прогон через алгоритмы определения "сложности" пароля

Спустя 54 секунды (22.09.2012 - 16:30) killer8080 написал(а):
Цитата (PHP_Fox @ 22.09.2012 - 16:20)
Цитата (inpost @ 22.09.2012 - 16:15)
Если в htaccess указал, можно больше не писать. И указывать в htaccess надо до 5.4, после всё автоматически уже стоит как надо.

Ага, все понял, спасибо запомню )) и исправлю во всех скриптах )

что именно исправишь? Ты хоть понял, что туда нужно прописать?

Спустя 17 минут, 4 секунды (22.09.2012 - 16:47) PHP_Fox написал(а):
Цитата (killer8080 @ 22.09.2012 - 16:30)
Цитата (PHP_Fox @ 22.09.2012 - 16:20)
Цитата (inpost @ 22.09.2012 - 16:15)
Если в htaccess указал, можно больше не писать. И указывать в htaccess надо до 5.4, после всё автоматически уже стоит как надо.

Ага, все понял, спасибо запомню )) и исправлю во всех скриптах )

что именно исправишь? Ты хоть понял, что туда нужно прописать?

Удалю во всех вызовах функций mb_функция($string, 'UTF-8'); второй параметр 'UTF-8'.
А что конкретно ты имеешь введу
Цитата
Ты хоть понял, что туда нужно прописать?

Если ты о файле htaccess, так я уже выше показал что у меня в нем написано ))
Цитата
# Кодировка файлов.
AddDefaultCharset utf-8


У меня там эта директива, написана уже давно, когда еще я переходил на кодировку UTF-8.

Или ты о чем то другом?

Спустя 4 минуты, 2 секунды (22.09.2012 - 16:51) PHP_Fox написал(а):
Цитата (Invis1ble @ 22.09.2012 - 16:29)
элементарная проверка - не менее N (6-8 обычно) символов.
более продвинутые - прогон через алгоритмы определения "сложности" пароля

Более продвинутая, это ты о том, что должны быть в пароле как цифры так и буквы и желательно, что бы хоть одна буква была в верхнем регистре и так далее?

Спустя 12 минут, 1 секунда (22.09.2012 - 17:03) Invis1ble написал(а):
Цитата (PHP_Fox @ 22.09.2012 - 16:51)
Цитата (Invis1ble @ 22.09.2012 - 16:29)
элементарная проверка - не менее N (6-8 обычно) символов.
более продвинутые - прогон через алгоритмы определения "сложности" пароля

Более продвинутая, это ты о том, что должны быть в пароле как цифры так и буквы и желательно, что бы хоть одна буква была в верхнем регистре и так далее?

типа того, есть разные алгоритмы, но суть обычно примерно одинаковая

Спустя 4 минуты (22.09.2012 - 17:07) killer8080 написал(а):
Цитата (PHP_Fox @ 22.09.2012 - 16:47)
Если ты о файле htaccess, так я уже выше показал что у меня в нем написано ))Цитата
# Кодировка файлов.
AddDefaultCharset utf-8

Так вот и я о том же, AddDefaultCharset не имеет ни какого отношения к php. Это директива апача, благодаря которой к заголовку Content-Type будет добавлено указание кодировки документа. На работу php в общем, и mbsrtring в частности она никак не влияет. Указать дефолтовую кодировку для этого расширения, можно разными способами
1 - через php.ini, директива
mbstring.internal_encoding
2 - через .htaccess
php_value mbstring.internal_encoding UTF-8

3 функцией mb_internal_encoding
4 функцией ini_set() (в данном случае смысла не имеет, т.к. есть mb_internal_encoding)

Спустя 2 минуты, 34 секунды (22.09.2012 - 17:09) PHP_Fox написал(а):
Invis1ble
Цитата
типа того, есть разные алгоритмы, но суть обычно примерно одинаковая

Алгоритмы с помощью регулярных выражений, я так понимаю? А есть рабочие примеры, взглянуть хоть на них, и если есть, то желательно хоть с кратким описанием, что проверяется?

Спустя 7 минут, 47 секунд (22.09.2012 - 17:17) PHP_Fox написал(а):
killer8080
Ага, вот как? А я думал речь идет о AddDefaultCharset и что мол этого достаточно.
Ну лучше я конечно пропишу директиву в файл htaccess.
Во-первых потому что первый вариант не подходит по понятным причинам. Если скрипт будет работать на арендованном сервере, то доступа к php.ini как правило нет.
Третий и четвертый вариант, не удобны, потому что придется заботится об этом в каждом отдельном файле, в котором будут работать функции mb_.
По этому только 2 вариант.
Дописал, глянь все правильно?

Цитата
# Кодировка файлов.
AddDefaultCharset utf-8
# Кодировка по умолчанию для расширения mbstring.
php_value mbstring.internal_encoding UTF-8

Спустя 1 минута, 36 секунд (22.09.2012 - 17:19) inpost написал(а):
PHP_Fox
Все файлы должны подключаться через единую точку входа: index.php , учесть это, ты прописываешь только в index.php эту строчку и всё. Это для 3 и 4.

Спустя 4 минуты, 45 секунд (22.09.2012 - 17:24) PHP_Fox написал(а):
Цитата (inpost @ 22.09.2012 - 17:19)
PHP_Fox
Все файлы должны подключаться через единую точку входа: index.php , учесть это, ты прописываешь только в index.php эту строчку и всё. Это для 3 и 4.

Я видел что многие сайты так работают через index.php но как-то я пока еще так не программирую, у меня они по задачам разделены ) Может и стоит задуматься что бы сделать все через index.php, только вот не знаю выиграю я от этого или только головную боль себе дополнительно создам!?

Спустя 2 минуты, 23 секунды (22.09.2012 - 17:26) inpost написал(а):
Все делают, всем делать нечего?! smile.gif

Спустя 6 минут, 21 секунда (22.09.2012 - 17:32) PHP_Fox написал(а):
inpost
Я вот сейчас и представить не могу как это вообще реализуется )))

Спустя 25 секунд (22.09.2012 - 17:33) Invis1ble написал(а):

Спустя 2 минуты, 34 секунды (22.09.2012 - 17:35) killer8080 написал(а):
Цитата (PHP_Fox @ 22.09.2012 - 17:17)
Ну лучше я конечно пропишу директиву в файл htaccess.

Весьма спорно. Я бы не стал делать категоричных заявлений. Файл .htaccess - это файл динамической конфигурации апача. Кто сказал что на хостинге вообще будет апач? Как будто это единственно возможная конфигурация smile.gif
Цитата (PHP_Fox @ 22.09.2012 - 17:17)
Во-первых потому что первый вариант не подходит по понятным причинам. Если скрипт будет работать на арендованном сервере, то доступа к php.ini как правило нет.

Доступа нет на шаред хостингах, где пхп работает как модуль апача, если там окажется nginx+FPM, твои скрипты развалятся, как карточный домик. Потому что ты жестко завязал их работоспособность на чужеродный конфиг файл, который кстати вообще может не работать.
Если речь идет о VPS, то там нет проблем с доступом к конфигам пхп.
Цитата (PHP_Fox @ 22.09.2012 - 17:17)
Третий и четвертый вариант, не удобны, потому что придется заботится об этом в каждом отдельном файле, в котором будут работать функции mb_.

Все зависит от архитектуры. Если у тебя каждый отдельный скрипт работает сам по себе, то конечно не удобно. В любом нормальном движке есть бутстрап, т.е. дефолтовые действия в начале работы скрипта Там определяются все конфиги, и инициализируются переменные. Там нужно и mbstring инициализировать. Покопайся в разных фреймворках, посмотри как делают другие. потом принимай решение, какую архитектуру использовать.
Цитата (PHP_Fox @ 22.09.2012 - 17:17)
Дописал, глянь все правильно?

да.

В общем все определяется конкретной задачей. Если работаешь над существующим проектом, или за ранее известна в какой конфигурации оно будет работать на сервере, то используй подходящий для данного случая способ. Если там модуль апча, то .htaccess, если FastCGI, то либо ручная правка ини файлов, либо инициализация в скрипте. Если же на момент разработки, не известна конфигурация, предусматривай все возможные варианты.

Спустя 8 минут, 50 секунд (22.09.2012 - 17:44) PHP_Fox написал(а):
killer8080
Спасибо, об этом я как-то не подумал ) Да задолбаюсь я так писать свой движок ))))
То переходил на ООП более менее разобрался, многое перевел на классы, то вместо mysql переходил на mysqli кучу пришлось переписать и переделать )))
Теперь еще тут советуют делать что бы все работало через index.php. Хотя я понятия не имею как это реализовать. А хочется так что бы написать и конфетка ))) По этому придется снова, голову ломать. А еще и 10% движка не написано )) Ох... К старости напишу я чувствую ))

Спустя 44 секунды (22.09.2012 - 17:45) PHP_Fox написал(а):
Invis1ble Спасибо, обязательно почитаю )

Спустя 5 минут, 15 секунд (22.09.2012 - 17:50) killer8080 написал(а):
Цитата (PHP_Fox @ 22.09.2012 - 17:44)
Теперь еще тут советуют делать что бы все работало через index.php. Хотя я понятия не имею как это реализовать.

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

Спустя 6 минут, 46 секунд (22.09.2012 - 17:57) PHP_Fox написал(а):
killer8080 Та ну это понятно что не в каждый файл прописывать, в тотже config.php записывать все это ) Просто нужно позаботиться что бы этот файл был подключен везде где это необходимо.
А в чем основное преимущество писать скрипт с общей точкой входа? И стоит ли вообще об этом задумываться?

Спустя 2 минуты, 59 секунд (22.09.2012 - 18:00) killer8080 написал(а):
Цитата (PHP_Fox @ 22.09.2012 - 17:57)
А в чем основное преимущество писать скрипт с общей точкой входа?

Проще организуется ЧПУ, не нужно под каждую страницу свои реврайты писать.

Спустя 5 минут, 51 секунда (22.09.2012 - 18:06) PHP_Fox написал(а):
killer8080
Цитата
Проще организуется ЧПУ, не нужно под каждую страницу свои реврайты писать.

Вот только подумал об этом, хотел задать тебе этот вопрос, и вот ты уже сразу и ответил.
Теперь ясно )

А как вообще это организуется, я так смотрю по URI вот даже тут на форуме, каждая задача тобишь там где я делал вызов отдельных файлов, то есть из одного файла передавал параметры в другой, тут как-то вместо файла используется переменная.
Но что-то сразу не соображу.
Можешь описать хотя бы вкратце как это реализуется, или кто нибудь из формучан, можете просветить?
Быстрый ответ:

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