Я вычисляю время и сохраняю его в базе данных для дальнейшего использования. Это для формы резервирования, которую я хотел бы закодировать, и я сделал простую форму, подобную ей, для тестирования, если бы промежуток дней хранился в базе данных, но все, что я получаю, это ошибка.Ловкая фатальная ошибка: объект класса DateInterval не может быть преобразован в строку в C: xampp htdocs testing.php в строке 30
Обманутый смертельный error: Объект класса DateInterval не может быть преобразован в строку в C: \ xampp \ htdocs \ testing.php в строке 30
Я просто новичок. Я уже проверил это на других сайтах, но ничто не поместило бы мою проблему. Я был бы очень признателен за всю помощь. Спасибо.
<?php
$localhost = "127.0.0.1";
$username = "root";
$password = "";
$dbase="testing";
$conn = new mysqli($localhost, $username, $password, $dbase);
//check connection
if ($conn->connect_errno) {
\t die('Sorry we are having a problem.');
}
if($_SERVER["REQUEST_METHOD"] == "POST")
{
$dateOfReserv = $_POST['dateOfReserv'];
$dateUntil \t = $_POST['dateUntil'];
\t $date1=date_create($dateOfReserv);
\t $date2=date_create($dateUntil);
\t $diff=date_diff($date1,$date2);
\t $diff->format("%days");
\t \t $sql="INSERT INTO `tbldate` (datestart, dateend, spanofdate)
\t \t \t VALUES ('$dateOfReserv', '$dateUntil', '$diff')";
\t \t
\t \t if ($conn->query($sql) === TRUE) {
\t echo "New record created successfully";
\t \t }
\t \t else {
\t echo "Error: " . $sql . "<br>" . $conn->error;
\t \t } \t
\t \t $conn->close();
\t \t \t
\t \t exit();
}
?>
<!DOCTYPE html>
<head>
<title>testing for inserting date in xampp server</title>
</head>
<body>
<form method="POST">
<ul>
\t <li>
\t \t \t <label for='dateOfReserv'>Date of Reservation<span>*</span></label><br />
\t \t \t <input type='date' id='dateOfReserv' name='dateOfReserv' placeholder='Date of Reservation' size='40' />
\t </li>
\t <li>
\t \t \t <label for='dateUntil'>Until?*</label><br />
\t \t \t <input type='date' id='dateUntil' name='dateUntil' placeholder='End Date of Reservation' size='40' />
\t </li>
\t <li>
\t \t \t <input type='submit' name='submitbtn' value='Send Date' />
\t </li>
</ul>
</form>
</body>
</html>
oh. Благодарю. но что, если я хочу добавить еще один день? Я имею в виду, если я выберу дату сегодня и 24, код даст мне 2, что, если я тоже хочу подсчитать дату сегодня? как .. это так ... $ diff = $ diff-> d; $ diff = $ diff + 1; – BlackSkull
, но я использую дату типа ввода, как бы он был уязвим для SQL-инъекции? – BlackSkull
Не все браузеры реализуют 'type = date', также, если я делаю' curl -X POST -data 'dateUntil = <уязвимая строка>' 'ваша форма не имеет значения :) - словом, никогда не доверяйте клиенту – Martin