Gastenboek met AJAX

Door Jorn Engelbart, 20 jaar geleden, 8.103x bekeken

Gastenboek met AJAX. Je kunt schrijven, door de pagina's bladeren en lezen zonder de pagina te vernieuwen. De Smilies zijn van een script hier (ik weet niet meer precies welke, sorry). Het loading image kun je hier maken: http://www.ajaxload.info/ (opslaan als loading.gif)
Hier is de code te downloaden.
Hier zijn de smilies apart te downloaden.

Edit:

Je kunt nu maar 1 keer in 5 minuten schrijven in het gastenboek.
SQL injection er uit gehaald
wat dingetjes veranderd in database
Domme fout er uit gehaald nu doet hij het wel SORRY!
Er zit nu een fade effect op (LET OP: dit fade script heb ik niet zelf gemaakt het komt van: hier

Voorbeeld: http://meschat.gethost.nl/mesbook/

Gesponsorde koppelingen

PHP script bestanden

  1. gastenboek-met-ajax

 

Er zijn 38 reacties op 'Gastenboek met ajax'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Onbekend Onbekend
Onbekend Onbekend
20 jaar geleden
 
0 +1 -0 -1
Mooi script, heb je code niet bekeken, maar het werkt wel leuk. Maar een spam beveiliging misschien? Dat je niet meerdere berichten achter elkaar kun posten of een validatie code.
Hipska BE
Hipska BE
20 jaar geleden
 
0 +1 -0 -1
nu gebruik je wel ajax dat kan een voordeel zijn, MAAR je gebruikt een div met een scrollbar... Nu denken de mensen dat het gewoon een iFrame is en dat daar gewoon een pagina zit die herlaadt...

Je hebt er dus niets indrukwekkends mee gemaakt.

Tip: haal die scrollbar weg van je DIV
Tip: als de berichten tevoorschijn komen, doe dat met een effectje ofzo.
Jelmer -
Jelmer -
20 jaar geleden
 
0 +1 -0 -1
En we hebben een SQL-injection-mogelijkheid, en een HTML-injection-mogelijkheid, en ik kan googelen met Javascript. Echt veilig is het niet.

1 voordeel is wel dat hoe dan ook, de inhoud van het gastenboek zal niet worden meegenomen door Google, want die kan er niet bij :)
Jorn Engelbart
Jorn Engelbart
20 jaar geleden
 
0 +1 -0 -1
@Jelmer ik heb volgens mij de SQL injections er uit gehaald maaar wat bedoel je met HTML-injection-mogelijkheid??? en wat is er verder nog slecht beveiligd aan?
PHP erik
PHP erik
20 jaar geleden
 
