Gastenboek

Door Milo , 18 jaar geleden, 14.720x bekeken

Ik ga proberen jullie een gastenboek te leren maken want, veel mensen willen dit als eerste weten en er zitten veel soorten dingen in

Gesponsorde koppelingen

Inhoudsopgave

  1. Schrijven
  2. Voorwoord
  3. Lezen
  4. Slot
  5. Database
  6. Ubb

 

Er zijn 47 reacties op 'Gastenboek'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
- Ariën  -
- Ariën -
18 jaar geleden
 
0 +1 -0 -1
- Wat als ik nou zeg:
Lekkere site? Juist, dan wordt het aangepast naar le**ere site.
- En wat als ik mijzelf nou NULL noem, of 0? Dat mag dan niet, vanwege je controle is empty(). Check php.net maar.
Milo
Milo
18 jaar geleden
 
0 +1 -0 -1
OEPS...
dan halen we die er tussenuit en gebruiken we i.p.v empty, !isset
en voorderest nog op of aanmerkingen, heb hem helaas niet kunnen testen maar als ik thuis ben ga ik dat wel even doen...

EDIT
kk verwijdert uit ubb parser
empty veranderd naar !isset


18 jaar geleden
 
0 +1 -0 -1
Kijk ook eens naar trim.
Eregi is oud, gebruik liever preg_*.
XSS is mogelijk.
Wat is het nut aan zo'n woord filter? Soms kan je toch echt van die dingen nodig hebben zoals: 'Ik heb mijn vriendje (ja ik ben homo) op deze site gewezen blablala'.

Moet dit een tutorial voorstellen?
Dit is gewoon een bagger script. En zeker geen tutorial, neem nou dit 'Spreekt wel voor zich' met daaronder negentig regels code...
Milo
Milo
18 jaar geleden
 
0 +1 -0 -1
@ Karl, even ten eerste: maakt me niet uit of je home of hetro bent ieder voor zich.
Nu tutorial:
Zou je kunnen onderbouwen waarom het script bagger is, ik zal proberen een goede uitleg te geven... en die dus gaan aanpassen.


18 jaar geleden
 
0 +1 -0 -1
Quote:
Milo schreef op 27.08.2009 20:15
@ Karl, even ten eerste: maakt me niet uit of je home of hetro bent ieder voor zich.

Ik ben ook niet home of hetero. Het is alleen maar een voorbeeld dat dat woordfilter niet zo veel nut heeft.

Waarom het script bagger is heb je ook al in me vorige post kunnen lezen, maar ook omdat je alles selecteert en geen volgorde aanhoud. Ik denk dat jij denkt dat het op id gaat, dat kan je niet als volgorde gebruiken.
Verder vind ik het bagger omdat je dit hier bij tutorials plaatst terwijl het dus niet een tutorial is. Als het nog een vrij uitgebreid / lastig script was, ok?, maar niet zoiets simpels als dit.
Milo
Milo
18 jaar geleden
 
0 +1 -0 -1
Okok, sorry verkeerd gelezen.

Heb je wel tips voor hoe ik het van bagger naar normaal kan maken?

gr, milo

Ik doe dan wel via de raport functie zodat hij weg kan ;)
Victor Php
Victor Php
18 jaar geleden
 
0 +1 -0 -1
@Karl

Je post zelf niks en bij iedere script of tut zeg je: "Bagger!"
Wat heeft dat voor nut.. Vertel dan hoe hij het kan verbeteren etc.


18 jaar geleden
 
0 +1 -0 -1
Quote:
victor schreef op 27.08.2009 21:33
@Karl

Je post zelf niks en bij iedere script of tut zeg je: "Bagger!"
Wat heeft dat voor nut.. Vertel dan hoe hij het kan verbeteren etc.

Jammer genoeg is het per definitie zo dat negativiteit langer onthouden blijft dan positiviteit.
Het is dus niet waar dat ik dat altijd doe, in veel gevallen wel.
Verder heb ik ook gewoon aangegeven wat er mis is.
Jelmer -
Jelmer -
18 jaar geleden
 
