我不是PHP的专家,而且我正在尝试为我的简单网站创建公共聊天室。
我使用SQL数据库来存储消息。名为if($user->getSession()){
echo '<li><a href="index.php?page=25&id='.$user[id].'">My Profile</a></li>';
}else{
echo '<li><a class="button" href="#prvi">Join Us</a></li>';
}
的文件从数据库获取所有消息并将其显示给用户。它还有一个简单的表单,用PHP GET方法发送消息。以下是我的表格的代码。
chat_index.php
使用上面的代码,我将数据发送到<form method="get" action="sendmessage.php">
<input name="msg" placeholder="Message" data-theme="a" type="text">
<button type="submit" class="ui-btn ui-corner-all">Send</button>
</form>
文件。在此文件中,使用此代码向数据库添加消息,用户重定向到sendmessage.php
。
chat_index.php
在浏览器窗口上正确加载重定向页面后。但URL就像这样结束
..... / sendmessage.php?MSG = test_message
因此,如果我重新加载再次发送的页面消息,并且网址会像这样正确
..... / chat_index.php
如何解决此问题?
已更新
header("Location: chat_index.php");
exit();
方法。但没有解决。浏览器显示POST
中的内容和以chat_index.php
答案 0 :(得分:0)
答案 1 :(得分:0)
如果您不想将数据发送到查询字符串,请使用POST
代替GET
。
<form method="POST" action="sendmessage.php">
答案 2 :(得分:0)
这显然应该是POST表格。任何形式保存或更改服务器上的任何内容都应该是。否则(使用get)人们可以通过跟随链接来添加消息,这不是预期的。保存后的重定向是正常的。请注意,此类重定向仅在生成任何输出之前有效。
你发布的内容不能多说。您还应该检查邮件发布时是否正确触发了保存和重定向代码。
答案 3 :(得分:0)
这就是正在发生的事情,表单是从chat_index.php提交的,因此操作最终为chat_index.php/sendmessage.php
。
要解决此问题,请更改按指示发布的方法,并将您的操作更改为/sendmessage.php
你的表格应该看起来像这样
<form method="POST" action="/sendmessage.php">
....
</form
希望这个帮助
答案 4 :(得分:0)
如果这是一个简单的论坛网站,那么根本不重定向就不那么复杂了。只需将您的操作属性设置为“”,当有人提交表单时,它会将数据发布回页面。所以做这样的事情:
<form method="post" action="">
<input name="msg" placeholder="Message" data-theme="a" type="text">
<input name="function" type="hidden" value="post_message">
<button type="submit" class="ui-btn ui-corner-all">Send</button>
</form>
然后将sendmessage.php中的php代码放在启动DOCTYPE和html标签上方的chat_index.php中,并删除sendmessage.php。或者,在同一地点使用include('sendmessage.php')。然后当页面加载时,检查$ _POST ['function'] =='post_message',如果这个条件为真,那么执行sendmessage.php中的东西。这将更加紧凑,用户将被重定向一次而不是两次。此外,我不知道您的文件结构,但您可能希望将chat_index.php重命名为index.php,以使其直观,以便人们无法在您的目录中查看。