0 +1 -0 -1
Quote:
CREATE TABLE `gastenboek` (
`id` int(11) NOT NULL auto_increment,
`ip` varchar(100) NOT NULL,
`naam` varchar(100) NOT NULL,
`email` varchar(100) NOT NULL,
`bericht` text NOT NULL,
`datum` varchar(100) NOT NULL,
`website` varchar(200) NOT NULL,
`time` int(20) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM;
Datum in een varchar? Time in een int(20)? WAUW! Je hoort tijd en datum samen te doen in een DATETIME of TIMESTAMP. Wat jij doet is traag en uiterst onhandig. Overigens betekent een int(20) niet dat het 20 karakters mag hebben maar dat het 20 bytes is (al is MySQL daar niet helemaal consequent in). Dus hier kun je een getal van 50 karakters van maken ofzo.

edit:
Quote:
$bericht = str_replace ("neuken","****",$bericht);
Mag je dat ook niet meer zeggen tegenwoordig? Ik heb er positieve associaties bij.
Jeroen
Jeroen
20 jaar geleden
 
0 +1 -0 -1
Beste Jorn,

Probeer wat overzichterlijker te coderen, vind het erg onoverzichtelijk.

** Edit **
Ik krijg hem niet werkende, hij verstuurd wel maar bij functie book gaat er iets fout waardoor het bericht niet in de database komt.

Mvg,

Jeroen
Jorn Engelbart
Jorn Engelbart
20 jaar geleden
 
0 +1 -0 -1
@Jeroen Bedankt voor je reactie doordat ik een beveiliging had gemaakt dat je maar 1 keer in de 5 minuten kan posten was ik vergeten om te maken voor als een ip nog helemaal niet had gepost :S


20 jaar geleden
 
0 +1 -0 -1
Wat is de meerwaarde van AJAX hier?
Jorn Engelbart
Jorn Engelbart
20 jaar geleden
 
0 +1 -0 -1
Je ziet meteen wat je geschreven, de pagina hoef je niet de hele tijd te vernieuwen als je door de pagina's bladert.


20 jaar geleden
 
0 +1 -0 -1
Wat ik heb geschreven kan ik toch ook gewoon lezen in het boxje waarin ik heb ingetypt. Daarnaast zeg jij dat niet heel de pagina moet herladen, daar heb je gelijk in, nu zal ongeveer 80% van de pagina herladen moeten worden - waarom die andere 20% er dan ook niet gewoon bij laden.
Jorn Engelbart
Jorn Engelbart
20 jaar geleden
 
0 +1 -0 -1
Oke je hebt gelijkt maar wat bedoel je precies met
Quote:
nu zal ongeveer 80% van de pagina herladen moeten worden
???
Frank -
Frank -
20 jaar geleden
 
0 +1 -0 -1
Het laden van een paar kb's html kost nauwelijks tijd, daarvoor gebruik je geen ajax. De css en js haal uit uiteraard buiten de html, dan kan de browser dit cachen. Dát zijn punten om een site te versnellen, een beetje html kost niks.

En vergeet niet dat een user bepaalde verwachtingen heeft bij het gebruik van een browser. Een pagina herladen na een update is normaal, daarvan afwijken kan zorgen voor onduidelijkheid. Wil je echt ajax gebruiken, zorg dan wel voor een duidelijke melding dat de update is geslaagd.


20 jaar geleden
 
0 +1 -0 -1
Zoals pgFrank al zei Jorn; het laden van een beetje html kost nauwlijks tijd.
Dus die 20% van de pagina (menu, header) die je nu niet steeds inlaad is zo klein dat je 'AJAX stukje' eigenlijk overbodig is.
Jorn Engelbart
Jorn Engelbart
20 jaar geleden
 
0 +1 -0 -1
Dat klopt en daar ben ik het helemaal mee eens maar ik gebruik dit script ook bij een site die heel vol is (met plaatjes, flash) maar daar is dit script eigenlijk ook voor bedoeld voor websites die vol zijn met een iets langere wachttijd. Maar dat is in het voorbeeld niet goed te zien.
Lissy Pixel
Lissy Pixel
20 jaar geleden
 
0 +1 -0 -1
Dank je wel voor het delen van dit gastenboek.
Naar mijn smaak mooi gemaakt en als ik tijd heb ga ik het testen.
Vind ik wat kom ik er bij je op terug!
Frank -
Frank -
20 jaar geleden
 
0 +1 -0 -1
Quote:
maar ik gebruik dit script ook bij een site die heel vol is (met plaatjes, flash)
Plaatjes en flash-objecten worden ook in de cache van de browser gezet, die hoef je dus niet nogmaals te downloaden bij een refresh.

Cache is king!
Pim Vernooij
Pim Vernooij
20 jaar geleden
 
0 +1 -0 -1
Hoe vaak de browser bestanden cached valt nog vies tegen! Wil je het echt goed doen, werk dan met ETags en 304 Not Modified responses. Voor meer informatie: http://www.sitepoint.com/article/web-site-optimization-steps

En download ook de YSlow utility van Yahoo voor de FireBug extensie van FireFox! Heel erg handig als je bezig bent met het optimaliseren van de performance van je website.
PHP erik
PHP erik
20 jaar geleden
 
0 +1 -0 -1
Ik vind het anti-AJAX hier een beetje gezeur. Als ik dit scriptje test vind ik het best handig werken. En één record inladen of de hele pagina opnieuw dat kan bij veel berichten best wat schelen. Daarnaast zijn de meeste programmeurs niet intelligent genoeg om zelf de pagina's te cachen waardoor je anders ook weer alles uit de database moet selecteren bij een refresh. Kortom dit (ajax) is efficiënter (mits goed geprogrammeerd, ik heb niet goed gekeken) en het werkt wel lekker toch? Youtube doet het ook, dus de verwachtingen tegenwoordig zijn er wel op afgestemd.

Met andere woorden: ik vind dat hier weer veel mieren geneukt worden.
Leroy Boerefijn
Leroy Boerefijn
20 jaar geleden
 
0 +1 -0 -1
leuk script!

alleen ik druk op verzenden, hij zegt van hij is verzonden maar ik zie mijn bericht nergens.. dan moet ik ook de pagina refreshen om weer een bericht te plaatsen (ook dan is mijn bericht nergens te bekennen)

gr. leroy
Jorn Engelbart
Jorn Engelbart
20 jaar geleden
 
0 +1 -0 -1
@Leroy bij mij doet hij het nog steeds gewoon goed. Welk browser gebruik je?
Leroy Boerefijn
Leroy Boerefijn
20 jaar geleden
 
0 +1 -0 -1
op dit moment heel ff ie7
Henkjan
henkjan
20 jaar geleden
 
0 +1 -0 -1
Grappig scriptje, alleen het AJAX verhaal kan nog wel wat efficienter:
- Bij het refreshen zou je eigenlijk alleen de nieuwe berichten moeten ophalen, niet elke keer alle berichten.
- Jij stuurt je data met alle html tags, vooral bij het aanpassen van layout wordt dit lastiger omda tje dan ook je php pagina moet gaan aanpassen.. beter zou geweest zijn als je je data met xml of json verstuurde..

maar voorderest leuke toepassing van AJAX
Roderik Roderik
Roderik Roderik
20 jaar geleden
 
0 +1 -0 -1
Okee mooie script, maar het voorbeeld werkt niet
Wouter K
Wouter K
20 jaar geleden
 
0 +1 -0 -1
offline
Robin
robin
20 jaar geleden
 
0 +1 -0 -1
hallo,
ik ben niet zo heel goed in dit soort dingen maar hoe installeer ik de gastenboek op mijn site, het moet in de sql, heeft iemand een php bestandje ofzo voor mij,
alvast bedankt, hier mijn test site, http://hyperdex.funpic.de/test/

ik denk zelf dat ik het in phpmyadmin moet inzetten, weet niet of het klopt,alstublieft help u mij.

oke ben wat verder, maar ik schrijf het bericht,maar dan gebruikt hij de linkere deel (waar de text moet stan enz.) msql not connectet , maar heb alles goed ingevullt,want de rechter doet het wel ,(zelfde gegevens ingevoerd)
Jorn Engelbart
Jorn Engelbart
20 jaar geleden
 
0 +1 -0 -1
@robin Heb je in de config.php de gegevens van de connectie wel aangepast???
J V
J V
20 jaar geleden
 
0 +1 -0 -1
Ziet er mooi uit, maar wat ik misschien nog mis is dat je niet kunt zien op welke bladzijde je nou zit. Je moet aan de hand van de datum en tijd kijken op welke pagina je ongeveer zit.
Zou je dit door iets makkelijks kunnen aanpassen?
Nicoow Unknown
Nicoow Unknown
20 jaar geleden
 
0 +1 -0 -1
hij doet t niet.
ik heb gepost, hij zegt van:
je hebt een bericht geplaatst,
maar hij staat er niet.
ook geeft hij de afzender niet weer.
Jeroen v schie
Jeroen v schie
20 jaar geleden
 
0 +1 -0 -1
volgens mij kun je beter dit gebruiken :

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
include ("book.php")
?>



hij laat de berichten niet zien!!!
Jeroen v schie
Jeroen v schie
20 jaar geleden
 
0 +1 -0 -1
gewoon dit in de index.php plaatsen :


zet dan in je body :

<div id="book">
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
include="book.php"
?>


</div>

en nu laat je gastenboek berichten zien op de plaats in het vak
Jorn Engelbart
Jorn Engelbart
20 jaar geleden
 
0 +1 -0 -1
volgens mij kan je in css niet include
maar in je div moet je dan doen
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php include("book.php"); ?>
Jeroen v schie
Jeroen v schie
20 jaar geleden
 
0 +1 -0 -1
ik heb het even geprobeerd en dat doet het ook dusss.....
bijde manieren werken


ik heb niet zoveel verstand van php maar als ie het doet dan doet ie het :D
Jorn Engelbart
Jorn Engelbart
20 jaar geleden
 
0 +1 -0 -1
@jeroen Je moet in je config.php nog even de functie parseubb() kopieren :)
Jorn Engelbart
Jorn Engelbart
20 jaar geleden
 
