Hoe een guestbook maken?

Pagina: 1
Acties:
  • 3.213 views sinds 30-01-2008

  • Kingskawn
  • Registratie: Oktober 2003
  • Laatst online: 15-11 08:32
Ik ben op zoek naar een methode om een soort guestbook te maken waar de mensen (zonder een account) iets kunnen achterlaten van kritiek enzo.

Dus er niets van inloggen ofzo.

Hoe kan ik tewerk gaan? Ik gebruik Dreamweaver MX en heb al gezocht op google maar niet al te veel gevonden. Althans in het engels :)

  • McKaamos
  • Registratie: Maart 2002
  • Niet online

McKaamos

Master of the Edit-button

ik zou me eens gaan verdiepen in PHP en MySQL databases...
tis opzich heel simpel... je zou zelfs een scripjte kunnen jatten van een site als phpfreakz.nl

Iemand een Tina2 in de aanbieding?


  • Gody
  • Registratie: November 2001
  • Laatst online: 27-11 23:48
Gewoon een gastenboek dus? Dan moet je toch beter zoeken op google lijkt me want die zijn er genoeg te vinden. Zoek eens op 'guestbook' en de module waarvoor je er een zoekt (php, asp, of iets dergelijks). Lijkt me dat je genoeg moet kunnen vinden, of zelf maken...

  • André
  • Registratie: Maart 2002
  • Laatst online: 14:48

André

Analytics dude

Bijna elke site heeft een guestbook/weblog/comment/notes/enz functie en jij kon er niets over vinden? Er gaan minimaal 100.000'en verschillende soorten reactiesystemen rond op het internet en daar kon je ook niets over vinden?

  • Willem
  • Registratie: Februari 2001
  • Laatst online: 01-12 09:45
pivot heeft bijvoorbeeld een hele simpele guestbook/reactie mogelijkheid.
Hoef je zelf niets voor te doen.

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 20-11 11:59

NMe

Quia Ego Sic Dico.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Kingskawn
  • Registratie: Oktober 2003
  • Laatst online: 15-11 08:32
André schreef op dinsdag 23 augustus 2005 @ 23:21:
Bijna elke site heeft een guestbook/weblog/comment/notes/enz functie en jij kon er niets over vinden? Er gaan minimaal 100.000'en verschillende soorten reactiesystemen rond op het internet en daar kon je ook niets over vinden?
Ja ik weet wat je bedoelt maar ik heb de site al gemaakt met dreamweaver in css. Ik hoef enkel nog een guestbook te zetten. Ik bedoel daarmee iets dat geïntegreerd is in de site. Geen venstertje met reclame van een andere site of een link van de site waar de script of code komt. Snap je?

  • Icey
  • Registratie: November 2001
  • Laatst online: 14:38
Ik wil best wel eventjes snel iets maken, en wellicht dat iemand anders het dan eventjes controlleerd.

Maar dan moet je wel zeker weten dat je php / mysql ondersteuning heb, en ook weet hoe je zelf de sql aan kan maken want ik ga niet alles voorkauwen.

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 15:03
Crisp heeft ook een gastenboek in de aanbieding: http://www.xs4all.nl/~crisp/jag/ Misschien heb je daar wel wat aan. Om nou "Just Another Guestbook" te gaan (laten) maken is ook weer zoiets he.

  • cowgirl
  • Registratie: November 2000
  • Laatst online: 17-12-2020
Je moet inderdaad even aangeven welke mogelijkheden je hebt op je webspace. Ik heb m'n gastenboek ook zelf geschreven aan de hand van een voorbeeld op codeproject. Zo zijn er voor elke taal/database wel voorbeelden te vinden die je zo kunt gebruiken of aanpassen aan je eigen wensen.
Wel is het dus noodzakelijk dat je een scriptingtaal op je webspace hebt. De reacties kan je wegschrijven in een database of tekstfile (XML bijvoorbeeld).

Verwijderd

hier kan je een pakketje downloaden wat alleen php nodig heeft. (geen mysql) Dat is naar mijn mening het meest simpele om zoiets te doen.
Uitleg zit erbij.

Succes

  • Icey
  • Registratie: November 2001
  • Laatst online: 14:38
PHP:
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<?php
$server ="";
$database = "";
$gebruikersnaam = "";
$wachtwoord = "";

$dbh = mysql_connect($server, $gebruikersnaam, $wachtwoord) or die ("Sorry, we konden geen verbinding maken met de databaseserver! Controlleer je instellingen.");

$db = mysql_select_db($database) or die ("We konden wel verbinding maken met de databaseserver, alleen konden we de juiste database niet vinden!");

