Chatbox Hulp!
Ik ben bezig met een eigen (simpele) chatbox... ik heb hierover een paar vragen:
1: Ik heb nu in de index.php een form staan waarin hij de cookie maakt voor de username... die hij later weer moet openen in chatbox.php... ik typ dus op index.php mijn chatnaam in en heb als action chatbox.php staan dus als ik de naam submit ga ik naar chatbox.php.. als ik die pagina open zie ik een melding venster en er beginnen zich honderden popups te openen... waar kan dit door komen en hoe kan ik het oplossen? (De scripts staan hieronder) (op wmcity hadden ze het over htmlspecialchars maar ik snap er geen bal van)
2: Wanneer je in de chatbox een bericht post schrijft hij het in data.txt en die lees ik uit d.m.v. include ("data.txt"); ik heb het nu voor elkaar dat hij niet steeds de zin overschrijft maar dat hij de zinnen blijft toevoegen.. tot je uiteindelijk zelf data.txt vervangt.. nu wil ik graag dat er bijvoorbeeld maximaal 30 berichten kunnen gepost in data.txt en wanneer er dus 30 zijn gepost en de 31 ste komt dat dan het oudste bericht weer verwijderd wordt... zo blijft het overzichtelijk en wordt data.txt niet te groot...
PS: Als je nog fouten zit bij de cookies zeg het dan ff want daar zit geloof ik ook iets niet goed bij...
Als je antwoorden hebt op deze vragen ben ik je eeuwig dankbaar!...
Groeten, Drikus
Scripts:
index.php
Code (php)
chatbox.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<form method="post">
<input type="text" name="message" maxlength="200" size="32"><input type="submit" name="submit" value="Verzenden">
</form>
<?php
$message = $_POST['message'];
$naam = $_COOKIE["fixname"];
$bestand = "data.txt";
$fp = fopen($bestand,"a");
fwrite($fp, $naam ." says: ". $message ." <br>");
fclose($fp);
echo "<br>";
include ("data.txt");
?>
<input type="text" name="message" maxlength="200" size="32"><input type="submit" name="submit" value="Verzenden">
</form>
<?php
$message = $_POST['message'];
$naam = $_COOKIE["fixname"];
$bestand = "data.txt";
$fp = fopen($bestand,"a");
fwrite($fp, $naam ." says: ". $message ." <br>");
fclose($fp);
echo "<br>";
include ("data.txt");
?>
link: Klik hier! EIGEN RISICO JE PC KAN VASTLOPEN!
Gewijzigd op 01/01/1970 01:00:00 door Drikus
Inderdaad niet op klikken..
Gewijzigd op 01/01/1970 01:00:00 door Drikus
At the moment laat hij helemaal niets meer zien :P
index.php // hier moet je de chatnaam submiten die hij dus in een cookie moet opslaan bij submit wordt je doorgestuurd naar chatbox.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<title>Fixcreations v1.0.1</title>
<font face="Tahoma" size="2">
<?php
$naam = $_POST['naam'];
setcookie("fixname", $naam , time()+3600);
?>
<a href="destroy.php" >Cookies verwijderen voor fixchat</a>
<form method="post" action="chatbox.php">
Naam: <input type="text" name="naam">
<input type="submit" name="submit" value="Verzenden">
</form>
<font face="Tahoma" size="2">
<?php
$naam = $_POST['naam'];
setcookie("fixname", $naam , time()+3600);
?>
<a href="destroy.php" >Cookies verwijderen voor fixchat</a>
<form method="post" action="chatbox.php">
Naam: <input type="text" name="naam">
<input type="submit" name="submit" value="Verzenden">
</form>
chatbox.php // hier kun je chatten met de ingevoerde naam
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<title>Fixcreations v1.0.1</title>
<font face="Tahoma" size="2">
<form method="post">
<input type="text" name="message" maxlength="200" size="32"><input type="submit" name="submit" value="Verzenden">
</form>
<?php
$message = $_POST['message'];
$naam = $_COOKIE["fixname"];
$bestand = "data.txt";
$fp = fopen($bestand,"a");
fwrite($fp, $naam ." says: ". $message ." <br>");
fclose($fp);
echo "<br>";
include ("data.txt");
?>
<font face="Tahoma" size="2">
<form method="post">
<input type="text" name="message" maxlength="200" size="32"><input type="submit" name="submit" value="Verzenden">
</form>
<?php
$message = $_POST['message'];
$naam = $_COOKIE["fixname"];
$bestand = "data.txt";
$fp = fopen($bestand,"a");
fwrite($fp, $naam ." says: ". $message ." <br>");
fclose($fp);
echo "<br>";
include ("data.txt");
?>
weet iemand wat er fout is in mijn ogen is het goed... maar na het submitten ga je naar chatbox.php en er is niets met de ingetoetste naam gebeurt....
2. Zet even op beide pagina's helemaal bovenaan "session_start()", dus voordat je ook maar iets op het scherm zet.
edit:
Verder is dit natuurlijk een beetje raar:
Een variabele overschrijven, wat hebben we eraan? Jij gaat er zomaar vanuit dat $_POST['naam'] bestaat..
Maar daar eens zoiets van:
Code (php)
Gewijzigd op 01/01/1970 01:00:00 door PHP Newbie
Het beste kan je gewoon een DB gebruiken en dan lees je elke keer de laatste 30 berichten uit die je op het scherm laat weergeven, of de berichte van de laatse 5mins oid.
Ik wil op een tekstbestand geef ik aan... dit is ook makkelijker te maken en te installeren.. hier zijn er niet zo veel van.... internet staat vol met db chats...
Een db chat is veel sneller, een text chat is leuk als je niet meer dan 4 gebruikers tegelijk hebt. Anders wordt het zo traaaaaaaaag