0 +1 -0 -1
Je moet in je config.php of bovenin je book.php even dit zetten:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?php
    function parseubb($bericht){
   $bericht = str_replace(":)"," <img src=\"images/smilies/smile.gif\" alt=\"Smilie\" />",$bericht);
 $bericht = str_replace("8["," <img src=\"images/smilies/huh.gif\" alt=\"Smilie\" />",$bericht);
 $bericht = str_replace(":o"," <img src=\"images/smilies/ohmy.gif\" alt=\"Smilie\" />",$bericht);
 $bericht = str_replace(";)"," <img src=\"images/smilies/wink.gif\" alt=\"Smilie\" />",$bericht);
 $bericht = str_replace(":P"," <img src=\"images/smilies/tongue.gif\" alt=\"Smilie\" />",$bericht);
 $bericht = str_replace(":p"," <img src=\"images/smilies/tongue.gif\" alt=\"Smilie\" />",$bericht);
 $bericht = str_replace(":D"," <img src=\"images/smilies/biggrin.gif\" alt=\"Smilie\" />",$bericht);
 $bericht = str_replace("8)"," <img src=\"images/smilies/cool.gif\" alt=\"Smilie\" />",$bericht);
 $bericht = str_replace("*-)"," <img src=\"images/smilies/rolleyes.gif\" alt=\"Smilie\" />",$bericht);
 $bericht = str_replace(":?"," <img src=\"images/smilies/dry.gif\" alt=\"Smilie\" />",$bericht);
 $bericht = str_replace(":@"," <img src=\"images/smilies/mad.gif\" alt=\"Smilie\" />",$bericht);
 $bericht = str_replace(":("," <img src=\"images/smilies/sad.gif\" alt=\"Smilie\" />",$bericht);
 $bericht = str_replace("8-)"," <img src=\"images/smilies/unsure.gif\" alt=\"Smilie\" />",$bericht);
 $bericht = str_replace(":["," <img src=\"images/smilies/blink.gif\" alt=\"Smilie\" />",$bericht);
 $bericht = str_replace("[:-]"," <img src=\"images/smilies/ph34r.gif\" alt=\"Smilie\" />",$bericht);
 $bericht = str_replace(";/"," <img src=\"images/smilies/happy.gif\" alt=\"Smilie\" />",$bericht);
 $bericht = str_replace("[-)"," <img src=\"images/smilies/sleep.gif\" alt=\"Smilie\" />",$bericht);
 $bericht = str_replace("(l)"," <img src=\"images/smilies/wub.gif\" alt=\"Smilie\" />",$bericht);
 $bericht = str_replace(":s"," <img src=\"images/smilies/wacko.gif\" alt=\"Smilie\" />",$bericht);
 $bericht = str_replace(":S"," <img src=\"images/smilies/wacko.gif\" alt=\"Smilie\" />",$bericht);
 $bericht = str_replace ("kut","****",$bericht);
 $bericht = str_replace ("fuck","****",$bericht);
 $bericht = str_replace ("fucking","****",$bericht);
 $bericht = str_replace ("facking","****",$bericht);
 $bericht = str_replace ("focking","****",$bericht);
 $bericht = str_replace ("fack","****",$bericht);
 $bericht = str_replace ("fock","****",$bericht);
 $bericht = str_replace ("hoer","****",$bericht);
 $bericht = str_replace ("porno","****",$bericht);
 $bericht = str_replace ("lul","****",$bericht);
 $bericht = str_replace ("neuken","****",$bericht);
 $bericht = str_replace ("verneuk","****",$bericht);
 $bericht = str_replace ("slet","****",$bericht);
 $bericht = str_replace ("teef","****",$bericht);
 $bericht = str_replace ("kanker","****",$bericht);
 $bericht = str_replace ("tering","****",$bericht);
return $bericht;
}