if (isset($_POST['GastenboekSubmit'])){

    $naam = addslashes(htmlspecialchars($_POST['naam']));
    $bericht = addslashes(htmlspecialchars($_POST['bericht']));
    $datum = date("Y-m-d");
    $tijd = date("H:i:s");
    $ip = $_SERVER['REMOTE_ADDR']; 

$test = mysql_query ("INSERT INTO gastenboek (naam,bericht,datum,tijd,ip)) VALUES ('$naam','$bericht', '$datum', '$tijd', '$ip')"); 

if ($test == false){
    echo "We hebben helaas uw bericht niet kunnen plaatsen, probeer het later nog een keer";
}else{
    echo "Bedankt voor uw bericht";
}
}
?>

<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
<table width="100%" border="0" cellspacing="0" cellpadding="5">
    <tr>
        <td width="75" valign="top">Naam:</td>
        <td><input name="naam" type="text" size="25" border="1"></td>
    </tr>
    <tr>
        <td valign="top">Bericht:</td>
        <td><textarea name="bericht" rows="7" cols="38"></textarea></td>
    </tr>
        <tr>
        <td colspan="2"><input type="submit" value="Versturen" name="GastenboekSubmit"> <input type="reset" value="Wis bericht" name="Reset"></td>
    </tr>
</table>
</form>

<?php
$query = mysql_query("SELECT * FROM gastenboek ORDER BY id DESC"); 

$berichten = mysql_num_rows($query); 

if ($berichten > 0) 
{ 
    while ($data = mysql_fetch_array ($query)) 
    { 
        $naam = stripslashes($data['naam']); 
        $datum = $data['datum'];
        $tijd =  $data['tijd'];

    $jaar = substr($datum,0,4);
    $maand = substr($datum,5,2);
    $dag = substr($datum,8,2);
            
    $maand_array = array("januari", "februari", "maart", "april","mei", "juni", "juli", "augustus", "september","oktober", "november", "december");
    $maand = $maand_array[$maand - 1];
            
    $datum = "$dag $maand $jaar";
        
        echo "<i>Door: <b>$naam</b>, op $datum om $tijd<BR><BR></i>"; 

        $bericht = stripslashes($data['bericht']); 
        $bericht = nl2br($bericht); 
        echo "$bericht<BR><HR><BR>"; 
    } 
} 
else 
{ 
    echo "Er zijn geen berichten."; 
} 
?>


Zo, beetje uit mijn hoofd dus er zullen vast wel mooiere oplossingen zijn. Ik ben ook geen php expert dus wellicht dat andere dit kunnen verbeteren, daar kan ik ook van leren :).

En de SQL word dan iets als:

SQL:
1
2
3
4
5
6
7
8
9
CREATE TABLE `gastenboek` (
  `id` int(9) NOT NULL default '0',
  `naam` varchar(255) NOT NULL default '',
  `bericht` text NOT NULL,
  `datum` date NOT NULL default '0000-00-00',
  `tijd` time NOT NULL default '00:00:00',
  `ip` varchar(255) NOT NULL default '',
  PRIMARY KEY  (`id`)
) ;

[ Voor 90% gewijzigd door Icey op 24-08-2005 12:37 ]


  • Kingskawn
  • Registratie: Oktober 2003
  • Laatst online: 15-11 08:32
Verwijderd schreef op woensdag 24 augustus 2005 @ 10:46:
hier kan je een pakketje downloaden wat alleen php nodig heeft. (geen mysql) Dat is naar mijn mening het meest simpele om zoiets te doen.
Uitleg zit erbij.

Succes
Als ik meer info wil zegt hij me dat ik geen toelating heb om op www.codeonrequest.nl te gaan

Verwijderd

Kingskawn schreef op woensdag 24 augustus 2005 @ 11:29:
[...]


Als ik meer info wil zegt hij me dat ik geen toelating heb om op www.codeonrequest.nl te gaan
Ohwww, dan is de site uit de lucht gehaald voor publiek zeker. Maar wat wil je weten?
Je moet in dreamweaver het bestand gastenboek.php in je eigen lay-out zetten en opslaan.
sturen naar je webserver (met php) inclusief het bestand gastenboek.txt.
daarna geef je het chmod commando voor het gastenboek.txt 777 (ofwel alle rechten voor het tekstbestand)
Voila, het werkt

Roep maar als het niet lukt.

  • Kingskawn
  • Registratie: Oktober 2003
  • Laatst online: 15-11 08:32
Verwijderd schreef op woensdag 24 augustus 2005 @ 11:34:
[...]
daarna geef je het chmod commando voor het gastenboek.txt 777 (ofwel alle rechten voor het tekstbestand)
Voila, het werkt

