als aller eerst, sorry voor mijn tweede ('spambericht')!
maar ik zit met nog een probleem, ik heb een chatbox die het goed doet,
alleen zit er een bug in. Als je enter in blijft drukken dan spam je je naam in de chat-box,
nu wil ik dat als je enter indrukt en je hebt niks in de input ingevult dat er dan niks geplaatst wordt in de chat-box.
Weet iemand hoe ik dit moet doen? Hier is de code:
Writechat.php:
<?php
session_start();
if (isset($_SESSION['username'])) {
$text = $_POST['text'];
$date = date('H:i:s');
$handle = fopen("messages.html", 'a+');
fwrite($handle, '<div class="message"><span class="name">' . $_SESSION['username'] . ': </span>' . stripslashes(htmlspecialchars($text)) . '<span class="right">'.$date .'</span></div>');
fclose($handle);
}
?>
index.php:
<?php
// <a href="index.php?user=logout" id="logout"><h2>Logout</h2></a></div>
include 'functions.php';
if (isset($_GET['user']))
$user = $_GET['user'];
else
$user = '';
sessionMaintain($user);
?>
<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>J-B Bloggers | Chatbox</title>
<link rel="stylesheet" type="text/css" href="style.css" />
<script src="jquery-1.7.2-min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function(){
$("body").on("submit", "form#chat-form", function (e){
e.preventDefault();
var message = $("#chatmessage").val();
$.post("writechat.php", {text: message});
$("#chatmessage").val('');
return false;
});
function loadContent (){
var oldHeight = $("#chatwindow").prop("scrollHeight")-20;
$.ajax({
url: "messages.html",
cache: false,
success: function(content){
$("#chatwindow").html(content); //Insert chat log into the #chatwindow
var newHeight = $("#chatwindow").prop("scrollHeight") - 20;
if(newHeight > oldHeight){
$("#chatwindow").animate({ scrollTop: newHeight }, 'slow'); //Autoscroll to bottom of div
}
}
});
}
setInterval(loadContent, 100);
});
</script>
<?php // mod edit CSS verwijderd ?>
</head>
<body>
<div class="headerMenu">
<div id="wrapper">
<div class="logo">
<img src="./img/find_friends_logo.png" />
</div>
<div class="search_box">
<form action="search.php" method="GET" id="search">
<input type="text" name="q" size="60" placeholder="Zoeken ..." maxlength="38" />
</form>
</div>
<div id="menu">
<a href="index.php" />Home</a>
<a href="http://localhost/Over ons.php" />Over ons</a>
<a href="Forum.php" />Forum</a>
<a href="Vlogs.php" />Vlogs</a>
<a href="Contact.php" />Contact</a>
</div>
</div>
<div id="chatwrapper">
<?php
if (!isset($_SESSION['username'])) {
?>
<?php } else { ?>
<div id="chattitle">
<div class="welcome">
<h2>Welkom: <?php echo $_SESSION['username']; ?></h2>
</div>
<div class="exit">
<a href="http://localhost/member.php" id="logout"><h2>Terug</h2></a></div>
</div>
<div id="chatwindow">
</div>
<div id="chatform">
<form id="chat-form" action="#">
<input type="text" id="chatmessage" name ="message" style="width: 445px; height: 39px; margin: 0px; padding-left: 10px;" />
<input type="submit" id="send" value="Send" style="margin: 0px; height: 51px; border-radius: 0px; width: 105px; padding: 0px;"/>
</form>
</div>
<?php } ?>
</div>
functions.php:
<?php
function sessionMaintain($user) {
session_start();
if ($user != '') {
if ($user == 'logout') {
$name = $_SESSION['user'];
$string = '<div>user:<span class="name">' . $_SESSION['user'] . '</span> is uitgelogd!</div>';
$filehandle = fopen('messages.html', 'a+');
fwrite($filehandle, $string);
session_destroy();
header('Location:index.php');
fclose($filehandle);
return;
}
if (!isset($_SESSION['user'])) {
$_SESSION['user'] = $user;
$filehandle = fopen('messages.html', 'a+');
$string = '<div><span class="name">' . $_SESSION['user'] . '</span> is ingelogd!</div>';
fwrite($filehandle, $string);
fclose($filehandle);
return;
}
}
}
?>
Alvast bedankt voor het antwoord,
Met Vriendelijke Groet: Bas van Assen