steph99999 Ответов: 2

Обратите внимание: неопределенная переменная


Я не знаю, как изменить код для определения переменной в php
я пытаюсь сделать форму html для вставки данных в базу данных mysql.

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

<?php
$server = "localhost";
$username ="root";
$password = "";
$dbname = "booking";

$conn = mysqli_connect($server, $username, $password, $dbname);

if(isset($_POST['submit'])){
	 if(!empty($_POST['usertype']) && !empty($_POST['userid']) && !empty($_POST['usertype']) && !empty($_POST['bookingdate']) && !empty($_POST['startingtime']) && !empty($_POST['facility']) && !empty($_POST['payment']) )
$usertype=$_POST['usertype'];
$userid=$_POST['userid'];
$bookingdate=$_POST['bookingdate'];
$startingtime=$_POST['startingtime'];
$facility=$_POST['facility'];
$payment=$_POST['payment'];
}
$sql = "INSERT INTO booking(B_UserType,B_UserID, B_Date,B_StartTime,B_Facility ,B_PaymentType) VALUES ('$usertype','$userid','$bookingdate','$startingtime','$facility','$payment')";
  $run = mysqli_query($conn, $sql ) or die (mysqli_error());
if($run)
{
	echo "Inserted";
}else
{
	echo "Not inserted";
}
?>

Andre Oosthuizen

Какая переменная не определена? Покажите нам свой html-код, чтобы увидеть, что вы публикуете.

steph99999



<title>вставить данные






>
>
>
>
Тип пользователя идентификатор пользователя дата бронирования время начала действия
Прокат одежды для плавания
Раздевалка и душевые кабины
Личный шкафчик
Сауна и паровая баня


вид платежа
пожалуйста выберите
Наличные
Дебет
кредитная карта










>
>
>
>
Тип пользователя идентификатор пользователя дата бронирования время начала действия
Прокат одежды для плавания
Раздевалка и душевые кабины
Личный шкафчик
Сауна и паровая баня


вид платежа
пожалуйста выберите
Наличные
Дебет
кредитная карта

steph99999

вот html код



<title>вставить данные






>
>
>
>
Тип пользователя идентификатор пользователя дата бронирования время начала действия
Прокат одежды для плавания
Раздевалка и душевые кабины
Личный шкафчик
Сауна и паровая баня


вид платежа
пожалуйста выберите
Наличные
Дебет
кредитная карта



Richard MacCutchan

Вы еще ничего не объяснили который переменная не определена.

steph99999

все переменные

Richard MacCutchan

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

Richard Deeming

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

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

2 Ответов

Рейтинг:
1

Richard MacCutchan

Вам не хватает открытой и закрытой скобки для if заявление. Но что еще более важно вы создаете локальные переменные в if(isset, которые не видны в следующем коде. Так и должно быть:

if(isset($_POST['submit'])){
    if(!empty($_POST['usertype']) && !empty($_POST['userid']) && !empty($_POST['usertype']) && !empty($_POST['bookingdate']) && !empty($_POST['startingtime']) && !empty($_POST['facility']) && !empty($_POST['payment']) ) { // ***** open brace needed here 
        $usertype=$_POST['usertype'];
        $userid=$_POST['userid'];
        $bookingdate=$_POST['bookingdate'];
        $startingtime=$_POST['startingtime'];
        $facility=$_POST['facility'];
        $payment=$_POST['payment'];
    
        // NB these lines need to be inside the two if blocks
        $sql = "INSERT INTO booking(B_UserType,B_UserID, B_Date,B_StartTime,B_Facility ,B_PaymentType) VALUES ('$usertype','$userid','$bookingdate','$startingtime','$facility','$payment')";
        $run = mysqli_query($conn, $sql ) or die (mysqli_error());
        if($run)
        {
            echo "Inserted";
        }else
        {
            echo "Not inserted";
        }
    } // ***** close brace needed here 
} // end of 'isset' test


Рейтинг:
0

steph99999




<!DOCTYPE html>
<html>    
    <head>    
        <title>Insert Data</title>    
    </head>   

    <body>    
	<form name= "details" action = "details.php" method ="post">
        <table>

<tr>
<td>User Type </td>
<td><input type = "text" name = "usertype" value =""></td>>
</tr>

<tr>
<td>User ID </td>
<td><input type = "text" name = "userid" value =""></td>>
</tr>

<tr>
<td>Booking Date </td>
<td><input type = "text" name = "bookingdate" value =""></td>>
</tr>

<tr>
<td>Starting Time</td>
<td><input type = "text" name = "startingtime" value =""></td>>
</tr>

<tr>
<td>Facility</td>
<td><select multiple size="4" name ="facility">
          <option value="attire">Swimming attire rental</option>
          <option value="changing">Changing area and showers</option>
          <option value="locker">Personal locker</option>
          <option value="steam">Sauna and steam room</option>
          
</select>
</td>
</tr>

<tr>
<td>Payment Type</td>
<td><select name ="payment">
<option value = "">Please Select</option>
<option value = "cash">Cash</option>
<option value = "debit">Debit</option>
<option value = "credit">Credit Card</option>
</select>
</td>
<tr>
<td><input type = "submit" value="Submit"></td>
</tr>

</table>
</form>
</html>    


Andre Oosthuizen

хорошо, какая переменная не определена?