Рейтинг@Mail.ru
 
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 |

25-08-2011 / Валентин
Спасибо. Очень помогло, так как тоже проходил курсы Попова и писал по его урокам движек для сайта. Замучался в корень, но после ваших статей все ошибки исправлены.
08-09-2011 / МАКС
Не понял фишку с циклом do-while. Вы предлагаете использовать вместо него цикл while?

Но тогда внутренний счетчик mysql_fetch_array ДО ВЫПОЛНЕНИЯ ПЕРВОГО ЦИКЛА ПЕРЕКИНЕТСя на единичку.

То есть, если вытаскивать вашим методом данные из БД, то первая строка таблицы БД просто не будет выводится mysql_fetch_array, который в вашем коде повторяется два раза подряд - в цикле print  БУДЕТ ВЫВОДИТЬ СО ВТОРОЙ СТРОКИ БД
08-09-2011 / МАКС
Twin, может я ошибаюсь? Сам учусь по урокам Попова - сомнений в его мастерстве, конечно, много. Тем более 2007 год выпуска курса.
Но знаете, моя специальность - совершенно не программирование. А PHP и сайты - это хобби. Поэтому лично мне - удобны видеокурсы. Просто физически нет времени ковырять тонны книг((( Хотя, понятно, что истина познается в сравнении - чем больше прочитаешь - тем лучше сделаешь.
В одном с вами точно соглашусь - в преподаватели (и в управители народов, - это уже от себя) сейчас лезут ну совсем не те люди)))

Поясните, пожалуйста, фишку с do-while. Правильны ли мои предположения? Попробовал на практике - действительно первая строка из БД - не выводится.
09-09-2011 / twin
А зачем два раза
mysql_fetch_array()?

Зачем его до цикла? У меня разве так написано... Сейчас посмотрю.
09-09-2011 / twin
Не пугай
И кстати, там вовсе не mysql_fetch_array() а mysql_fetch_assoc().
Это важно.
09-09-2011 / гы
Ну так то все верно написано.
12-09-2011 / МАКС
twin, прокомментируйте, пожалуйста. Попов, в своем видеокурсе (к вам попал недоделанный сайт даже по курсам Попова) предлагает ставить вот такую защиту переменных передаваемых методом GET. Цитирую:
/* Проверяем, является ли переменная числом */
if (!preg_match("|^[\d]+$|", $)) {
exit ("<p>Неверный формат запроса! Проверьте URL!");
}


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

Начал читать про безопасность - влез в такие дебри((( А я новичок и просто хочу сделать сайт на PHP, который бы не угробил первый недохацкер. Про настоящих хакеров я молчу - судя по всему от них вообще нет защиты))) Но хотя бы от школьников страдающих манией величия свои БД уберечь очень уж хочется... Может где-то есть такая
12-09-2011 / twin
Ну вот тут мое... А так даже не знаю. Все по крупицам собирается.
12-09-2011 / vahvah
изучая курсы евгения попова, сразу полнял что это бред, но всё таки курс изучил, и думал что мне статичного "php" файла хватит), вот щяс прохожу эти курсы и сразу понимаю что это совсем другая тема, причем с максимум ориентация на само программирование php! автору респект за труд, и кстате даже когда стал интересоваться php сначала заходил на этот сайт, но из за сложности не стал заморачиваться) хотя MVC структуру ещё видел на серверах вова))
13-09-2011 / МАКС
Ну что ж, видимо придется усмирить дикое желание побыстрей выложить сайт в Сеть и сначала выучить как же его можно обезопасить от хацкеров. А это, как я понимаю, займет ни один день. ЭХ!!! Обидно, конечно, что Попов этому внимания не уделил. Хотя было бы еще обидней в один прекрасный день увидеть разваленный сайт и руины БД... Буду переделывать и латать дыры. Чувствую, что поработать придется много.

Спасибо вам, twin, за ссылку и подсказки. И вообще - за эту статью. Бум учится дальше. Понимаю гнев тех людей, которые купили курс Попова, сделали сайт, а его сразу и хакнули... Хоть бы сказал, что над безопасностью надо работать отдельно. А то ж - выкладывайте все готово.
13-09-2011 / king
to МАКС:
>>> обидней в один прекрасный день увидеть разваленный сайт и руины БД...

Имеются 3+(?) уязвимых места -
url ($_GET), поля формы ($_POST), обращение к БД, сессии, куки ...

