如何在PHP中提交不带“?save = msg”的chatmsg

时间:2019-05-16 07:02:16

标签: php chat

我正在进行PHP聊天,但是很不幸,我遇到了一个问题。 这是关于通过“ ?save=msg”发送消息。

"chat.php?save=msg"

味精写在数据库中。

我的问题是,我不想通过重新加载页面来重新发送消息。

我为该站点尝试了"Force-Reload",但是"?save=msg"并没有因此消失。

"onclick='chat.php'"或类似的东西

PHP脚本

    if(isset($_GET['save'])) {
        $save = $_GET['save'];
        if($save == 'msg') {
            //< &lt;> &gt; & &amp;
            $uauswahl = trim($_POST['nachrichteneing']);
            if ($uauswahl != NULL){
                $uauswahl = str_replace("&", "&amp;", $uauswahl);
                $uauswahl = str_replace("<", "&lt;", $uauswahl);
                $uauswahl = str_replace(">", "&gt;", $uauswahl);
                include("str_replace.php");
                $uname = $user['benutzer'];
                $ava = $user['avatar'];
                $statement = $pdo->prepare("INSERT INTO chathistory (msg, name, avatar) VALUES(:msg, :name, :avatar)");
                $result = $statement->execute(array('msg'=> $uauswahl, 'name'=> $uname, 'avatar'=> $ava));

                if ($result == true){
                    $success_msg = "Nachricht wurde gesendet.";
                } else {
                    $error_msg = "Beim Absenden der Nachricht scheint ein Fehler aufgetreten zu sein.";
                }
            } else{
                $error_msg = "Nachricht wurde nicht gesendet. </br> Grund: Nachricht darf nicht leer sein.";
            }


        }

我的表格

<form enctype="multipart/form-data" action="?save=msg" method="POST">
<input type="text" id="msgsf" autocomplete="off" name="nachrichteneing" placeholder="Tippe Nachricht...">
<input type="submit" id="msgfb" value="" />
</form>

我希望有人对此有所了解

1 个答案:

答案 0 :(得分:0)

如果您希望页面刷新一次以提交表单,则需要调整代码以引用$_POST而不是$_GET。在页面重新加载之间传递GET参数,方法是在URL中附加通过标头发送POST的URL。

从HTML方面出发,您需要更改操作以反映页面名称,然后从代码中更改,只需将$_GET换成$_POST即可。