0 +1 -0 -1
@Karl, zeggen wat er fout is al goed, maar zeggen hoe je het moet verbeteren (even wijzen op de goeie richting) is nog beter :)

Als eerste wil ik wel even kwijt dat dit script al een stuk beter is dan menig gastenboek in de scriptlib.

Er is nog wel wat ruimte voor verbetering. Zo zou je die hele kuil van if/else statements vlak kunnen trekken door een functie te gebruiken (en die te stoppen via return) of door een array met fouten bij te houden (is de array leeg, dan zijn er geen fouten. Heeft als bijkomend voordeel dat je meerdere fouten tegelijkertijd kan opvangen) Ook heb je hier en daar nog en paar syntax foutjes (Pagina Schrijven heb je een enkel is-gelijkteken staan waar een dubbele moet en je mist een } aan het eind)

Je zou je tutorial nog wat meer tutorial kunnen maken door op iedere pagina even uit te leggen wat je gaat doen, en waarom zo. Hoe dat precies gaat hoef je niet zo grondig uit te leggen, al is het wel leuk als je bijvoorbeeld op de uitlees-pagina zou verwijzen naar deze tutorial over database uitlezen en bij het invoeren kan je verwijzen naar de tutorial die uitlegt waarvoor die mysql_real_escape_string-stukjes zijn.

Dat de ubb-parser slecht is is waar, die zou je beter kunnen vervangen door eentje die beter om kan gaan met incomplete tags (probeer in die van jouw maar eens [b] te zetten, alles eronder wordt vet gedrukt). Die staat vast wel in de scriptlib hier. Voor het printen van de datum/tijd kan je mooi strtotime en strftime gebruiken.
- SanThe -
- SanThe -
18 jaar geleden
 
0 +1 -0 -1
Paar opmerkingen:

if(check_mail($_POST['email']) = FALSE)
= is een toekenning
== is een vergelijking
Maar je geeft true of false return dus heb je geen vergelijking nodig.
Kan gewoon zo: if(!check_mail($_POST['email']))

Er zit geen submit bij het formulier.

Foutafhandeling query's ontbreekt soms.

$datum = explode('-', $record['bericht']);
De datum staat daar niet in maar heeft een eigen veld in de database.

Verder diverse taal/spellingsfouten.
Victor Php
Victor Php
18 jaar geleden
 
0 +1 -0 -1
Ik ben nu je tut aan het lezen.. Wat me meteen opviel is de spelling -,-..
Even verder lezen...

Ik ben nu bij databases en ik denk dat niemand een e-mail heeft met 150 tekens...;) Ik doe meestal 50 ofzoiets..

'k Heb niks meer toe te voegen op SanThe...;)..
Jelmer -
Jelmer -
18 jaar geleden
 
0 +1 -0 -1
die 150 kan geen kwaad voor diegenen die wel een langer emailadres hebben. voornaam+achternaam@beroep+bedrijfsnaam.com, daarmee zou je wel over 50 kunnen komen. En waarom zou je dat tegenhouden? Het is een VARCHAR veld, het is niet dat 150 meer ruimte in neemt dan 50 voor kleinere e-mailadressen...
Milo
Milo
18 jaar geleden
 
0 +1 -0 -1
Ik ga bij mijn tutorial eerst even fouten er uit halen, en kijken of het type fouten zijn of dat ik weer eens niet weet of je d / t moet gebruiken XD sorry ben daar heel slecht in.

EDIT
Een aantal kleine foutjes er uit gehaald wat teksten over geschreven in word etc.
nu het verhaal voor de check nog.

gr, milo
Steen
steen
18 jaar geleden
 
0 +1 -0 -1
verwijder de scheldwoordenfilter, dingen zijn altijd te omzeilen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
h0m0
hom0
h0mo
h.o.m.o
h/o/m/o
h o m o
// etc.


