За последние 24 часа нас посетили 35484 программиста и 1818 роботов. Сейчас ищут 953 программиста ...

как убрать Notice: Undefined index:?

Тема в разделе "PHP для новичков", создана пользователем alexanderkarpov, 4 ноя 2010.

  1. alexanderkarpov

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

    С нами с:
    23 дек 2009
    Сообщения:
    35
    Симпатии:
    0
    Имеется следующий код:

    Код (Text):
    1. <?php
    2. if(isset($_POST['posted'])) {
    3. $price = 500;
    4. $starsmodifier = 1;
    5. $city = 1;
    6. $destination = $_POST['destination'];
    7. $solution = $_POST['destination'] . $_POST['star'];
    8. switch ($solution) {
    9. case "Barcelonathree":
    10. $starsmodifier = 2;
    11. $city = 2;
    12. $price = $price * $city;
    13. echo "<h3>Недельная стоимость проживания в $destination - $price</h3>";
    14. break;
    15. case "Barcelonafour":
    16. $starsmodifier = 2;
    17. $city = 3.5;
    18. $price = $price * $city;
    19. echo "<h3>Недельная стоимость проживания в $destination - $price</h3>";
    20. break;
    21. case "Viennathree":
    22. $starsmodifier = 2;
    23. $city = 2;
    24. $price = $price * $city;
    25. echo "<h3>Недельная стоимость проживания в $destination - $price</h3>";
    26. break;
    27. case "Viennafour":
    28. $starsmodifier = 2;
    29. $city = 2;
    30. $price = $price * $city;
    31. echo "<h3>Недельная стоимость проживания в $destination - $price</h3>";
    32. break;
    33. case "Praguethree":
    34. $starsmodifier = 2;
    35. $city = 2;
    36. $price = $price * $city;
    37. echo "<h3>Недельная стоимость проживания в $destination - $price</h3>";
    38. break;
    39. case "Praguefour":
    40. $starsmodifier = 2;
    41. $city = 2;
    42. $price = $price * $city;
    43. echo "<h3>Недельная стоимость проживания в $destination - $price</h3>";
    44. break;
    45. default:
    46. echo "Выбери еще раз";
    47. break;
    48. }
    49.  
    50. }
    51.  
    52. ?>
    53. <h4>Где Вы хотели бы провести отпуск?</h4>
    54. <form action="holidays.php" method="post">
    55. <input type="hidden" name="posted" value="true" />
    56. <input type="radio" value="Prague" name="destination" /> Прага<br />
    57. <input type="radio" value="Barcelona" name="destination" /> Барселона<br />
    58. <input type="radio" value="Vienna" name="destination" /> Вена<br /><br />
    59. <h4>В госнтиннице какого класса вы хотели бы остановиться?</h4>
    60. <input type="radio" value="three" name="star" />Три звездочки<br />
    61. <input type="radio" value="four" name="star" />Четыре звездочки<br /><br />
    62.  
    63. <input type="submit" value="Заказать" />
    64.  
    65. </form>
    66. </body>
    67. </html>

    Все работает. Но если не ставлю никакие значения на странице, выходит:

    Notice: Undefined index: destination in C:\work\site.ru\www\phpnew\c4\holidays.php on line 15 Notice: Undefined index: destination in C:\work\site.ru\www\phpnew\c4\holidays.php on line 16 Notice: Undefined index: star in C:\work\site.ru\www\phpnew\c4\holidays.php on line 16 Выбери еще раз

    Как это можно убрать. Знаю, что можно поменять настройки php.ini, но хотелось бы найти другое решение. Спасибо
     
  2. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Добавить проверку существования этого индекса
     
  3. alexanderkarpov

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

    С нами с:
    23 дек 2009
    Сообщения:
    35
    Симпатии:
    0
    пробовал)
     
  4. alexanderkarpov

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

    С нами с:
    23 дек 2009
    Сообщения:
    35
    Симпатии:
    0
    $destination = isset($_POST['destination']); пробовал, но все значения равны одному
     
  5. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    не правильно пробовал!
     
  6. alexanderkarpov

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

    С нами с:
    23 дек 2009
    Сообщения:
    35
    Симпатии:
    0
    а как правильно?
     
  7. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    PHP:
    1. if(isset($_POST['posted']) and isset($_POST['destination'])) {
     
  8. alexanderkarpov

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

    С нами с:
    23 дек 2009
    Сообщения:
    35
    Симпатии:
    0
    Попробовал! Notice: Undefined index: больше не выходит

    но при это и не выходит то сообщение которые выходит в случае если ничего небыло нажато т.е. Выбери еще раз
     
  9. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Код (Text):
    1. default:
    2. echo "Выбери еще раз";
    3. break;
    4. }
    заменить на
    Код (Text):
    1. } else {
    2.       echo "Выбери еще раз";
    3. }
    и все-таки прочитать книгу по основам php =)
     
  10. alexanderkarpov

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

    С нами с:
    23 дек 2009
    Сообщения:
    35
    Симпатии:
    0
    Спасибо VS. да, книгу я читаю в данный момент по PHP. Остается небольшая загвоздка т.е. на странице выходит сразу "Выбери еще раз", но разберусть уже сам. Спасибо.