我正在尝试擦除存储在$_POST['message']
中的数据或将其设置为null。我只是想以某种方式清除数据。
这是我的迷你聊天程序。
<?php
require_once("connection.php");
if(isset($_SESSION['log']))
{
if (isset($_POST['message']))
{
sendMessage($_POST['message'], $pdo, $logedInUsername);
}
$query = "SELECT * FROM `chat`";
$search_result = filterTable($query, $pdo);
}
// function to connect and execute the query
function filterTable($query, $pdo)
{
$stmt = $pdo->prepare($query);
$stmt->execute();
$filter_Result = $stmt->fetchAll(PDO::FETCH_ASSOC);
return $filter_Result;
}
function sendMessage($message, $pdo, $logedInUsername)
{
if(strlen($message) > 0)
{
$query = "INSERT INTO `chat`(`username`, `message`) VALUES ('$logedInUsername','$message')";
$_POST['message'] = null;
//$_POST['message'] = "";
$stmt = $pdo->prepare($query);
$stmt->execute();
}
}
?>
<!-- html -->
<form method="post">
<input type="text" name="message" id="txt_1" onkeyup='saveValue(this);'/>
<input type="submit" class="send" value="Send">
问题是当我发送一条消息,然后刷新页面时,$_POST['message']
中的数据仍然保留,因此sendMessage函数在页面加载时运行,这再次发送了前一条消息,这是不可取的。
$_POST['message'] = null;
在使用isset时似乎什么也不做,而在使用strlen检查是否大于0时,$_POST['message'] = "";
也不起作用。