Как передать несколько PHP получить параметры - PullRequest
0 голосов
/ 01 апреля 2020

В этом коде я пытаюсь взять пользователя, который хочет изменить статусы событий, из выпадающего списка. Раскрывающийся список состоит из трех параметров:

«В контакте», «Проверено», «Завершено»

Я хочу, чтобы пользователь нажал «Отправить статус» и принял их к изменению. php, как указано в атрибуте действия. Изменение. php должно иметь 2 параметра get: идентификатор столбца базы данных события, которое они хотят изменить, и новый статус, на который они хотят изменить его. Например, это должно выглядеть так: http://localhost/schedule/change.php?id=60? Status = проверено

Но вот что я получаю прямо сейчас:

http://localhost/schedule/change.php?status=verified&submitStatus=Change+status

Кроме того, в раскрывающемся списке отображается ошибка: Примечание: неопределенный индекс: состояние в строке 1

 // Assume this is line 1
 echo "<form method='get' action='change.php?id=".urlencode($e['id'])."?url=".urlencode($_GET['status'])."'><select name='status' id='status'>'";

    if ($e['status'] == "contacted") {

      echo "<option value='contacted' selected>Contacted</option>";

      echo "<option value='verified'>Verified Appointment</option>";

      echo "<option value='completed'>Job Completed</option>";

      $counter++;

    } else if ($e['status'] == "verified") {

      echo "<option value='verified' selected>Verified Appointment</option>";

      echo "<option value='contacted'>Contacted</option>";

      echo "<option value='completed'>Job Completed</option>";

      $counter++;

    } else if ($e['status'] == "completed") {

      echo "<option value='completed' selected>Job Completed</option>";

      echo "<option value='contacted'>Contacted</option>";

      echo "<option value='verified' selected>Verified Appointment</option>";

      $counter++;

    } else {

      echo "No event status found!";

    }

    if ($counter == 1) {

    echo "<input type='submit' name='submitStatus' value='Change status'></form></select>
    </td>"; 

    echo "</tr>";

  }

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

1 Ответ

0 голосов
/ 01 апреля 2020

Ошибка в том, что вы используете ? для разделения параметров вместо & или &&. Итак, ваш код должен быть:

 echo "<form method='get' action='change.php?id=".urlencode($e['id'])."&url=".urlencode($_GET['status'])."'><select name='status' id='status'>'";

Также, как сказал Фил, попробуйте использовать POST, если вы не хотите изменять значения данных с URL. Например, если вы измените, id из url, change. php изменит изменения на основе параметра id из url. Мне кажется, что вы должны использовать POST как change для меня означает совершенно безопасную вещь, а не то, что нужно сделать через GET.

Очевидно, это не значит, что вы не должны использовать GET. Эти методы одинаково важны, но не настолько безопасны в том смысле, что данные могут быть легко изменены из URL. GET может быть использовано в процессе поиска, например, когда вам не нужно переходить на базу данных, вам просто нужно извлечь.

Я мог бы отказаться от топи c, но я думаю, что для вас было очень важно знать, какой метод вы должны использовать. Спасибо !!!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...