Ошибка PHP: Примечание: неопределенный индекс: - PullRequest
10 голосов
/ 17 декабря 2010

Я работаю над корзиной покупок на PHP, и мне кажется, что я получаю эту ошибку "Замечание: неопределенный индекс:" во всех видах мест.Ошибка относится к похожему биту кодирования в разных местах.Например, у меня есть фрагмент кода, который вычисляет цену пакета с месяцами, на которые пользователь решает подписаться.У меня есть следующие переменные, к которым относятся ошибки:

    $month = $_POST['month'];
    $op = $_POST['op'];

Переменная $ month - это число, которое пользователь вводит в форму, а переменная $ op - это разные пакеты, значения которых хранятся в vriable, которыйпользователь выбирает из переключателей в форме.

Я надеюсь, что это как-то понятно.

Спасибо

РЕДАКТИРОВАТЬ: Извините, забыл упомянуть, что они уходяткогда пользователь отправляет данные.Но когда они впервые попадают на страницу, отображается эта ошибка.Как я могу избавиться от него, чтобы он не отображался?

-

Это код:

<?php
    $pack_1 = 3;
    $pack_2 = 6;
    $pack_3 = 9;
    $pack_4 = 12;
    $month = $_POST['month'];
    $op = $_POST['op'];
    $action = $_GET['action'];

    if ( $op == "Adopter" ) {
       $answer = $pack_1 * $month;
    }

    if ( $op == "Defender" ) {
      $answer = $pack_2 * $month;
    }

    if ( $op == "Protector" ) {
      $answer = $pack_3 * $month;
    }

    if ( $op == "Guardian" ) {
      $answer = $pack_4 * $month;
    }

    switch($action) {   
        case "adds":
            $_SESSION['cart'][$answer][$op];
            break;
    }
?>  

Ответы [ 15 ]

0 голосов
/ 20 января 2015

Убедитесь, что вы использовали method = "post" в форме, из которой вы отправляете данные.

0 голосов
/ 16 февраля 2012

очевидно, что переменная (и) GET и / или POST не существует.просто проверьте, если "isset".(псевдокод):

if(isset($_GET['action'];)) {$action = $_GET['action'];} else { RECOVER FROM ERROR CODE }
0 голосов
/ 17 декабря 2010

это просто означает, что массив, в данном случае $ _POST, не имеет элемента с именем undefined в вашей ошибке. PHP выдает предупреждение вместо предупреждения о фатальной ошибке.

Вы можете регистрировать меньше событий, редактируя php.ini, или обрабатывать их, сначала проверив, действительно ли элементы уже инициализированы с помощью isset ()

0 голосов
/ 17 декабря 2010

неопределенный индекс означает, что ключ массива не установлен, выполните var_dump($_POST);die(); перед строкой, которая выдает ошибку, и увидите, что вы пытаетесь получить ключ массива, который не существует.

0 голосов
/ 17 декабря 2010

Я думаю, что не может быть элементов формы с именем 'month' или 'op'.Можете ли вы проверить, действительно ли источник HTML (страницы, которая приводит к ошибке при отправке) действительно имеет элементы html по названию выше

...