view Geplaatst: 27 maart 2011 Geplaatst: 27 maart 2011 Ik heb een kleine chatbox op een website lopen. Alles loopt prima maar ik mis de tijd aanduiding. Ik zie in andere chats dit wel voorbij komen. In een andere chat zag ik deze regel voorbij komen: Code: define("TIMESTAMP", "Y-m-d H:i:s"); Alleen weet ik bijna niets van javascript en weet dus niet waar ik dit zomaar in kan zetten. In het onderstaande is de gehele code van de (mini)chat Wie zou mij daarmee kunnen helpen? (chat.php) Code: <pre><?phpif(isset($_GET['text'])){ $already = file("text.txt"); $already[] = htmlentities($_GET['name']).":\t".htmlentities($_GET['text'])."\n"; $handle = fopen("text.txt",'w'); $iwant = array_chunk(array_reverse($already), 20); if(!fwrite($handle, implode("", array_reverse($iwant[0])))) { die("BIG error!"); } fclose($handle); echo implode("", array_reverse($iwant[0]));}else{ echo implode("", file("text.txt"));}?></pre> chat.html Code: <html> <head> <TITLE>LPAM forum chat</TITLE> </head> <BODY BGCOLOR="#E0E0F8"> <IMG SRC="http://www.dreamradio.nl/chat/picture/logo.png" width="950" Height="100" alt="LOGO"><br></BODY></html><script>var xmlhttp=false;/*@cc_on @*//*@if (@_jscript_version >= 5)// JScript gives us Conditional compilation, we can cope with old IE versions.// and security blocked creation of the objects. try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (E) { xmlhttp = false; } }@end @*/if (!xmlhttp && typeof XMLHttpRequest!='undefined') { xmlhttp = new XMLHttpRequest();}var timer = 6000; //iedere 5 seconden refreshenfunction say(value){ name = document.getElementById('name').value; xmlhttp.open("GET", "chat.php?text="+value+"&name="+name+"&random="+Math.round(9000*Math.random()),true);//method, target, async (set always true!) xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4) { document.getElementById('chatwindow').innerHTML = xmlhttp.responseText; } } xmlhttp.send(null); timer = 6000; counter();}function update(){ xmlhttp.open("GET", "chat.php?random="+Math.round(9000*Math.random()),true);//method, target, async (set always true!) xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4) { document.getElementById('chatwindow').innerHTML = xmlhttp.responseText; } } xmlhttp.send(null); timer = 6000; counter();}function counter(){ if(timer == 0) { update(); } else { timer = timer - 1000; setTimeout("counter()", 1000); }}function check_enter(eventobjekt){ //Bedankt Cees! var var_key; if (navigator.appName == "Microsoft Internet Explorer") { var_key = window.event.keyCode; } else { var_key = eventobjekt.which; } if (var_key==13) {//{alert(var_key); Shout(value); document.getElementById('chattext').value = ""; }}function hasvalue(value){ if(value != "") { document.getElementById('submitbutton').disabled = false; } else { document.getElementById('submitbutton').disabled = true; }}</script><input type="text" id="name" name="name" style="width: 950px;" maxlength="256" value="Annoniem"/><div id="chatwindow" style="display:block; width: 950px; height: 400px; overflow: scroll;"> Welkom in de chat. Schrijf hier aub u bericht.</div><br/><input type="text" id="chattext" name="chattext" onKeyPress="check_enter(event);hasvalue(this.value);" onChange="hasvalue(this.value);" maxlength="256" style="width: 600px; "/><input type="submit" id="submitbutton" onMouseDown="javascript: say(document.getElementById('chattext').value);document.getElementById('chattext').value = '';" value="Shout!" style="width:150px; " disabled /><script> update()</script> (text.txt) Code: Dit is een voorbeeld van de chat.
Big fellow Geplaatst: 27 maart 2011 Geplaatst: 27 maart 2011 Verander dit: Code: $already[] = htmlentities($_GET['name']).":\t".htmlentities($_GET['text'])."\n"; Naar: Code: $already[] = date("Y-m-d H:i:s : " . htmlentities($_GET['name']).":\t".htmlentities($_GET['text'])."\n"; Op deze manier gebruik je de servertijd. Dat is "slimmer" aangezien je anders in de problemen kan komen als er mensen uit een andere tijdzone posten. Dan lijkt het alsof de tijdsaanduiding niet klopt. Als je server niet in NL staat dan zal je eerst even de tijdzone goed moeten zetten in je script. Indien dat het geval is laat het maar weten. “Success is not final, failure is not fatal: it is the courage to continue that counts.” ~ Winston Churchill
view Geplaatst: 27 maart 2011 Auteur Geplaatst: 27 maart 2011 Hoi Big fellow, Dank voor je tip! Ik heb het aangepast in de chat.php en de file op de server gezet. Daarna heeft het de rechten 777 gekregen en heb ik getest. Echter reageert de shout het nu niet meer. Het beeld is er wel, maar wat ik onderin typ komt niet in het scherm erboven. (dus ook geen tijd aanduiding) Waar ga ik de fout in? ps. ik heb de link van de chat in een pb naar je toe gestuurd.
Big fellow Geplaatst: 27 maart 2011 Geplaatst: 27 maart 2011 Oops , wat vergeten.... Zie de verbeterde versie; Code: $already[] = date("Y-m-d H:i:s") . " : " . htmlentities($_GET['name']).":\t".htmlentities($_GET['text'])."\n"; “Success is not final, failure is not fatal: it is the courage to continue that counts.” ~ Winston Churchill
view Geplaatst: 27 maart 2011 Auteur Geplaatst: 27 maart 2011 Jaa dat was hem, het werkt super! Een dikke merci Big fellow!
view Geplaatst: 4 april 2011 Auteur Geplaatst: 4 april 2011 De chat aan zich loopt prima, hoe simpel de code ook is. Echter loop ik nu na een tijdje wel tegen een paar dingetjes aan. - Internet Explorer, het beeld blijft soms knipperen //Ligt dat aan deze functie: function counter() - Enter toets werkt niet (niet in IE en niet in FF) Wie kan mij hiermee helpen en welke dingen moeten hiervoor aangepast worden?
view Geplaatst: 7 april 2011 Auteur Geplaatst: 7 april 2011 Opgelost !!! Het was een kwestie van 1 zin aanpassen in de chat.html. Code: Shout(value); in Code: say(document.getElementById('chattext').value) Met dank aan wadelft die met de oplossing kwam, super!
Aanbevolen berichten
Maak een account aan of log in om te reageren
Je moet een lid zijn om een reactie te kunnen achterlaten
Account aanmaken
Registreer voor een nieuwe account in onze community. Het is erg gemakkelijk!
Registreer een nieuwe accountInloggen
Heb je reeds een account? Log hier in.
Nu inloggen