Помошь новичку в php
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 и форма снова отправиться.
Удачи.
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("Пшел Вон! Приветствуются только цифровые ФИО!!!");
}
}
не, вообще ниадно и тоже
И в чем по Вашему различие? Так, как я описал - делать правильно. Глушить заглушками - это создавать места потенциальных ошибок, которые потом очень тяжело поддаются обработке. Ведь как можно обработать какую-то ошибку, если ошибок не выводиться? Я таких способов не знаю. Сообщения об ошибках всегда помогают понять причину и участок кода, где ошибка. Глушить такие места - не выход.
120 сообщений
#16 лет назад
Это решение не оптимально.дык и спрашиваю - насколько неоптимально это решение? в чем угодно, в процентах, абсолютных числах
Например джаваскриптом сделать вывод картинки, которая формируется из php файла, который подключается с удаленного сервера или с текущего.
порно, порно? или как?)
Так, как я описал - делать правильно
POST /script.php email=lalala&msg=blablabla
что будет в вашем варианте и в том, который вы пытались править
1410 сообщений
#16 лет назад
Цитата ("Andreika"):
Так, как я описал - делать правильно
POST /script.php email=lalala&msg=blablabla
что будет в вашем варианте и в том, который вы пытались править
Результаты будут совпадать. Конечно, если Вы имеете ввиду вариант, когда name не передано, то код нуждается в корректировке. Но то, о чем Вы говорите - другая обработка - обработка на то, передано ли поле вообще. Мы берем тот вариант, когда поле было в форме. И следовательно было передано. Но оно пустое.
120 сообщений
#16 лет назад
Т.е. при isset($_POST)==falsel вашими молитвами все равно выполнится этот участок кодаif (!is_numeric($_POST)){
die("Пшел Вон! Приветствуются только цифровые ФИО!!!");
}
?
1410 сообщений
#16 лет назад
Цитата ("Andreika"):т.е. при isset($_POST)==falsel вашими молитвами все равно выполнится этот участок кодаif (!is_numeric($_POST)){
die("Пшел Вон! Приветствуются только цифровые ФИО!!!");
}
?
Нет, не выполниться, а почему он должен выполняться? Если в if передается false разве когда-то что-то, что идет внутри этого цикла - выполнялось?
120 сообщений
#16 лет назад
Вот и я думаю чеб он выполнился... а так выполнится die?if (@!is_numeric($_POST)){
die("Пшел Вон! Приветствуются только цифровые ФИО!!!");
}
?
1410 сообщений
#16 лет назад
Я не понимаю к чему Вы ведете. Выражайтесь яснее. die ДОЛЖЕН выполняться только тогда, когда данные, что переданы не являются данными, состоящими из цифр. Если поле не передано - должно выводится сообщение о том, что поле не заполнено. Все просто. Все остальное, о чем Вы пишите - демогогия на пустом месте.
120 сообщений
#16 лет назад
Я не понимаю к чему Вы ведете.я вам русский говорить еще первый сообщений, что
if (@!is_numeric($_POST)){
die("Пшел Вон! Приветствуются только цифровые ФИО!!!");
}
нельзя переписать в
if (isset($_POST) {
if (!is_numeric($_POST)){
die("Пшел Вон! Приветствуются только цифровые ФИО!!!");
}
}
а остальное - ага, разводим х пойми что на пустом месте.. вот некоторым демагогам ereg нинравицца.. бываит
1410 сообщений
#16 лет назад
Можно переписать и нужно. Если Вы этого не понимаете - не стоит продолжать разговор. Лучше читайте документацию.
120 сообщений
#16 лет назад
ArtLab,ну нинаю.. вроде бы если после вашей переделки (ээ.. рефракторинга, наверное) результаты работы скрипта не совпадают с тем, что было.. не, вам то конечно лучше знать)
Лучше читайте документацию.
и кста, в документации ничего про "Глушить заглушками и прочее маслитьмаслом - это плохо" не написано
1410 сообщений
#16 лет назад
Далеко не все и не всегда описано в документации. Это не значит, что головы у разработчика не должно быть своей на плечах. Я привел аргументы, почему не стоит этого делать.
120 сообщений
#16 лет назад
Это не значит, что головы у разработчика не должно быть своей на плечаха нафик она нам нужна если мы не можем без вашего совета решить как нам жить)
Я привел аргументы, почему не стоит этого делать.
основной смысл был в том, что вы достаточно криво воспроизвели функцию, ну да ладно.. если вы про аргументы, то не убедили
какие такие потенциальные проблемы вы видите в первоначальном коде с @ ?