Edit: een beter oplossing zou ik persoonlijk vinden is een systeem dat administrators/moderators bericht geeft van een bericht dat mogelijk scheldwoorden bevat en die dan te kunnen verwijderen of iets dergelijks.
Milo
Milo
18 jaar geleden
 
0 +1 -0 -1
hmm, ga ik overnadenken....
Thumb nail
Thumb nail
18 jaar geleden
 
0 +1 -0 -1
ik bedoel,
een gastenboek is voor het algemeen een plek waar je je mening kunt neerpleuren toch ?
wat je er van vindt enzo.
als je alle negatieve woorden eruit filtert ,kanker,kut etc. (ben niet pro-kanker ofzo, maar als vb.)
dus als ik zeg : "wat een k*t site, (evt. nog: "omdat ....")"
komt er te staan wat een *** site,
ik bedoel, dan is het net een site van een kerk organisatie...
"ooh, vies woordje, *PIEEP*" :P

filter eruit, miss beter scripten op sommige plekken
Milo
Milo
18 jaar geleden
 
0 +1 -0 -1
Nee, ok? maar sommigen zijn bang om uit gescholden te worden etc... en het is een feit dat er tegenwoordig veel word gescholden via internet aangezien je dan een soort van anoniem bent niemand weet wie jij bent je kan zo een andere naam invullen lekker makkelijk.

Maar je kan hem zelf verwijderen...
Victor Php
Victor Php
18 jaar geleden
 
0 +1 -0 -1
Owhjaa... Bij databases.. Niet iedereen heeft daar localhost staan;)
Milo
Milo
18 jaar geleden
 
0 +1 -0 -1
oh okok... zal weg halen
Jesper Diovo
Jesper Diovo
18 jaar geleden
 
@Milo: Dan moeten ze maar niet op internet gaan. Ook in de echte wereld kan iemand vreemds voor je neus gaan staan en je de huid vol schelden. Je moet gewoon goede mensen rond hebben lopen die dat soort dingen in toom kunnen houden, plus de mensen die zich niet kunnen gedragen 'buiten' zetten.

Een scheldwoordenfilter geeft altijd zo'n stempel op een forum. Je mag toch niet zo vrij zijn in alles wat je wilt zeggen dat er eigenlijk verwacht wordt. Het is immers een forum, en daarop mag gediscussieerd worden. Bij discussies kunnen de gemoederen hoog oplopen en kunnen dus wat scheldwoordjes over en weer gaan.
Victor Php
Victor Php
18 jaar geleden
 
0 +1 -0 -1
Een scheldwoordenfilter voor echt 'erge' woorden begrijp ik.. Maar bijvoorbeeld trekken kan bijvoorbeeld ook zijn:

Dan trekken ze allemaal de koelkast open..:P (Stomme zin i know ^^)
Roel -
Roel -
18 jaar geleden
 
0 +1 -0 -1
Die config.php is echt van mijn gastenboek gejat vriend, je hebt alleen de tekst van or die() gewijzigd, vergelijk maar...


18 jaar geleden
 
1 +1 -0 -1
@Roel: Jezus gast, dat slaat ECHT nergens op. Een simpele verbinding naar een database en meer niet..

(Bedoel je het serieus, dan zeg ik: FAAL. Maak je een geintje ken ik er nog wel om lachen...)
Milo
Milo
18 jaar geleden
 
0 +1 -0 -1
@Roel die config heb ik al vanaf ehm vorig jaar kerst en die gebruik ik voor iedere pagina van mijn site... :S
Ivo K
Ivo K
18 jaar geleden
 
0 +1 -0 -1
@Roel,

Zelf al heeft hij het van jouw script, dan vind ik het alsnog echt extreem zielig als je hierop gaat mieren****** (scheldwoorden filter: aan :-) ). Als iemand nou net als ik

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php

# Zet sessies aan.
session_start () ;

?>


in zijn script heeft staan dan ga ik daar niet over zeuren, want er is zover ik weet geen equivalent van session_start. Datzelfde geldt voor die 6 regeltjes.

Ik zou overigens blij zijn dat hij in je script heeft gekeken en het kennelijk bruikbaar vond ;-)

