Member 14871013 Ответов: 3

Что же мне делать? Это эхо вставка данных но база данных пуста нет вставки данных


Notice: Undefined index: datepicker in C:\xampp\htdocs\psm1\studRequest1.php on line 5

Notice: Undefined index: message in C:\xampp\htdocs\psm1\studRequest1.php on line 6
Error : INSERT INTO booking (datepicker,message) VALUES ('','')


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

  1  This is my html file
  2  
  3   <form class="modal-content animate" action="studRequest1.php"> 
  4              <div class="imgcontainer"> 
  5                  <span onclick="document.getElementById('id01').style.display='none'" class="close" title="Close Modal">×</span> 
  6                  
  7              </div> 
  8    				
  9              <div class="container"> 
 10                  
 11  				<label for="datepicker">Date for Appointment</label><br>
 12  				<input type="text" id="datepicker" name="datepicker" width="30%" autocomplete="off" placeholder="Select Date Here" >
 13  				
 14  				<br>
 15                  <label for="message">Message</label> <br>
 16  				<textarea rows="4" cols="50" type="message" id="message" placeholder="" name="message" required> </textarea>
 17  				
 18  				<button type="submit" class="btn btn-primary" name="submit" value="submit">Submit</button>
 19                    
 20              </div> 
 21    
 22              <div class="container" style="background-color:#f1f1f1"> 
 23                  <button type="button" onclick="document.getElementById('id01').style.display='none'" class="cancelbtn">Cancel</button> 
 24              </div> 
 25          </form> 


  1  <?php 
  2  
  3  session_start();
  4  	include ('connection.php');
  5  	$datepicker = $_POST['datepicker'];
  6  	$message = $_POST['message'];
  7  	
  8  	$sql="INSERT INTO booking (datepicker,message)
  9  	VALUES ('$datepicker','$message')";
 10  	
 11  
 12  							$resultInsert = mysqli_query($conn, $sql) or die(mysqli_error($sql));
 13  
 14  							if($resultInsert === TRUE)
 15  		{
 16  			echo"<script>alert('Data Insert');</script>";
 17     //          echo "<script>window.location.assign('studAppointment.php')</script>";
 18  		}
 19  		{
 20  					
 21  				echo "Error : ". $sql . "<br>" . $conn -> error;
 22  					}
 23  
 24  	
 25  ?>

Richard MacCutchan

Посмотрите на сообщения об ошибках, у вас есть две переменные, которые не определены. Я вижу $сообщение, но не студно. Это и есть тот самый код, который вы запускаете?

Member 14871013

Мне очень жаль, что я уже обновил эту проблему.Проблема в том, что данные не вставляются даже тогда, когда я отправляю форму с надписью insert. Помогите мне пожалуйста, это для моего пятилетнего плана

Richard MacCutchan

Номера строк в сообщениях об ошибках не соответствуют опубликованному вами коду.

Member 14871013

должен ли я публиковать весь код целиком? он может включать в себя ненужную часть, потому что это, как предполагается, всплывающая форма

Richard MacCutchan

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

Member 14871013

Пожалуйста, взгляните, я уже обновляю

Richard MacCutchan

Я думаю, что разумно предположить, что ничто не публикуется в вашем PHP-коде. Итак, вам нужно использовать свой отладчик, чтобы выяснить, почему, поскольку мы не можем запустить код для вас.

Member 14871013

Хммм хорошо спасибо что попробовали

Richard MacCutchan

Смотрите мое предложение ниже

Member 14871013

О, МОЙ БОГ. Я не знаю, как это работает, но большое вам спасибо!!! Я все еще новичок в программировании.

Richard MacCutchan

Поскольку вы новичок я предлагаю вам пойти в Учебник по PHP[^], и работать через все учебники. Это гораздо лучший способ учиться, чем видео на Youtube

3 Ответов

Рейтинг:
19

Richard MacCutchan

У меня есть предложение. Ваше определение формы имеет следующую строку:

<form class="modal-content animate" action="studRequest1.php">

и согласно документации, метод отправки по умолчанию-GET, а не POST. Попробуйте изменить свой PHP следующим образом:
$datepicker = $_GET['datepicker'];
$message = $_GET['message'];


Рейтинг:
1

Luc Pattyn

Я вижу очень разный синтаксис в этих двух строках:

$datepicker = $_POST['datepicker'];
$message = $_POST($message);


:)


Member 14871013

это не сработало :'(

Обратите внимание: неопределенный индекс: datepicker in C:\xampp\htdocs\psm1\studRequest1.php на линии 9

Фатальная ошибка: Неперехваченная ошибка: имя функции должно быть строкой в C:\xampp\htdocs\psm1\studRequest1.php:10 трассировка стека: #0 {main} брошен C:\xampp\htdocs\psm1\studRequest1.php на линии 10

Luc Pattyn

Итак, вы что-то изменили, не сказали нам, что именно, и получили новую ошибку.
Может быть, вы "исправили" то, что было правильно?
Вы вообще знаете PHP?
Будьте точны, покажите код (с номерами строк; ваш оригинальный пост был отредактирован, чтобы вы могли видеть, как это делается) и расскажите нам о его поведении.

Member 14871013

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

Рейтинг:
0

Patrice T

$sql="INSERT INTO booking (datepicker,message) VALUES ('$datepicker','$message')";

Не решение вашего вопроса, а еще одна проблема, которая у вас есть.
Никогда не создавайте SQL-запрос путем объединения строк. Рано или поздно вы сделаете это с помощью пользовательских вводов, и это откроет дверь к уязвимости под названием "SQL-инъекция", она опасна для вашей базы данных и подвержена ошибкам.
Одна кавычка в имени - и ваша программа выйдет из строя. Если пользователь вводит имя, например "Брайан О'Коннер", может привести к сбою вашего приложения, это уязвимость SQL-инъекции, и сбой-это наименьшая из проблем, вредоносный пользовательский ввод, и он продвигается к командам SQL со всеми учетными данными.
SQL-инъекция - Википедия[^]
SQL-инъекция[^]
Атаки SQL-инъекций на примере[^]
PHP: SQL-инъекция - руководство пользователя[^]
Как я могу объяснить SQL-инъекцию без технического жаргона? - Обмен Стеками Информационной Безопасности[^]