Теперь думаем, ищем как можно без спроса попасть на сайт через эти лазейки.
Через url например можно отправить мерзкий js-код, который может кое-что обосрать. Через поля форм тоже самое, и не только js-код.
Через поля и т.п. можно напасть и на БД ... ну это понятно ...
Вывод!
Надо использовать ф-ии (встроенные (addslashes, htmlspecialchars, striptags ....) или свои), чтобы не допустить попадания стороннего кода (скрипты, exe-шники) на сайт.
Чтобы в БД не попадал код и т.п., используй mysql_real_escape_string() вместе с sprintf(), тогда если чек отправит зловещий скрипт он попадет в БД как простой текст и все кавычки, слеши и т.п. тоже останутся на своих местах
13-09-2011 / Таня
Так смешно было читать первые комментарии, годовалой давности, каких-то обиженных. Более опытный программист "открыл глаза" на ошибки менее опытного, в помощь совсем не опытным. Странно что кого-то это хоть как-то задело))) Я просто скажу спасибо за эту статью - много узнала полезного и важного. Побольше бы такого материала.
14-09-2011 / МАКС
Спасибо, king. Откуда теоритечески могут исходить угрозы я уже примерно понял. Но масса практических вопросов(((

Например, как можно обработать такой запрос (идет до доктайпа)

$result = mysql_query ("SELECT * FROM settings WHERE page='index'",$db);

Структуру, которую я использовал в запросах где были переменные - тут не , катит. Syntax error выводит

$result = mysql_query ("SELECT * FROM settings WHERE page='".mysql_real_escape_string(index)"'",$db);

И еще: в конце запроса Попов рекомендует ставить индификатор $db, понятно зачем он нужен, но не перечеркивает ли это все усилия защититься, не может ли после него быть прописан посторонний код?

Сорри за ламерские вопросы - интересно разобраться. Спасибо.
15-09-2011 / twin
Такие вопросы на форум нужно задавать.
И не бояться быть ламером. Самый глупый вопрос - не заданный вопрос.
19-09-2011 / 987654
"Сууууууууука" - многократное слово произнесенное мною во время прочтения работы над ошибками.

Спасибо большое irbis-team за разбор полетов

Пюсю нету яндексовых маней, а вмр бы скинул
21-09-2011 / Саныч
Я благодарен Попову если бы не он хрен бы я разобрался с php. Я до него читал разные текстовые учебники и ничего не понимал потому что там пишут не для новичков в основном. А после уроков Попова начал понимать, что о чём пишут в текстовых учебниках. Попов умеет хорошо объяснять в этом плюс его уроков, но делать всё от а до я как он говорит не стоит. Мне например теории Попова было мало. Помимо теории надо научиться продумавать алгоритмы, научиться читать код, и тд. Меня на практике учили совсем другие люди с одним челом месяца два каждый день в аське общался(спасибо ему за терпение) и узнал столько мелочей о которых Попов не говорил. В заключение хочу сказать, что если есть желания то можно овладеть php главное не забывать консультироваться с профессианалами.
27-09-2011 / Esc
Слышал про вашего эм... Попова...

Помнится мы на курсе 1 изучали нечто подобное в технаре...

Советую перечитать все курсы данного сайта... Если не понятно читаем 2 раз... 3... 4... Тут ребята не веники вяжут!
29-09-2011 / ken
Спасибо за разбор. А какие видеокурсы можно порекомендовать для начинающих изучать php. Что, например, можно сказать о продукции от бауманского "Специалиста".
01-10-2011 / Tim
Мне лично Специалист по душе
02-10-2011 / Саныч
Вся прелесть видео курсов в том, что запомнить легче. Человек запоминает 10% из того, что читает 20% из того, что слышет, и 70% из того, что видет. А у Попова 3 в 1 текст, голос, видео. Поэтому видео уроки лучше чем просто текст. Имеено видео дало мне точку опоры в изучении. Да Попов накатал не мало всякой хрени, но он в отличие от профессионалов смог мне объяснить азы. Вопрос к мастерам. Почему же вы не можете создать такие видео курсы? Не уже ли мозгов не хватает? С мозгов всё в порядке раз вы стали мастерами. Так почему же вам не записать на видео ваш опыт? Простой текст не каждый может усвоить. Я например долго не мог, да и сейчас не всё могу понять на 100%. Вообщем так если считаете, что Попов гонит шнягу сделайте лучше тогда про уроки Попова забудут буду ваши смотреть, если конечно они будут лучше.
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 |