以下是数据的处理方式
<?php
include_once 'db.php';
if (isset($_POST['add'])) {
// преобразуем специальные символы в текст
$name = htmlspecialchars($_POST['name']);
$text = htmlspecialchars($_POST['text']);
$message = htmlspecialchars($_POST['message']);
$rating = htmlspecialchars($_POST['rating']);
// заносим данные из формы в переменные и проверяем на ошибки
$name = strip_tags(trim($_POST['name']));
$text = strip_tags(trim($_POST['text']));
$message = strip_tags(trim($_POST['message']));
$rating = strip_tags(trim($_POST['rating']));
$date = $_POST['date'];
// заносим дату и время отзыва
$date = date('Y-m-d H:i');
// проверка введенных данных
if($name != '' AND $text != '' AND $message != '')
// отправка данных в бд
mysqli_query($link, " INSERT INTO Otzivy2 (name, text, message, date, rating) VALUES ('$name', '$text', '$message', '$date', '$rating')");
$to = 'почта';
$subject = 'review';
$message = "Текст отзыва: " . $_POST['message'] . "\nОт: " . $_POST['text'] . " " . $_POST['email'] . "\nВремя: " . date("d.m.Y - H:i");
$headers = array(
'From' => 'почта',
'Reply-To' => 'почта',
'X-Mailer' => 'PHP/' . phpversion()
);
mail($to, $subject, $message, $headers);
}
// закрываем сеанс
include_once 'clear.php';
include_once 'form.php';
?>
为了永久避免传递给请求的数据出现任何问题,无论是错误还是站点黑客攻击,任何数据都应始终与请求分开传输到数据库。这是使用准备好的,或者也称为参数化查询来完成的。
在 mysqli 中,要执行参数化查询,需要执行 4 个步骤:
用语言来说,这听起来很长,但在实践中,它并不是那么困难。但首先你需要正确编写数据库连接代码,这样俄罗斯字母就不会出现问题,并且数据库会报告所有错误:
此代码应编写一次,最好在一个单独的文件中,然后将此文件包含在您需要使用数据库的其他脚本中。除了其他有用的东西,这段代码告诉 mysqli 在每次查询错误发生时生成一个 PHP 错误,以便可以跟踪和修复它。(注意:要查看错误本身,您需要相应地配置 PHP)
之后,您可以继续实际执行请求。
SELECT 查询也是如此。只是为了得到查询的结果,还需要执行一个命令——get_result()。
例如
然后像往常一样 fetch or while