За последние 24 часа нас посетили 110094 программиста и 5860 роботов. Сейчас ищут 3053 программиста ...

Моя первая фигня на php.=)

Тема в разделе "PHP для новичков", создана пользователем VampiR_WAR, 23 авг 2009.

  1. iliavlad

    iliavlad Активный пользователь

    С нами с:
    24 янв 2009
    Сообщения:
    1.689
    Симпатии:
    4
    хорошо, что вы не мед.программы разрабатываете)

    ваш код не будет работать при отключенной short_open_tag.
    начинать перебор массива с индекса 1 для непаскалиста - плохо, вам уже писали.

    тогда пользуйся)
     
  2. lanc777

    lanc777 Активный пользователь

    С нами с:
    19 авг 2009
    Сообщения:
    59
    Симпатии:
    0
    речь шла не о переборе с 0 а то как я задал 0 когда его можно было пропусть задача стояла сделать так же но циклом. зачем перебирать с 0 когда надо с первого, что за придирки как я его задал мне эпл обьяснил но чтоб еще не перебирать с 1го это полный абсурд .
     
  3. iliavlad

    iliavlad Активный пользователь

    С нами с:
    24 янв 2009
    Сообщения:
    1.689
    Симпатии:
    4
    это всего лишь проблемы того, у кого ваш код не будет работать всего лишь потому, что изменена одна настройка по умолчанию (как необходимость Register Globals ON у phpshop).

    да можно и с 1го, и с 10го) просто взгляд цепляется и думаешь, чего автор не с 0 перебирает, куда первый элемент девает.
     
  4. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.432
    Симпатии:
    0
    PHP:
    1.  
    2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    3. <html xmlns="http://www.w3.org/1999/xhtml">
    4. <head>
    5.     <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
    6.     <title>Хрень на палке</title>
    7. </head>
    8. <body>
    9.  
    10. <?php
    11. if (!isset($_POST["grab_korovan"])) {
    12. //если форма не отправлена
    13. ?>
    14. <form method="post" action="">
    15.     <p><input type="text" name="cow" size="1"> Корова </p>
    16.     <p><input type="text" name="tiger" size="1"> Тигр </p>
    17.     <p><input type="text" name="sheep" size="1"> Овца </p>
    18.     <p><input type="text" name="horse" size="1"> Лошадь </p>
    19.     <p><input type="text" name="pig" size="1"> Свинья </p>
    20.     <p><input type="submit" name="grab_korovan" value="Результат"></p>
    21. </form>
    22. <?php
    23. }
    24. else {
    25. //Форма отправлена
    26.  
    27.     unset($_POST["grab_korovan"]); //Удаляем данные кнопки  submit
    28.  
    29.  
    30.     $count = sizeof(array_unique($_POST)); //Выбираем уникальные значения из массива (если для всех форм были введены разные данные, то массив будет содержать 5 элементов. в противном случае - меньше
    31.  
    32.     if ($count < 5)
    33.         die('Необходимо вводить разные числа для каждого поля.<br>
    34.     Числа только 1,2,3,4,5.');
    35.  
    36.  
    37.  
    38.     /* Задаем оснвные переменные */
    39.     $data = array (
    40.     "cow" => "карьера",
    41.     "tiger" => "честь и достоинство",
    42.     "sheep" => "любовь и секс",
    43.     "horse" => "семья",
    44.     "pig" => "деньги"
    45.     );
    46.  
    47.  
    48.     if (array_keys($_POST) != array_keys($data))
    49.         die('Ошибка данных!'); //Если лишние данные пришли (кто-то добавил еще полей, но они проходят через предыдущие проверки)
    50.    
    51.     $i = 1;
    52.     foreach ($_POST as $key => $value) {
    53.        
    54.         print ((int)$value == $value and $value > 0 and $value < 6) ? "На ".$value." месте в жизни для Вас ".$data[$key]." <br><br> " : "Вы не верно ввели число в ".$i." поле<br><br>";
    55.         $i++;
    56.     }
    57. }
    58. ?>
    59. </body>
    60. </html>
    Скрипт не оптимальный по сравнению с твоим (здесь 1 цикл и 3 перебора массивов функциями PHP).
    У тебя данные берутся те, которые нужны, у меня те, которые приходят. Мой скрипт проще расширять - достаточно добавить новую форму и описание зверя в $data (а на сайте это должно делаться через админку). В твоем срипте нужно править очень много.
    У меня есть проверки на приходящие данные и их количество - должно приходить столько, сколько нам нужно и что мы ожидаем.
     
  5. illiaerne

    illiaerne Активный пользователь

    С нами с:
    22 июл 2009
    Сообщения:
    44
    Симпатии:
    0
    Адрес:
    подстолица
  6. alexeurodnepr

    alexeurodnepr Активный пользователь

    С нами с:
    18 июл 2008
    Сообщения:
    244
    Симпатии:
    0