Лэндинг-пэйдж
Индивидуальный концепт
от 3 дней
от 40 000 р.
Создание сайта
Сайт-визитка     за 35 000 р.
Корпоративный сайт     за 70 000 р.
Интернет-магазин     за 100 000 р.
Раскрутка сайта
Аудит сайта     от 10 000 р.
Раскрутка сайта     от 15 000 р.
Аренда сайта     от 10 000 р.
495 505 19 05
Студия «Нулл»(495) 505-19-05, www.null.ru

Тестовое задание программисту-верстальщику

1. Форма для подписки на новости с защитой от отправки незаполненного поля:

<form action="subscribe.php">
Введите email: <input type="text" name="email">
<input type="submit" value="Подписаться"
onclick="if(this.form.email.value='') {
alert('Заполните поле');return true}">
</form>

Если не заполнить текстовое поле и нажать кнопку «Подписаться», то выскочит окошко с предупреждением, а форма не будет отправлена. Но если я нажму вместо кнопки клавишу Enter, то форма отправится. Как можно исправить эту ситуацию?

2. На сайте с фотогалереей нужно создавать маленькие превьюшки.

Вот код, создающий из JPG-картинки превьюшку размером 100x100 точек:

function create_thumbnail($photo, $thumb){
  $im = imagecreatefromjpeg($photo);
  $im2 = imagecreate(100, 100);
  imagecopyresized(
    $im2, $im, 0, 0, 0, 0,
    100, 100, imagesx($im), imagesy($im)
  );
  imagejpeg($im2, $thumb, 80);
}

Однако полевые испытания убеждают нас, что качество получаемой превьюшки довольно низко (можете сами попробовать). Как можно улучшить функцию?

После исправления у нас могли возникнуть проблемы с быстродействием. Какие решения вы можете предложить?

3. В базе данных MySQL нужно хранить новости.

Сайт многоязычный, поэтому заголовок и текст каждой новости пишется на нескольких языках. Числовой же идентификатор и дата – одни и те же для всех переводов. Напишите структуру базы данных и запрос, выдающий список 10 последних новостей на языке с ID=1.

4. Авторизация и безопасность.

Скрипту авторизации из формы с полями login и password приходят авторизационные данные. В MySQL в таблице users хранятся числовые id, логины и пароли пользователей. После удачного входа в сессию записывается переменная autorized, истинность которой потом проверяют другие скрипты.

$login = $_REQUEST['login'];
$password = $_REQUEST['password'];
$res = mysql_query('SELECT id FROM users
  WHERE login="'.$login.'" AND password="'.$password.'"');
list($user_id) = mysql_fetch_array($res);
session_start();
$_SESSION['authorized'] = isset($user_id);

Есть ли в приведенном скрипте и в самом способе авторизации какие-либо проблемы с безопасностью?

5. На сайте надо организовать полнотекстовый поиск по страницам.

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

Rambler's Top100
© 1999−2019 Студия «Нулл»
Использование материалов сайта возможно только при наличии гиперссылки на www.null.ru