Tenzij je een grapje maakte, natuurlijk ;-)
Jesper Diovo
Jesper Diovo
18 jaar geleden
 
0 +1 -0 -1
Roel schreef op 30.08.2009 23:53:
Die config.php is echt van mijn gastenboek gejat vriend, je hebt alleen de tekst van or die() gewijzigd, vergelijk maar...

Sorry, dit vind ik echt d? reactie van het jaar. Kom op zeg, een config... Die ziet er bij iedereen eigenlijk zo uit. Ookal zijn de variabele namen en het commentaar hetzelfde...
Roel -
Roel -
18 jaar geleden
 
0 +1 -0 -1
Dan heb ik die reactie van het jaar toch in ieder geval op m'n naam staan, zelfs al was het een grap ;-)
Frits
frits
18 jaar geleden
 
0 +1 -0 -1
ik heb geen idee wat je nou eigenlijk met de SQL moet doen:S


18 jaar geleden
 
0 +1 -0 -1
Quote:
frits schreef op 01.09.2009 07:50
ik heb geen idee wat je nou eigenlijk met de SQL moet doen:S

Kijk, daarom vind ik dit nou een slechte tutorial (en dus bagger). Omdat het gewoon een ophoping van code is. Er wordt niks uitgelegd (of zelfs niet naar een of andere site verwezen waar wel wat uitgelegd wordt).
Frits
frits
18 jaar geleden
 
0 +1 -0 -1
maar, ik ben dan ook ??n van de beginners (naast de beginners)...

En ik hoop hier uitleg over te krijgen^^ xD
Roel -
Roel -
18 jaar geleden
 
0 +1 -0 -1
www.phptuts.nl

Edit:
Ik zie nu pas dat je een datum in een UBB parser gaat zetten. Dat slaat dus nergens op. Zet de maanden in een array en echo de huidige maand.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$maanden
= Array("januari", "februari", "maart", "april", "mei", "juni", "juli", "augustus", "september", "oktober", "november", "december");
$maand = $maanden[date('n') - 1];
?>
Dick oo
dick oo
18 jaar geleden
 
0 +1 -0 -1
@Roel, de kans dat je die string-namen gelijk hebt is wel groter dan 50%, het is toch ook logisch dat je dan $host, $user, $pass en $dtb (nouja die dan niet heel erg) gebruikt.
ik gebruik zelf ook $host, $user en $pass, en ik heb jouw script nog nooit gezien.
je zet er dan tog ook niet $jemoeder, $ik en $beveiliging ofzo neer xD
Computer
Computer
18 jaar geleden
 
0 +1 -0 -1
Er staat geen } aan het eind van Schrijven. Niet zo mooi eerlijk gezegd, er kan veel aan opgemerkt worden, zie hierboven^^
Pieter ten Boomen
Pieter ten Boomen
18 jaar geleden
 
0 +1 -0 -1
waarom krijg ik deze melding bij de schrijf.php pagina:

Parse error: syntax error, unexpected $end in /home/a1540836/public_html/inhetgastenboekschrijven.php on line 108

ohw, dat een }

oke leuk maar beter edit je dat ff voor de mensen die nog minder van php en shit afweten dan ik:D
Milo
Milo
18 jaar geleden
 
0 +1 -0 -1
is ge?dit
Toby hinloopen
toby hinloopen
18 jaar geleden
 
0 +1 -0 -1
@hoithebest:

lol, mafkees jij :P

En waar maak je je druk om? Beter goed gejat dan slecht gescript.
Toby hinloopen
toby hinloopen
18 jaar geleden
 
0 +1 -0 -1
@milo:
je BBcode parser zal hard falen wanneer eimand bijv. alleen neerzet zonder .

Hier is ergens een hele uitgebreide parser van Richard. Misschien die ertussen gooien?

En dat scheldwoordenfilter is echt nutteloos :P

+ je kan ook meerdere string's replacen in 1 functie. Gewoon een array met strings meegeven, bijv.:

