2015-04-12 251 views
1

我为我的网站制作了这个简单的聊天网站,但是我不知道如何在每次发送邮件时自动刷新它。自动刷新php页面

网站发送和打印出的所有消息:

<form action="messages.php" method="POST"> 
    <input name="chat_box" /><br> 
    <input type="submit" value="Send" /> 
</form> 


<?php 
include "messages.txt"; 
?> 

网站发送文本输入到一个文本文件:

<?php 

$messages = $_POST["chat_box"]; 

$handler=fopen("messages.txt", 'a'); 
fwrite($handler,$_SERVER["REMOTE_ADDR"].":".$messages."<br>"); 
fclose($handler); 

header("Location: chat_box.php"); 

?> 

谁能帮助我?

+1

你可能不希望*刷新页面*,而只是更新了“聊天记录”这是在页面上。有许多方法可以做到这一点,从网络套接字到定期轮询AJAX资源。这个确切的应用程序也有*无数的*教程。也许快速谷歌搜索“简单的PHP聊天应用程序”将有所帮助? – David

+0

谢谢,会看起来那 –

回答

0

试试这个代码:

这是一个messages.php

<?php 
    $page = $_SERVER['PHP_SELF']; 
    $sec = "10"; 
?> 
<html> 
    <head> 
    <meta http-equiv="refresh" content="<?php echo $sec?>;URL='<?php echo $page?>'"> 
    </head> 
    <body> 
    <form action="messages.php" method="POST"> 
     <input name="chat_box" /><br> 
     <input type="submit" value="Send" /> 
    </form> 
    <?php 
     include "messages.txt"; //Uncomment this to check the autorefresh 
     echo "Auto refresh in 10 second!"; 

     $messages = $_POST["chat_box"]; 

     $handler=fopen("messages.txt", 'a'); 
     fwrite($handler,$_SERVER["REMOTE_ADDR"].":".$messages."<br>"); 
     fclose($handler); 
    ?> 
    </body> 
</html> 

希望这有助于你出去...... :)

0

如果你的意思是让新邮件,最好的办法是可能每10秒重新加载一次文本文件。这样做代替PHP在你的第一个代码底部与此设置:

<div id="messages"></div> 
<script type="text/javascript"> 
    $(document).ready(function() { 
    function functionToLoadFile(){ 
     jQuery.get('messages.txt', function(data) { 
     $("#messages").html(data) 
     }); 
    } 
setInterval(functionToLoadFile, 10000); 
}); 
</script> 
+0

它不工作。可能是因为我没有安装jquery。我可以使用src =“”但我只是要保持这样,并手动刷新 –

+0

谢谢! –