Я же ссылку дал на нужную функцию в документации Без указания кодировки опасно работать. Но и указывать надо правильно. Указывать через запрос - неправильно. В книгах указывается запросом либо потому что автор не в курсе фич mysqli_, либо потому что книга была написана до того, как в php завезли mysqlnd-адаптер, который позволяет пользоваться этими вот командами нативно. До его появления этой функциональности у mysqli_ не было. Но к тому моменту, когда mysql_ еще не сдох, но уже стал deprecated, это все давно доехало. --- Добавлено --- ini-файлы это уже не просто текстовичок. Это конкретная структура данных со своим синтаксисом. Пихать что-то левое в ini-файл такое же преступление как пихать что-то левое, например, в xml_файл. Для INI-файлов в пыхе даже встроенный парсер есть, читающий их и разбирающий на массив. А ты не гадай. Ты читай в документации, сколько, чего, как и почему, а, главное, кто, принимает. Там все написано. У PHP доументация вообще чуть ли не образцово-показательная, на которую должны равняться остальные языки. Лаконичная, удобная, логично оформленная, отвечающая на все вопросы, да еще сдобренная комментариями сообщества. Не пользоваться ею - преступление.
@Fell-x27 учел все сделанные мне замечания, сделал изменения в коде, только остался один момент но когда я тестировал и обновлял страницу, то повторной отправки не было. Все равно сделал было редирект, но тогда перестал отображаться массив $error в котором записан результат проверок, в частности на возраст, даже если объявлять его как global. В результате не выводилось сообщение Too young! Too old! и переписал снова как было, но хоть и нет редиректов -странички обновляются без проблем! А вот при нажатии на Backspace, просит повторную отправку! https://github.com/77Alleksandr77/task http://annutka.tk/task
Вот так быть не должно. Ну форму с ошибками я не всегда сам редиректю, как раз, чтобы отобразить ошибки без мучений с сессией, хотя @Fell-x27 считает, что и в этом случае должен быть редирет. Но в случае успеха - обязательно редиректить Ну так надо же понимать, что такое редирект. Это новый, подчистую, запуск скрипта, конечно все переменные в нём новые. Для таких вещей в php есть сессии, не только для регистрации. Туда можно и ошибки сложить
А еще можно редиректить на гет-запрос, как делают почти все в этом вашем интернете, включая тех, кто этот интернет на своей спине тащит.
я думал взять массив сессий, но посчитал что это неправильно и решил тут описать эту проблему, а раз его можно использовать в этих целях то gut @mkramer да, в фарфоксе выскакивает, я проверял в опере, считал что и в гугле тогда тож все будет ок, а по картинке вижу что нет, не ок, хотя хром и опера практически одно и тоже! а в опере просто счетчик мотает, но без окошек! не проверял когда вход выполнен! --- Добавлено --- ИНТЕРНЕТ НАШ!
@Fell-x27 я до вчерашнего дня, и начиная с февраля месяца, лежал в больнице! сейчас еще на больничном нахожусь, жду комиссию ВТЭК, возможно получу группу инвалидности, еще не известно, на работе меня не уволили- не могут пока я на больничном, но если получу группу то придется уходить с работы. Поэтому поставил себе цель как можно быстрее освоить PHP что бы можно было иметь хоть какой то заработок, но смотрю знать надо очень много, а эффективнее всего учиться на подобных заданиях. Могли бы вы меня немного "поднатоскать" в этом плане? и какой объём знаний должен быть, что бы брать в работу какие то не очень сложные ТЗ.
@Aleksanbr_77, php в объёме мануала на php.net, JavaScript в объёме мануала learn.javascript.ru, HTML и CSS на приличном уровне (обычно на мелких заказах ты сам себе и фронт и бэкенд разработчик), MySQL - хотя бы наиболее часто используемые запросы (досконально, честно говоря, я сам не знаю, и пока не попадалось задач, где бы это сильно помешало). Потом, надо освоить одну-две из самых популярных CMS (WordPress, ModX, Joomla, Drupal), один-два популярных фреймворка (рекомендую Yii2 или Laravel). Но это уже можно в процессе работы. --- Добавлено --- WordPress, кстати, хорош в плане начала фриланс-карьеры. Я начинал с плагинов для WordPress
Ну тут фриланс-заказов не так много. А объявы о работе в основном для высокого уровня. Но в интернете огромное количество фриланс-бирж, выбирай на вкус --- Добавлено --- http://www.itmathrepetitor.ru/zadachi-po-php-rabota-s-bazojj-dannykh-mysql/ - вот тебе задачи для тренировок
Лерн хорош для обучения, а вот именно в качестве документации я бы посоветовал документацию от Мозиллы. Она очень хороша и исчерпывающа. Если чего-то нет на лерне или где еще, это есть на MDN.
Доброго времени суток! Наконец дошел до этого задания. Вчера с утра начал и по чуть-чуть делал в перерывах. Взял за основу для модуля регистрации/авторизации каркас из мануала в сети и доработал его до данной задачи. Комментарии специально не читал, чтобы не сознать у себя шаблон, а написать именно самому. Там есть ключ защиты, так и не понял зачем он, но решил оставить. Хотел поначалу все сделать в объектно-ориентированным стиле, ну в ООП я пока не силен, поэтому так и оставил процедурный, может сейчас переделаю в ООП, но я пока не понимаю что именно тут будут объекты, в это и уперся. Создавать объект, где есть только одна функция не вижу смысла, поправьте, если я ошибаюсь. Возникли трудности с датами, по началу хотел использовать date(), но потом все таки решил воспользоваться объектом. Не могли бы прокомментировать, есть ли тут уязвимости, может где-то есть грубые ошибки, чтобы в последующим их избежать. По некоторым пунктам я немного отошел от задания, например 5, после регистрации надо авторизоваться, после этого появиться 2 кнопки +1 и выход, на +1 подгружается скрипт счетчика, если надо четко как в задании, то могу переделать. Рука уже потихоньку набивается. Спасибо за практику!
@AnonimS, выложи на github, и подними на бесплатном хостинге, как здесь уже принято. Качать не охота.
В том, чтоб в гете передавать номер ошибки и реагировать на него при отрисовке страницы. Тоже практикуется многими, включая гуглы, мэловарни, фейсбуки и тд. @Aleksanbr_77 и @AnonimS а с вами уже вечером тогда, после работы погляжу, что да как.
Хорошо, вот выложил. Только там на бесплатном хостинге бывает вылетает 500-я ошибка, но обновляю и все хорошо, на локальном сервере все летает. https://github.com/AnonimDev/test http://testphp777.hostei.com
@AnonimS, вот этот бред нафига. Ещё и в такой последовательности: PHP: $data = htmlspecialchars($data, ENT_QUOTES); // Преобразовать спец. символы в html-сущности $data = htmlentities($data); // Ещё раз преобразовать, вдруг c первого раза не справились $data = strip_tags($data); // Убрать теги из строки без тегов (ведь мы преобразовали спец. символы в сущности) https://github.com/AnonimDev/test/blob/master/assets/php/bd.php#L10 - строки 10 и 13 можно в одну. Для пароля сейчас есть password_hash, password_verify. После header("Location: ") лучше всегда ставить die (или exit) https://github.com/AnonimDev/test/blob/master/assets/php/show.php#L16 - нахрена? --- Добавлено --- htmlspecialchars и htmlenities отличаются, конечно, слегка. Но смысла вызывать одну за другой вообще 0 --- Добавлено --- По вёрстке - требование о центре экрана даже близко не соблюдено.
Не совсем понимаю тогда как будет выглядеть функция security_input(), если правильно? Я просто раньше изучал это момент, про фильтрацию вводимых данных и остановился на этом, потом везде так пишу, теперь понимаю, что это не правильно, когда практика приходит. Про password_hash, password_verify я почитаю, спасибо и исправлю. Show.php тут не нужен, это остаток от каркаса, подредактирую. По верстке не дочитал, извиняюсь, поправки тоже внесу. Спасибо за комментарий.
Добрый день! Я недавно выполнял тестовое задание на вакансию стажера. Оно весьма похоже на приведенное Fell-x27 задание. В срок не уложился и туда не взяли. Планирую доделать. Буду признателен за критику по заданию. Ищу стажировку по php или питону. --- Базовая функциональность ----------------------------------------------------------------------------------------- 1) Сделать форму обратной связи. На странице должны быть показаны все оставленные отзывы, под ними форма: Имя, E-mail, текст сообщения, кнопки "Предварительный просмотр" и "Отправить". Отзывы можно сортировать по имени автора, e-mail и дате добавления (по умолчанию - по дате, последние наверху).Также должна быть валидация. 2) Предварительный просмотр должен работать без перезагрузки страницы. 3) Сделать вход для администратора (логин "admin", пароль "123"). Администратор должен иметь возможность редактировать отзыв. Измененные отзывы в общем списке выводятся с пометкой "изменен администратором". 4) К отзыву можно прикрепить картинку. Картинка должна быть не более 320х240 пикселей, при попытке залить изображение большего размера, картинка должна быть пропорционально уменьшена до заданных размеров. Допустимые форматы: JPG, GIF, PNG. 5) У администратора должна быть возможность модерирования. Т.е. на странице администратора показаны отзывы с миниатюрами картинок и их статусы (принят/отклонен). Отзыв становится видимым для всех только после принятия админом. Отклоненные отзывы остаются в базе, но не показываются обычным пользователям. Изменение картинки администратором не требуется. В приложении нужно с помощью чистого PHP реализовать модель MVC (PHP-фреймворки использовать нельзя). Верстка на bootstrap. Помните, что аккуратность - это один из главных критериев оценки тестового. Приложение нужно развернуть на любом бесплатном хостинге, чтобы можно было посмотреть его в действии. Скопируйте в корневую папку проекта наш онлайн-редактор dayside (https://github.com/boomyjee/dayside) Таким образом редактор будет доступен по url <ваш проект>/dayside/index.php ----------------------------------------------------------------------------------------------------------------------------------------- Я частично выполнил задание. Результат находится http://testtask111.zzz.com.ua Ссылка на Dayside http://testtask111.zzz.com.ua/index_2.php Что я сделал: - ввод задачи с соответствующими полями и запись в базу данных(картинки хранятся в папке uploads); - проверку информации (имя, имейла); - подключение к базе данных и сохранения данных в столбцы (id, name, email, task, picture); - админский вход (admin, 123), при входе дается ссылка на страницу с постраничным выводом заданий из базы данных; - пагинация Что не сделал: - отметку о выполнении задания; - возможность редактирования текста задания; - проверку размера картинки 320*240 заменил на 5мб; Спасибо за ответы!
Надо где-то тему закреплённую сделать в новичках. Всё просто: При работе с базой вызывается экранирующая функция для всех данных или используются подготовленные запросы. Больше ничего при добавлении в базу делать не нужно При выводе все пользовательские данные оборачиваются в htmlspecialchars или htmlentities - именно при выводе, в базе всё должно лежать в том виде, в котором это ввёл пользователь