Roep maar als het niet lukt.
Ja het is juist dat CHMOD commando dat ik niet goed snap. In de readme staat er een link maar die stuurt me telkens naar codeonrequest waar ik geen toegang heb :|

"Stel gastenboek.txt in met het commando CHMOD 666. Zie deze pagina voor meer informatie over chmod"

  • cowgirl
  • Registratie: November 2000
  • Laatst online: 17-12-2020
[google=chmod ftp]

Verwijderd

CHMOD is een commando voor linuxservers om rechten van bestanden toe te kennen. het bestaat altijd uit 3 cijfers waarbij het eerste cijfer gaat om de eigenaar, tweede cijfer de gebruiker en derde cijfer de groep. hoe hoger het cijfer des te meer rechten heb je.

7= lezen, schrijven en uitvoeren
6= lezen, schrijven
4= lezen

Andere weet ik niet precies maar feit is dus dat je via je FTP programma de rechten via chmod kan wijzigen. Zelfs via internet-explorer>>>FTP website>>>betreffende bestand opzoeken>>>rechtermuisklik>>>eigenschappen>>>rechten aanvinken (minimaal lezen en schrijven voor alle groepen, gebruikers en eigenaar)

succes

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 15:03
@icey: zoek eens op SQL insertion attack. Aanrader voor de meelezers: gebruik dit script niet meteen op je site. Verder is info over register_globals ook wel van toepassing.

  • cowgirl
  • Registratie: November 2000
  • Laatst online: 17-12-2020
Verwijderd schreef op woensdag 24 augustus 2005 @ 12:05:
7= lezen, schrijven en uitvoeren
6= lezen, schrijven
4= lezen
het is een optelsom. Lezen = 4, schrijven = 2 en uitvoeren = 1. Lezen+schrijven+uitvoeren = 4+2+1 = 7, lezen+uitvoeren = 4+1 = 5, enz.

Verwijderd

cowgirl schreef op woensdag 24 augustus 2005 @ 12:07:
[...]

het is een optelsom. Lezen = 4, schrijven = 2 en uitvoeren = 1. Lezen+schrijven+uitvoeren = 4+2+1 = 7, lezen+uitvoeren = 4+1 = 5, enz.
Thanks! ;)

  • Icey
  • Registratie: November 2001
  • Laatst online: 14:38
djluc schreef op woensdag 24 augustus 2005 @ 12:06:
@icey: zoek eens op SQL insertion attack. Aanrader voor de meelezers: gebruik dit script niet meteen op je site. Verder is info over register_globals ook wel van toepassing.
Ik ben geen expert dus alle hulp is welkom. Maar als ik stripslashes gebruik voor alles posts die ik in de database gebruik dan heb ik daar toch weinig last van?

code:
1
$naam = stripslashes($_POST['naam']);


Of maar ik hier een denkfout?

  • Kingskawn
  • Registratie: Oktober 2003
  • Laatst online: 15-11 08:32
Dank je voor de info.

Zal dit allemaal is uittesten van zodra ik thuis ben. Kan niet op port 21 en andere, zit op 't werk :-)

  • Yoozer
  • Registratie: Februari 2001
  • Laatst online: 03-08 17:53

Yoozer

minimoog

Icey schreef op woensdag 24 augustus 2005 @ 12:23:
Ik ben geen expert dus alle hulp is welkom. Maar als ik stripslashes gebruik voor alles posts die ik in de database gebruik dan heb ik daar toch weinig last van?
Nee. Input is nooit te vertrouwen, dus smijt je alles weg waarvan je zeker weet dat het er niet thuishoort. Voor een naam is dat puur karakters - cijfers, leestekens, underscores, ampersands - hoort er allemaal niet in, dus weg er mee. Voor een e-mail adres zijn dat letters, cijfers, underscores, welgeteld 1 enkele apestaart en een aantal punten groter dan nul. De rest moet er uit.
Stripslashes zorgt er alleen voor dat input die automagisch voorzien wordt van slashes (dus wat betreft single en double quotes) er van ontdaan wordt. Dat is bij lange na nog niet genoeg met wat je er allemaal in zou kunnen mikken.
Of maar ik hier een denkfout?
Ik denk dat je het misschien iets te rozig in ziet (wie zou er nou een guestbook mollen?). Misschien ben ikzelf te paranoide ;).

