Hallo iedereen,
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

je zou kunnen kijken naar de functie empty()


<?php
if(empty($_POST['bericht'])){
echo 'U heeft geen bericht ingevuld!';
}
?>
Waar zou ik deze code in moeten voegen?
Alvast bedankt voor het antwoord.

Met Vriendelijke Groet, Bas van Assen
Misschien hier;


 $("body").on("submit", "form#chat-form", function (e){
                    e.preventDefault();
                    var message = $("#chatmessage").val();
                 if(message !== '') { //Check of message NIET leeg is
                    $.post("writechat.php", {text: message});
                 }
                    $("#chatmessage").val('');
                    return false;
 });
nee, dat is javascript/Jquery. Het stukje code wat ik heb gegeven is PHP. Je moet de code invoegen na het moment dat er op submit is geklikt. Voorbeeld:


<?php
// Als er een formulier wordt verzonden
if($_SERVER['REQUEST_METHOD'] == "POST"){
	
	// controleren of het veld 'bericht' leeg is
	if(empty($_POST['bericht'])){
		
		// fout melding dat er geen bericht is ingevuld
		echo 'U heeft geen bericht ingevuld!';
	}
	
	// als er een bericht is ingeuld dan het stuk waar het bericht wordt toegevoegd
	else {
		// hier komt het stukje code dat een bericht wordt toegevoegd
	}
}
?>


je formulier zou er dan als volgt uitzien:

<form id="chat-form" action="" method="post">
    <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>

Hierbij zie je dat de method 'post' is toegevoegd. Dit verwijst terug naar het stukje PHP code 'REQUEST_METHOD'.

Reageren