Сергей В.
244 сообщения
#16 лет назад
О striptags забыли еще
Антон С.
15 сообщений
#16 лет назад
Насчёт того, какие задачи ставить...
Вверху кнопочка "Проекты" =)
Если ты понимаешь что проект тебе уж не взять, иль ты с ним будешь долго возится... иль просто он тебе не светит, просто сделай его для себя... авось пригодится (я частенько таким страдаю, опыта хочется набраться)

З.Ы. Может вопрос и не совсем по теме, но могут ли мне ответить люди с оконченной вышкой… На какой факультет в политехе желательно поступать, дабы заниматься фрилансом такого типа, с которым мы имеем дело на этом сайте?
У меня в планах «компьютерные системы и сети»… Правилен ли выбор?
Вадим Т.
3240 сообщений
#16 лет назад
Цитата ("westry"):
З.Ы. Может вопрос и не совсем по теме, но могут ли мне ответить люди с оконченной вышкой… На какой факультет в политехе желательно поступать, дабы заниматься фрилансом такого типа, с которым мы имеем дело на этом сайте?
У меня в планах «компьютерные системы и сети»… Правилен ли выбор?

Шучу конечно, но... В политехе лучше всего поступать на факультет химорганики. Потому что:
1. Хоть это и не имеет ничего общего с фрилансом, зато учеба там наименее напряжная, и будет масса времени как раз фрилансом заниматься.
2. 99% обучающихся на этом факультете - студентки...

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

Недостаток факультета химорганики только один:
Если захотите потом уехать на работу на запад по IT специальности, будет немного труднее пробиться через иммиграционную службу.
Николай С.
710 сообщений
#16 лет назад
Цитата ("tvv"):
2. 99% обучающихся на этом факультете - студентки...

Тогда уж на экономический
Станислав Малкин
1410 сообщений
#16 лет назад
Цитата ("tvv"):
Лучше так:

if (!is_numeric(@$_POST)){
die("Пшел Вон! Приветствуются только цифровые ФИО!!!";
}

чтобы параноидальных предупреждающих сообщений не выдавало, если на вход $_POST не пришло


Не правильно. Правильно так:


if (isset($_POST) {
if (!is_numeric($_POST)){
die("Пшел Вон! Приветствуются только цифровые ФИО!!!");
}
}
Станислав Малкин
1410 сообщений
#16 лет назад
DenTal, ошибки:

1) зря использована ereg - она приводит к потере производительности.
2) нет обработки XSS атак. Подумайте, что будет, если я в поле name введу, что-то типа "bla-bla<script type="text/javascript" language="javascript">alert('XSS hack';</script>".
3) нет защиты от флуда. Человек может случайно нажать ф5 и форма снова отправиться.

Удачи.
 A.
120 сообщений
#16 лет назад
зря использована ereg - она приводит к потере производительности.
наверное сильно тормозить будет? прийдецца переезжать на выделенный сервер?

Подумайте, что будет, если я в поле name введу, что-то типа "bla-bla<script type="text/javascript" language="javascript">alert('XSS hack';</script>".
да, кстати.. а что ж будет? расскажите, если не секрет конечно

