За последние 24 часа нас посетили 17324 программиста и 1720 роботов. Сейчас ищут 983 программиста ...

Задание по PHP

Тема в разделе "Прочие вопросы по PHP", создана пользователем rash012, 9 апр 2015.

  1. rash012

    rash012 Новичок

    С нами с:
    9 апр 2015
    Сообщения:
    9
    Симпатии:
    0
    Дали задание. Заметны ли косяки?
    как можно иначе реализовать подсветку невалидных данных?
    я так понимаю когда форма отправилась и пришла таблица, при обновлении страницы должна приходить изначальная форма, а она не приходит. как сделать полный сброс при обновлении?

    Задание по PHP 2

    Реализовать скрипт, реализующий ввод и проверку (валидацию) следующих данных:

    1) Фамилия, имя — текстовое поле — только русские буквы, пробелы — обязательное поле

    2) Возраст — строго целое положительное число

    3) Адрес электронной почты (строго по шаблону bbbb...bb@bb...bb.bb, где b-латинские буквы) - обязательное поле

    4) Пол — выбор из списка Мужской, Женский

    5) «Я курю» - чекбокс (галочка)

    При допущенных ошибках система должна сообщать, какие ошибки допустил пользователь, и предлагать их исправить, показывая ту же форму с введенными данными. Необходимо подсвечивать поля с ошибками красной рамочкой.

    В случае удачного ввода выводить в браузер введенные данные в виде таблицы и кнопку "Ввести"

    файл validate.php
    Код (PHP):
    1. <html>
    2. <style>
    3.   .red{
    4.     border-color: #ffa5ad;
    5.   }
    6.   p{
    7.     color:red;
    8.   }
    9. </style>
    10. <body>
    11.  
    12. <?php
    13. if(isset($_POST['submit'])) {
    14.   $name = $_POST['name'];
    15.   $age = $_POST['age'];
    16.   $mail = $_POST['mail'];
    17.   $gender = $_POST['gender'];
    18.   $smoking = (empty($_POST['smoking']))?"нет":"да";
    19.   $is_valid = true;
    20.  
    21.  
    22.   if (!preg_match('/[А-я]+\s[А-я]+$/msix', $name)) {
    23.     $is_valid = false;
    24.     $name_red = "red";
    25.     echo '<p>Поле "фамилия,имя" должно содержать русские буквы и пробел</p>';
    26.   }
    27.   if ($age<=0 && !empty($age)){
    28.     $is_valid = false;
    29.     $age_red="red";
    30.     echo '<p>Поле возраст должно содержать положительное число</p>';
    31.   }
    32.   if(!preg_match('/^[a-zA-Z]+@[a-zA-Z]+\.[a-zA-Z]+$/', $mail)){
    33.     $is_valid = false;
    34.     $mail_red="red";
    35.     echo '<p>Электронная почта введена неверно</p>';
    36.   }
    37.  
    38. }
    39. ?>
    40. <? if(!$is_valid){?>
    41.   <form method="post" action="validation.php">
    42.     <label>Фамилия, имя
    43.       <input type="text" name="name" id="name" value="<?=$name?>" class="<?=$name_red?>">
    44.     </label>
    45.     <br>
    46.     <label>Возраст
    47.       <input type="text" name="age" id="age" value="<?=$age?>" class="<?=$age_red?>">
    48.     </label>
    49.     <br>
    50.     <label>Адрес электронной почты
    51.       <input type="text" name="mail" id="mail" value="<?=$mail?>" class="<?=$mail_red?>">
    52.     </label>
    53.     <br>
    54.     <label>Пол
    55.       <select name="gender" id="gender" value="<?=$gender?>">
    56.         <option>Мужской</option>
    57.         <option>Женский</option>
    58.       </select>
    59.     </label>
    60.     <br>
    61.     <label>Я курю
    62.       <input type="checkbox" name="smoking" id="smoking" <?=(empty($_POST['smoking']))?"":"checked"?>>
    63.     </label>
    64.     <br>
    65.     <input type="submit" value="оправить" id="submit" name="submit">
    66.   </form>
    67. <? } ?>
    68.  
    69. <?if($is_valid){?>
    70.  
    71.   <table border="1">
    72.     <tr>
    73.       <td>Фамилия, имя</td>
    74.       <td><?= $name ?></td>
    75.     </tr>
    76.     <tr>
    77.       <td>Возраст</td>
    78.       <td><?= $age ?></td>
    79.     </tr>
    80.     <tr>
    81.       <td>Адрес электронной почты</td>
    82.       <td><?= $mail ?></td>
    83.     </tr>
    84.     <tr>
    85.       <td>Пол</td>
    86.       <td><?= $gender ?></td>
    87.     </tr>
    88.     <tr>
    89.       <td>Я курю</td>
    90.       <td><?= $smoking ?></td>
    91.     </tr>
    92.   </table>
    93.    <br>
    94.    <input type="submit" value="ввести">
    95.  
    96. <? } ?>
    97. </body>
    98. </html>
     
  2. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Ты сам вообще не планируешь ничего делать?
     
  3. rash012

    rash012 Новичок

    С нами с:
    9 апр 2015
    Сообщения:
    9
    Симпатии:
    0
    так ведь задание полностью выполнено. хотел узнать лишь не слишком ли криво и пару вопросов. если нет желания отвечать, то я не обижусь. если кто-нибудь поможет, то спасибо.
     
  4. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    Кстати так стало интересно, когда при устройстве на работу дают задание, его на дом дают? или надо на месте делать.
    Меня вот что интересует, если на месте, можно ли пользоваться при выполнении интернетом и т.д.
     
  5. rash012

    rash012 Новичок

    С нами с:
    9 апр 2015
    Сообщения:
    9
    Симпатии:
    0
    мне на дом дали)
     
  6. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Снова безумная кодоразметкокаша. Интереса ради, на какую должность и ЗП соискуешь?)
     
  7. rash012

    rash012 Новичок

    С нами с:
    9 апр 2015
    Сообщения:
    9
    Симпатии:
    0
    php-junior. конкретных цифр не называли, мне каж в районе 10к. я с пхп знаком 1 неделю. да каша, но все таки хотелось бы услышать что-нибудь конкретное. демотивации сейчас мне вряд ли помогут.
     
  8. mr.akv

    mr.akv Активный пользователь

    С нами с:
    31 мар 2015
    Сообщения:
    1.604
    Симпатии:
    206
    1 неделя и уже на работу. Кажется, я что-то делаю не так.
     
  9. rash012

    rash012 Новичок

    С нами с:
    9 апр 2015
    Сообщения:
    9
    Симпатии:
    0
    а че тянуть то)
     
  10. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    хех, а я то думал, что php-junior это примерно год нормальной практики, потом уже если мозг позволяет, то middle, а сеньор это когда тебя окружающие мидлы так обзовут )
     
  11. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Даже не знаю, подучиться, например.
    Объясню доходчивей - ты даже с тестзаданием не можешь справиться пока. Как-то так...
     
  12. rash012

    rash012 Новичок

    С нами с:
    9 апр 2015
    Сообщения:
    9
    Симпатии:
    0
    ну если бы мне не нужна была сейчас работа, то, может быть, я бы и не стремился сейчас на нее устроиться.
    все-таки, если код плох, то я бы хотел услышать, что нужно в нем исправить, а не то, что код плох.