Matas - developer Ответов: 1

Неопределенный индекс: darb_result


Undefined index: darb_result 



Мой PHP код :

<pre>
      if (isset($_POST['create_darb'])) {
       $darb_title        = escape($_POST['title']);
       $darb_user         = escape($_POST['darb_user']);
       $darb_status       = escape($_POST['darb_status']);

       $darb_content      = escape($_POST['darb_content']);
       $darb_date         = escape(date('d-m-y'));

       $darb_fileUpload      =  escape($_FILES['darb_fileUpload']['name']);
       $darb_fileUpload_temp = escape($_FILES['darb_fileUpload']['tmp_name']);

       $darb_work         =  escape($_POST['darb_work']);
       $darb_finish       =  escape($_POST['darb_finish']);
       $darb_result       =  escape($_POST['darb_result']);


       move_uploaded_file($darb_fileUpload_temp, "../uploads/$darb_fileUpload");

       $query = "INSERT INTO darb(darb_title, darb_user, darb_date, darb_content, darb_status, darb_fileUpload, darb_work, darb_finish, darb_result) ";

       $query .= "VALUES('{$darb_title}','{$darb_user}',now(),'{$darb_content}','{$darb_status}','{$darb_fileUpload}', '{$darb_work}','{$darb_finish}','{$darb_result}')";

       $create_darb_query = mysqli_query($connection, $query);

       confirmQuery($create_darb_query);

       $the_darb_id = mysqli_insert_id($connection);


       echo "<p class='bg-success'>Work Created. <a href='../admin/darb.php?d_id={$the_darb_id}'>View Work </a> or <a href='../admin/darb.php'>Edit More Work</a></p>";
   }


Мой HTML-код :

<pre>    
<table id="hours" class="table table-bordered table-striped">
      <thead>
          <tr>
            <th></th>
            <th></th>
            <th></th>
          </tr>
      </thead>
      <tbody>
        <tr>
          <td><input  type="time" class="form-control form-control-sm" id="start"  name="darb_work" value="0:00"></td>
          <td><input  type="time" class="form-control form-control-sm" id="end" name="darb_finish" value="0:00"></td>
          <td><span   class="form-control form-control-sm"  id="diff"  name="darb_result" value="0:00"></td>
        </tr>
      </tbody>
    </table>


Что я уже пробовал:

I have tried a lot of advice online but couldnt resolve this error.

Peter_in_2780

Это будет линия
$darb_result = побег($_POST, где['darb_result']);
это неудача. В ваших данных POST отсутствует вход с именем darb_result.

Matas - developer

Это моя таблица, где находится input darb_result

 
  <table id="hours" class="table table-bordered table-striped">
      <thead>
          <tr>
            <th></th>
            <th></th>
            <th></th>
          </tr>
      </thead>
      <tbody>
        <tr>
          <td><input  type="time" class="form-control form-control-sm" id="start"  name="darb_work" value="0:00"></td>
          <td><input  type="time" class="form-control form-control-sm" id="end" name="darb_finish" value="0:00"></td>
          <td><span   class="form-control form-control-sm"  id="diff"  name="darb_result" value="0:00"></td>
        </tr>
      </tbody>
    </table>

Peter_in_2780

Элемент, который вы назвали darb_result, не является "входным", поэтому он не отображается в ваших данных POST.

Richard Deeming

Ваш код уязвим для SQL-инъекция[^]. НИКОГДА используйте конкатенацию строк/интерполяцию для построения SQL-запроса. ВСЕГДА используйте параметризованный запрос.

PHP: SQL-инъекция - руководство пользователя[^]

1 Ответов

Рейтинг:
8

Patrice T

Цитата:
Неопределенный индекс: darb_result

Это означает, что индекс darb_result не существует в массиве $_POST.
[Обновление]
Цитата:
Это моя таблица, где находится input darb_result

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

Ваш код ведет себя не так, как вы ожидаете, или вы не понимаете, почему !

Существует почти универсальное решение: запускайте свой код на отладчике шаг за шагом, проверяйте переменные.
Отладчик здесь, чтобы показать вам, что делает ваш код, и ваша задача-сравнить с тем, что он должен делать.
В отладчике нет никакой магии, он не знает, что должен делать ваш код, он не находит ошибок, он просто помогает вам, показывая, что происходит. Когда код не делает того, что ожидается, вы близки к ошибке.
Чтобы увидеть, что делает ваш код: просто установите точку останова и посмотрите, как работает ваш код, отладчик позволит вам выполнять строки 1 на 1 и проверять переменные по мере их выполнения.

Отладчик - Википедия, свободная энциклопедия[^]

Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]
Базовая отладка с помощью Visual Studio 2010 - YouTube[^]

phpdbg | php отладчик[^]
Методы отладки для PHP-программистов[^]

Отладчик здесь только для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.


Matas - developer

Это моя таблица, где находится input darb_result

   <table id="hours" class="table table-bordered table-striped">      <thead>          <tr>            <th></th>            <th></th>            <th></th>          </tr>      </thead>      <tbody>        <tr>          <td><input  type="time" class="form-control form-control-sm" id="start"  name="darb_work" value="0:00"></td>          <td><input  type="time" class="form-control form-control-sm" id="end" name="darb_finish" value="0:00"></td>          <td><span   class="form-control form-control-sm"  id="diff"  name="darb_result" value="0:00"></td>        </tr>      </tbody>    </table>

Patrice T

Воспользуйся Улучшить вопрос чтобы обновить ваш вопрос.
Чтобы каждый мог обратить внимание на эту информацию.

Matas - developer

Спасибо