这是用于向其他用户发送消息的脚本。一切都很好,但它不会将输入字段值保存到数据库中。我在1小时内查看代码,但我无法找到问题。 '到',' subj',' msg'来自形式。
<?php
include 'php/db_connect.php';
$name = $_SESSION['name'];
$to = mysqli_real_escape_string($conn, stripslashes(trim(filter_input(INPUT_POST, 'to'))));
$sender = $name;
$subj = mysqli_real_escape_string($conn, stripslashes(trim(filter_input(INPUT_POST, 'subj'))));
$msg = mysqli_real_escape_string($conn, stripslashes(trim(filter_input(INPUT_POST, 'msg'))));
$errorTo = '';
$errorSubj = '';
$errorMsg = '';
$errorMain = false;
if (filter_input_array(INPUT_POST)) {
if ($to === $name) {
$errorTo = 'Не може да пращаш съобщение на себе си';
$errorMain = true;
}
$checkTo = "SELECT user_name FROM users WHERE user_name='$to'";
$resultCheck = mysqli_query($conn, $checkTo);
$row = mysqli_fetch_array($resultCheck, MYSQLI_ASSOC);
if (mysqli_num_rows($resultCheck) == 0) {
$errorTo = 'Не съществува такъв потребител';
$errorMain = true;
}
if (str_word_count($subj) > 20) {
$errorSubj = 'Прекалено дълга тема за съобщение';
$errorMain = true;
}
if (str_word_count($msg) > 300) {
$errorSubj = 'Прекалено дълго съобщение';
$errorMain = true;
}
if (!$errorMain) {
$insertInDb = 'INSERT INTO msg (to, sender, subject, msg) VALUES ("$to", "$sender", "$subj", "$msg")';
mysqli_query($conn, $insertInDb);
}
}
?>
答案 0 :(得分:1)
您将php变量用于单引号。更改字符串:
$insertInDb = 'INSERT INTO msg (to, sender, subject, msg)
VALUES ("$to", "$sender", "$subj", "$msg")';
到
$insertInDb = "INSERT INTO msg (to, sender, subject, msg)
VALUES ('$to', '$sender', '$subj', '$msg')";