Как отправить chatmsg без "? Save = msg" в PHP - PullRequest
0 голосов
/ 16 мая 2019

Я работаю над 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 голосов
/ 16 мая 2019

Если вы рады, что страница обновляется один раз для отправки формы, вам необходимо настроить код так, чтобы он ссылался на $_POST вместо $_GET. GET-параметры передаются между перезагрузками страницы путем добавления URL, где POST отправляются через заголовки.

С вашей стороны HTML вам нужно изменить действие, чтобы оно отображало имя страницы, а затем из вашего кода, просто поменяйте местами $_GET на $_POST.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...