(wannabe mod-modus)
Kingskawn schreef op woensdag 24 augustus 2005 @ 10:28:
Ja ik weet wat je bedoelt maar ik heb de site al gemaakt met dreamweaver in css.
Ken uw afkortingen; je hebt je site gewoon in HTML gemaakt, en de opmaak is dmv CSS geregeld.
Ik hoef enkel nog een guestbook te zetten. Ik bedoel daarmee iets dat geïntegreerd is in de site.
Waarmee je bedoelt dat de opmaak er net zo uit ziet als de rest. De code boeit namelijk niet.
Geen venstertje met reclame van een andere site of een link van de site waar de script of code komt. Snap je?
Als je die code kunt kopieren van een bestaande site, dan is het alleen beleefdheid die je zachtjes dwingt om credits aan de originele ontwerper te geven. Wil je dat niet, dan moet je zelf aan de slag.

[ Voor 30% gewijzigd door Yoozer op 24-08-2005 12:31 ]

teveel zooi, te weinig tijd


  • Icey
  • Registratie: November 2001
  • Laatst online: 14:38
Yoozer, bij wat ik net gemaakt heb gaat het puur om simpelheid. Uiteraard zou je iets als onderstaande kunnen schrijven om dingen te controlleren op geldige (nuttige) input.

PHP:
1
2
3
4
5
6
7
8
9
    if (eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$",$Email)) 
    { 
        $geldig = "ja"; 
    } 
    else 
    { 
        $geldig = "nee"; 
    } 
    return $geldig;


Maar het gaat mij om veiligheidtechnische gezien. Is addslashes niet voldoende om om een sql injection te voorkomen?

  • McKaamos
  • Registratie: Maart 2002
  • Niet online

McKaamos

Master of the Edit-button

Yoozer schreef op woensdag 24 augustus 2005 @ 12:28:
[...]
Nee. Input is nooit te vertrouwen, dus smijt je alles weg waarvan je zeker weet dat het er niet thuishoort. Voor een naam is dat puur karakters - cijfers, leestekens, underscores, ampersands - hoort er allemaal niet in, dus weg er mee. Voor een e-mail adres zijn dat letters, cijfers, underscores, welgeteld 1 enkele apestaart en een aantal punten groter dan nul. De rest moet er uit.
Stripslashes zorgt er alleen voor dat input die automagisch voorzien wordt van slashes (dus wat betreft single en double quotes) er van ontdaan wordt. Dat is bij lange na nog niet genoeg met wat je er allemaal in zou kunnen mikken.

[...]

Ik denk dat je het misschien iets te rozig in ziet (wie zou er nou een guestbook mollen?). Misschien ben ikzelf te paranoide ;).

(wannabe mod-modus)

[...]

Ken uw afkortingen; je hebt je site gewoon in HTML gemaakt, en de opmaak is dmv CSS geregeld.

[...]

Waarmee je bedoelt dat de opmaak er net zo uit ziet als de rest. De code boeit namelijk niet.

[...]

Als je die code kunt kopieren van een bestaande site, dan is het alleen beleefdheid die je zachtjes dwingt om credits aan de originele ontwerper te geven. Wil je dat niet, dan moet je zelf aan de slag.
htmlentities() is ook wel handig... alle speciale tekens die ingevoerd worden, worden daarmee omgezet naar html karaktercodes (zoals " voor een aanhalingsteken, en > voor een < )

Iemand een Tina2 in de aanbieding?


  • Kingskawn
  • Registratie: Oktober 2003
  • Laatst online: 15-11 08:32
Yoozer schreef op woensdag 24 augustus 2005 @ 12:28:

Ken uw afkortingen; je hebt je site gewoon in HTML gemaakt, en de opmaak is dmv CSS geregeld.

Yep dat is het ;-))


Waarmee je bedoelt dat de opmaak er net zo uit ziet als de rest. De code boeit namelijk niet.

Het moet er enkel uitzien zoals de rest. Simpel en zonder al die troep met links enzo


Als je die code kunt kopieren van een bestaande site, dan is het alleen beleefdheid die je zachtjes dwingt om credits aan de originele ontwerper te geven. Wil je dat niet, dan moet je zelf aan de slag.

Ja dat begrijp ik. Maar in de source van de pagina zet ik er altijd de credits bij. Het is dan wel niet zichtbaar voor de gewone user maar wel voor diegene die kijkt naar de source van de pagina :-)

[ Voor 6% gewijzigd door Kingskawn op 24-08-2005 12:47 ]


Verwijderd

Kingskawn schreef op woensdag 24 augustus 2005 @ 12:24:
Dank je voor de info.

Zal dit allemaal is uittesten van zodra ik thuis ben. Kan niet op port 21 en andere, zit op 't werk :-)
Je kunt chmod ook via ssh uitvoeren goed programma voor ssh verbinding is maggy

  • André
  • Registratie: Maart 2002
  • Laatst online: 14:48

André

Analytics dude

Maar goed, deze gaat nu dus dicht. Het idee is wel duidelijk en er is genoeg over te vinden.
Pagina: 1

Dit topic is gesloten.