str_replace(array('kut','lul'),'***',$input);

Zowel kut en lul worden dan vervnagen door ***
Milo
Milo
18 jaar geleden
 
0 +1 -0 -1
Woordfilter maar even vermoord :D

Maar eingelijk vrij weinig tips voor derest van het script, functionaliteit etc.?
iemand hier nog wat over kwijt?


18 jaar geleden
 
0 +1 -0 -1
Plaats een online voorbeeld (en vermeld deze op de eerste pagina, voorwoord en slot) zodat we hem makkelijk kunnen testen. Heb zo'n vermoeden dat er no wel wat bugs in zitten ;-)
Milo
Milo
18 jaar geleden
 
0 +1 -0 -1
Ik heb alleen een echt gastenboek wat ik gebruik dus dan moet ik eerst namen etc gaan veranderen....
Maar ik zal zondag even kijken,
Gr, Milo
Maikel
maikel
18 jaar geleden
 
0 +1 -0 -1
Hallo iedereen
ik heb een vraag k heb alles gedaan wat hier staat en als k hem nu op de site zet dan krijg ik alleen maar witte pagina´s met niks erop
kan iemand me helpen
gr maikel
Mr.Ark
Mr.Ark
18 jaar geleden
 
0 +1 -0 -1
Quote:
ik heb een vraag k heb alles gedaan wat hier staat en als k hem nu op de site zet dan krijg ik alleen maar witte pagina´s met niks erop


Zet je errors aan zou ik zeggen.

Zet het volgende eens in je Config.php en kijk dan eens wat je op je scherm ziet.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?PHP

ini_set ('display_errors', 1);
error_reporting(E_ALL);

?>
L B
L B
18 jaar geleden
 
Hij is niet echt goed beveiligd heh? Ik zou bij de invoer van de gegevens dit erbij zetten:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
 htmlentities($_POST['veld'], ENT_QUOTES) // bij textarea's
htmlspecialchars($_POST['veld'], ENT_QUOTES) // bij text
?>
Joren de Wit
Joren de Wit
18 jaar geleden
 
@L Bijveld: doe dat alsjeblieft niet! Waarom zou je je data verkloten voordat je e.e.a. naar de database schrijft?

Deze functies gebruik je alleen als je content naar de browser verstuurt en wilt voorkomen dat eventuele HTML code uitgevoerd ipv weergegeven wordt. En zelfs dan is het voldoende om 1 van de 2 te gebruiken, beide is nutteloos.

Als je data naar de database schrijft, doe dat dan zo puur mogelijk. Gebruik enkel mysql_real_escape_string() (of andere variant) om SQL injectie te voorkomen. Op die manier kun je de data in je database voor meer doeleinden dan alleen HTML weergave gebruiken!
Rick  -
Rick -
17 jaar geleden
 
0 +1 -0 -1
sorry voor reactie maar ik kan het niet laten hoe erg ik je wil bedanken voor deze tutorial het is zo makkelijk aanpasbaar ik heb het script nu al op 6 verschillende manieren in me site verwerkt bijna heel me site loopt er op met posten enzo heel erg bedankt ondanks kleine foutjes is het een aanrader!
Milo S
Milo S
17 jaar geleden
 
0 +1 -0 -1
@ Rick; Fijn dat je zo positief bent hierover! Altijd leuk om te horen. Zelf vind ik nog wel heel wat te verbeteren hoor, 'k ben ook vooruit gegaan in 1 jaar, helaas kan ik dit alleen niet meer doen aangezien dit mijn oude account betreft.

Nog veel plezier met de code man!
Gr,
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Jordi Kroon
Jordi Kroon
17 jaar geleden
 
0 +1 -0 -1
@rick :

De functie ereg is verouderd , Dus af te raden niet meer te gebruiken

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

Inhoudsopgave

  1. Schrijven
  2. Voorwoord
  3. Lezen
  4. Slot
  5. Database
  6. Ubb

Labels

  • Geen tags toegevoegd.

PHP tutorial opties

 
 

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.