if (isset($_POST) {
if (!is_numeric($_POST)){
die("Пшел Вон! Приветствуются только цифровые ФИО!!!");
}
}

не, вообще ниадно и тоже
Станислав Малкин
1410 сообщений
#16 лет назад
Цитата ("Andreika"):
зря использована ereg - она приводит к потере производительности.
наверное сильно тормозить будет? прийдецца переезжать на выделенный сервер?


А по-вашему обязательно доводить до этого? Ведь дом из кирпичиков строится. И на каждом куске кода надо стараться сделать оптимальнее. Это решение не оптимально. Или это не понятно? Уже даже потому, что это ereg - php-регулярное выражение, а не основанное на perl-регулярных выражениях. Линк по теме -
Цитата :
Цитата:

Замечание: preg_match(), which uses a Perl-compatible regular expression syntax, is often a faster alternative to ereg().


Цитата ("Andreika"):

Подумайте, что будет, если я в поле name введу, что-то типа "bla-bla<script type="text/javascript" language="javascript">alert('XSS hack';</script>".
да, кстати.. а что ж будет? расскажите, если не секрет конечно


Предлагаю, чтобы не разводить длинный флуд почитать, что такое XSS - например тут -

Разберемся:

имеем кусок кода:


$mailcontent = "Хай чел! Тебе отправил месагу с твоего крутого сайта чувак по имени ".$name."!n"."Его мыло ".$email."n"."Вот что он тебе пишет: "."$msg";
mail("***", "С веб сайта", "$mailcontent");

echo nl2br($mailcontent)."<br>";


Письмо отправляется и в браузер выводится то, что сформировано в переменную $mailcontent, а она в себе содержит конкантенацией $name. Любой злоумышленник может внедрить любой ему угодный сценарий javascript в $name через форму и использовать данный сервер для атаки другого сервера или атаковать данный сервер. Например джаваскриптом сделать вывод картинки, которая формируется из php файла, который подключается с удаленного сервера или с текущего. В общем дело техники. Главное, что есть такая возможность - а это уже не безопасно для сервера.

Цитата ("Andreika"):

if (isset($_POST) {
if (!is_numeric($_POST)){
die("Пшел Вон! Приветствуются только цифровые ФИО!!!");
}
}


не, вообще ниадно и тоже



И в чем по Вашему различие? Так, как я описал - делать правильно. Глушить заглушками - это создавать места потенциальных ошибок, которые потом очень тяжело поддаются обработке. Ведь как можно обработать какую-то ошибку, если ошибок не выводиться? Я таких способов не знаю. Сообщения об ошибках всегда помогают понять причину и участок кода, где ошибка. Глушить такие места - не выход.
 A.
120 сообщений
#16 лет назад
Это решение не оптимально.
дык и спрашиваю - насколько неоптимально это решение? в чем угодно, в процентах, абсолютных числах

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

Так, как я описал - делать правильно
POST /script.php email=lalala&msg=blablabla
что будет в вашем варианте и в том, который вы пытались править
Станислав Малкин
1410 сообщений
#16 лет назад
Цитата ("Andreika"):

Так, как я описал - делать правильно
POST /script.php email=lalala&msg=blablabla
что будет в вашем варианте и в том, который вы пытались править


Результаты будут совпадать. Конечно, если Вы имеете ввиду вариант, когда name не передано, то код нуждается в корректировке. Но то, о чем Вы говорите - другая обработка - обработка на то, передано ли поле вообще. Мы берем тот вариант, когда поле было в форме. И следовательно было передано. Но оно пустое.
 A.
120 сообщений
#16 лет назад
Т.е. при isset($_POST)==falsel вашими молитвами все равно выполнится этот участок кода
if (!is_numeric($_POST)){ 
die("Пшел Вон! Приветствуются только цифровые ФИО!!!");
}

?
Станислав Малкин
1410 сообщений
#16 лет назад
Цитата ("Andreika"):
т.е. при isset($_POST)==falsel вашими молитвами все равно выполнится этот участок кода
if (!is_numeric($_POST)){ 
die("Пшел Вон! Приветствуются только цифровые ФИО!!!");
}

?


Нет, не выполниться, а почему он должен выполняться? Если в if передается false разве когда-то что-то, что идет внутри этого цикла - выполнялось?
 A.
120 сообщений
#16 лет назад
Вот и я думаю чеб он выполнился... а так выполнится die?
if (@!is_numeric($_POST)){ 
die("Пшел Вон! Приветствуются только цифровые ФИО!!!");
}

?
Станислав Малкин
1410 сообщений
#16 лет назад
Я не понимаю к чему Вы ведете. Выражайтесь яснее. die ДОЛЖЕН выполняться только тогда, когда данные, что переданы не являются данными, состоящими из цифр. Если поле не передано - должно выводится сообщение о том, что поле не заполнено. Все просто. Все остальное, о чем Вы пишите - демогогия на пустом месте.
 A.
120 сообщений
#16 лет назад
Я не понимаю к чему Вы ведете.
я вам русский говорить еще первый сообщений, что
if (@!is_numeric($_POST)){ 
die("Пшел Вон! Приветствуются только цифровые ФИО!!!");
}

нельзя переписать в

if (isset($_POST) {
if (!is_numeric($_POST)){
die("Пшел Вон! Приветствуются только цифровые ФИО!!!");
}
}


а остальное - ага, разводим х пойми что на пустом месте.. вот некоторым демагогам ereg нинравицца.. бываит
Станислав Малкин
1410 сообщений
#16 лет назад
Можно переписать и нужно. Если Вы этого не понимаете - не стоит продолжать разговор. Лучше читайте документацию.
 A.
120 сообщений
#16 лет назад
ArtLab,
ну нинаю.. вроде бы если после вашей переделки (ээ.. рефракторинга, наверное) результаты работы скрипта не совпадают с тем, что было.. не, вам то конечно лучше знать)

Лучше читайте документацию.
и кста, в документации ничего про "Глушить заглушками и прочее маслитьмаслом - это плохо" не написано
Станислав Малкин
1410 сообщений
#16 лет назад
Далеко не все и не всегда описано в документации. Это не значит, что головы у разработчика не должно быть своей на плечах. Я привел аргументы, почему не стоит этого делать.
 A.
120 сообщений
#16 лет назад
Это не значит, что головы у разработчика не должно быть своей на плечах
а нафик она нам нужна если мы не можем без вашего совета решить как нам жить)

Я привел аргументы, почему не стоит этого делать.
основной смысл был в том, что вы достаточно криво воспроизвели функцию, ну да ладно.. если вы про аргументы, то не убедили
какие такие потенциальные проблемы вы видите в первоначальном коде с @ ?
Станислав Малкин
1410 сообщений
#16 лет назад
Andreika, Вы читать умеете? Я уже несколько раз повторил ключевую проблему. Это проблема отладки кода :angry:

Я не задавался идеей воиспроизводить функцию. Я показал пример, как нужно поступить, чтобы избавится от @.