За последние 24 часа нас посетили 172972 программиста и 3065 роботов. Сейчас ищут 1747 программистов ...

Выполняет как надо, но лезет ошибка

Тема в разделе "PHP для новичков", создана пользователем minux, 30 июн 2012.

  1. minux

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

    С нами с:
    14 май 2012
    Сообщения:
    89
    Симпатии:
    1
    Кнопочка сабмит
    <inрut type="submit" name="submit" value="ok">

    #потом проверяю, нажато ли на сабмит
    if($_POST['submit'])
    {
    ну а тут уже скипт;
    }

    Проверяется наличие элемента submit в массиве POST

    Без нажатия скрипт не выполняется, а ждёт, пока я заполню для него форму и нажму кнопку "сабмит".
    Но лезет ошибка Notice: Undefined index: submit

    Жить не мешает, но хотелось бы выяснить, что криво.
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Суть: нотис, это не страшно. Это даже не эррор.
    Криво: обращение к $_POST['submit'], когда в $_POST нет этого самого вашего 'submit'.
    Лекарство: не обращаться к $_POST['submit'] в if'e, а проверить на существование функцией, проверяющей это дело: if (isset($_POST['submit'])) {
     
  3. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    А я обычно по другим полям формы проверяю, введено ли что-нибудь :) Ведь, не нажав сабмит, форму не отправить (не имею ввиду AJAX)
     
  4. minux

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

    С нами с:
    14 май 2012
    Сообщения:
    89
    Симпатии:
    1
    Помогло лекарство :)
    Спасибо док :)))
     
  5. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Ну да. Просто пост собака такая есть всегда. Он видите ли глобальный и такой очень важный массив. Обычно проверяют какое обязательное поле, или смотрят тип запроса в массиве $_SERVER.

    Я правда плюнул на это и пользуюсь самописной функией которая проверяет сначала пост потом гет, а если не наша вовращает фалс. Но для чекбоксов прокакит только иссет или empty()