2015-04-12 252 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

謝謝! –