我有一個非常基本的PHP聊天系統。只有後期做的事情是在log.html中添加一行$ user和$ message。冷卻崗位在PHP
但是用戶可以拿着進入或按進入多次垃圾郵件。這導致網站滯後。
我想製作一個類似0.3秒的冷卻系統。 如果它處於冷卻狀態,請勿讓用戶張貼或禁用輸入0.3秒。
我該如何做到這一點?
在這裏,我的代碼:
的index.php包含兩件事情。 「log.html」 和這些代碼
<form name="message" action="">
<div class="input-group dropup" id="bottom">
<input type="usermsg" type="text" id="usermsg" maxlength="65" autocomplete="off" class="form-control" placeholder="Type your message here.">
<span class="input-group-btn">
<button class="btn btn-success" type="submit" name"submitmsg" id="submitmsg">Send</button>
</span>
</div>
</form>
而且post.php中包含這些代碼
<?
session_start();
if(isset($_SESSION['name'])){
$text = $_POST['text'];
$sp = fopen("player_log.html", 'a');
fwrite($sp, "<div class='msgln'>[" .date("Y-m-d"). "-".date("g:i A"). " | " .$_SERVER['REMOTE_ADDR']."] <b>".$_SESSION['name']."</b>: ".stripslashes(htmlspecialchars($text))."<br></div>");
fclose($sp);
// SOME str_replace CODES FOR EMOTICONS, BANNED TEXTS ETC..
$fp = fopen("log.html", 'a');
fwrite($fp, "<div class='msgln' style='color: #BDBDBD;'><b style='color: #FFBF00;'>[Player] ".$_SESSION['name'].":</b> ".$finaltext."<br></div>");
fclose($fp);
}
?>
從個人體驗來看,大多數用戶在5秒鐘的暫停時間內不會注意到任何東西,因爲他們無法再輸入其他消息。由於Eren只想在一秒鐘內停下來停止,大多數用戶不會注意到(您能鍵入內容並在1秒內按下回車鍵嗎?) – mfisher91
您對OK + Enter有什麼看法? :)另外,如果忘記了某些東西,大多數聊天人(包括我自己)都會再次快速打字。以任何方式阻礙用戶從來都不是一個好主意。 – beerwin
我也經常在忘記一些東西后打字。但我不認爲用戶想要禁用人們輸入,而僅僅是提交他們輸入的內容。 – mfisher91