?>
Sam
Sam
20 jaar geleden
 
0 +1 -0 -1
Geen beveiliging tegen spam? Mss Capcha ofzo
Jeffrey
Jeffrey
19 jaar geleden
 
0 +1 -0 -1
Zou het misschien mogelijk zijn om de smilies te kunnen verkrijgen aub ... De downloads werken niet meer.. :$
Jorn Engelbart
Jorn Engelbart
19 jaar geleden
 
0 +1 -0 -1
Smilies komen van dit script: http://www.phphulp.nl/php/scripts/6/251/
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Frank
Frank
18 jaar geleden
 
0 +1 -0 -1
Hoi, beetje laat om hierop te reageren... maar misschien krijgt mijn vraag toch antwoord:
Heb dit na wat aanpassingen en errors (door eigen schuld) goed kunnen gebruiken... alleen het loadimage gaat wel heel snel voorbij, had ik liever wat trager gehad (omdat ik zo'n leuke heb), maar heb geen zin om dat erbij uit te zoeken - zal heus wel te progammeren zijn.
Complimenten en bedankjes voor Jeroen !

Mijn grote vraag is:
in de output (book) van de sql worden de teksten slecht gerendered, die zijn iritant vaag, waardoor het gastenboek met reacties er nogal onprofessioneel uitziet.

Weet iemand hier een oplossing voor ?
thnx !

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. gastenboek-met-ajax

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.