Home    Zoeken Zoeken    Leden Leden    Gebruikerspaneel Gebruikerspaneel    Inloggen Inloggen  
Het is nu 07 okt 2024 06:48

Alle tijden zijn GMT + 1 uur [ Zomertijd ]




Plaats een nieuw onderwerp Antwoord op onderwerp  [ 1 bericht ] 
Auteur Bericht
 Berichttitel: Script: Gastenboek
BerichtGeplaatst: 29 aug 2004 10:37 
Offline
Icehosting Staff
Avatar gebruiker

Geregistreerd: 08 jul 2004 09:35
Berichten: 249
Note: Gepost door Cyberboy, maar in verkeerd forum.


Citaat:
Als je wil hier heb je een gastenboek scriptje..
moet je ook ff dit doorlezen.. en de rest
------------------------------
Ik hoop dat je zelf kan scripten want..
Er zitten veeeel Bugs in
------------------------------

Het script bestaat uit 3 paginas:

-config.php (MySQL gegevens, CSS stijlen, Waardes zoals $max, $tijd_cookie,...)
-lezen.php (De pagina waar de berichten opkomen)
-schrijven.php (De pagina waar men een bericht kan schrijven)

Verder zijn er nog 8 Smileys die in de map "smileys/" komen te staan.
De smileys kan je downloaden op: http://www.sitemasters.be/test/gastenboek/smileys.zip

Je moet ook een TABEL "Gastenboek" aanmaken in de Database:

CREATE TABLE gastenboek (
id int(5) NOT NULL auto_increment,
naam varchar(20) NOT NULL default '',
emailadres varchar(100) NOT NULL default '',
website varchar(100) NOT NULL default '',
bericht text,
datum varchar(11) NOT NULL default '',
tijd varchar(5) NOT NULL default '',
PRIMARY KEY (id)
) TYPE=MyISAM;

------------------
nu het scripje
------------------

Code:
##########
config.php
##########

<?php
//Deze gegevens correct veranderen !!!
mysql_connect ("localhost", "Gebuikersnaam", "Wachtwoord");
mysql_select_db ("Database_naam");

//Aantal berichten tonen per pagina:
$max=10;
//Na hoeveel seconden men terug een bericht kan plaatsen
//Staat nu op 1 dag
$seconden=60*60*24;
$tijd_cookie = time() + $seconden;
?>
<style type="text/css">
/*Je kan hier nog meerdere stijlen toevoegen*/
.gastenboek { font-family: Verdana; color: #000000; font-size: 11px; background: #FFFFFF;}
a:link { color: #0000FF; text-decoration: none; }
a:active { color: #0000FF; text-decoration: none; }
a:visited { color: #0000FF;text-decoration: none; }
a:hover { color: #FF0000;text-decoration: none; }
textarea, select, input { background-color: #FFFFFF; border-color: #000000; border-style: solid;
border-width: 1px; color: #000000; font-family: Arial, Helvetica, sans-serif; font-size: 10pt; }
</style>

############
schrijven.php
############

<?php
ob_start();
?>
<script language="JavaScript">
//Deze functie hebben we later nodig voor de UBB code
function smiley() {
return;
}
function Invoegen(Smiley) {
var edit;
var HuidigeTekst = document.gastenboek.bericht.value;
edit = HuidigeTekst+Smiley+" ";
document.gastenboek.bericht.value=edit;
document.gastenboek.bericht.focus();
return;
}
</script>
<?php
//De config includen voor MySQL gegevens en opmaak van de gastenboek
include ("config.php");

//Als men op Submit gedrukt heeft
if ($_POST['Submit']) {

//Deze functie gebruiken we later om te checken of het e-mailadres wel
//bestaat zodat mensen geen fake e-mailadres kunnen ingeven

function check_email($address) {
list($local, $host) = explode("@", $address);
$pattern_local = "^([0-9a-z]*([-|_]?[0-9a-z]+)*)(([-|_]?)\.([-|_]?)[0-9a-z]*([-|_]?[0-9a-z]+)+)*([-|_]?)$";
$pattern_host = "^([0-9a-z]+([-]?[0-9a-z]+)*)(([-]?)\.([-]?)[0-9a-z]*([-]?[0-9a-z]+)+)*\.[a-z]{2,4}$";
$match_local = eregi($pattern_local, $local);
$match_host = eregi($pattern_host, $host);

if($match_local && $match_host) {
return 1;
} else {
return 0;
}
}

//We gaan controleren of alle velden zijn ingevuld en dat e-mailadres bestaat
//Ook checken we of dat de gebruiker al een bericht heeft gepost om Spam te vermijden

if (!trim($_POST['naam']))
$error="Je moet je naam invullen";
elseif(!check_email($_POST['emailadres']))
$error="Je moet een geldig e-mailadres invullen";
elseif (!trim($_POST['bericht']))
$error="Je moet een bericht invullen";
elseif ($_COOKIE[Gastenboek] == "1") {
$error="Je kan geen bericht posten omdat je er al één hebt gepost";
}
//Als er een veld niet is ingevuld of wanneer het e-mailadres niet bestaat komt er een error

if ($error != "") {

echo "
<center>
<table class=\"gastenboek\" width=\"100%\" border=\"1\" cellspacing=\"0\" cellpadding=\"2\">
<tr>
<td align=\"center\">
<b>$error</b>
<br>
<form method=\"post\" action=\"javascript:history.go(-1)\">
<input type=\"submit\" name=\"Terug\" value=\"Terug\">
</form>
</td>
</tr>
</table>
</center>";

//Als alles correct is ingevuld gaan we over naar het posten van de gegevens naar de database
} else {

//De datum en de tijd maken we aan door de functie date()

$datum = date("Y-m-d");
$tijd = date("H:i:s");

//We maken een query en voeren die uit door mysql_query()

$query="INSERT INTO gastenboek (naam, emailadres, website, bericht, datum, tijd)
VALUES ('$_POST[naam]', '$_POST[email=adres]', '$_POST[website]', '$_POST[bericht]', '$datum', '$tijd')";

mysql_query ($query) or die (mysql_error());

//Om SPAM te vermijden maken we een COOKIE (zie config)
setcookie(Gastenboek,"1",$tijd_cookie);

//Na het verzenden sturen we de gebruiker terug naar het gastenboek

header ("location: lezen.php");

}

//Als men nog niet op Submit gedrukt heeft krijgt men natuurlijk het formulier te zien
} else {
?>
<center>
<form name="gastenboek" action="" method="post">
<table class="gastenboek" width="100%" border="1" cellspacing="0" cellpadding="2">
<tr>
<td height="20" colspan="2"><strong>Bericht posten in het gastenboek:</strong></td>
</tr>
<tr>
<td width="44%">Naam:</td>
<td width="56%">
<input name="naam" type="text" id="naam" size="30" maxlength="50">
</td>
</tr>
<tr>
<td>Website:</td>
<td>
<input name="website" type="text" id="website" value="http://" size="30" maxlength="50">
<br>
<font color="#FF0000">(<strong>niets invullen</strong> als je<strong> geen website</strong> hebt)</font>
</td>
</tr>
<tr>
<td>E-mail adres:</td>
<td>
<input name="emailadres" type="text" id="emailadres" size="30" maxlength="50">
</td>
</tr>
<tr>
<td align="center" colspan="2">Bericht:</td>
</tr>
<tr>
<td align="center" colspan="2">
<table width="27%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="center" height="21" colspan="4"><small><i><b>Ubb-code:</b></i></small>
</td>
</tr>
<tr>
<td align="center" height="27" colspan="4">
<input type="button" name="b" value="B" style="font-weight: bold; width: 30px;" onClick="javascript:Invoegen('...');">
<input type="button" name="u" value="U" style="text-decoration: underline; width: 30px;" onClick="javascript:Invoegen('...');">
<input type="button" name="i" value="I" style="font-style: italic; width: 30px;" onClick="javascript:Invoegen('...');">
<input type="button" name="s" value="S" style="text-decoration: line-through; width: 30px;" onClick="javascript:Invoegen('[S]...[/S]');">
<input type="button" name="url" value="http://" onClick="javascript:Invoegen('...');">
</td>
</tr>

<tr>
<td align="center" height="21" colspan="4">
<input type="button" name="align" value="Align" onClick="javascript:Invoegen('[ALIGN=...]...[/ALIGN]');">
<input type="button" name="color" value="Kleur" onClick="javascript:Invoegen('[COLOR=...]...[/COLOR]');">
<input type="button" name="size" value="Grootte" onClick="javascript:Invoegen('[SIZE=...]...[/SIZE]');">
<input type="button" name="e-mail" value="E-mail" onClick="javascript:Invoegen('[EMAIL=...]...[/email]');">
</td>
</tr>
<tr>
<td align="center" height="21" colspan="4"><small><i><b>Smileys:</b></i></small></td>
</tr>

<tr>
<td height="41" width="24%" valign="middle" align="center"><a href="javascript:smiley();" onClick="javascript:Invoegen(':)');"><img src="smileys/blij.gif" width="20" border="0"></a></td>
<td height="41" width="24%" align="center" valign="middle"><a href="javascript:smiley();" onClick="javascript:Invoegen(':D');"><img src="smileys/tanden.gif" width="20" height="20" border="0"></a></td>
<td height="41" width="23%" valign="middle" align="center"><a href="javascript:smiley();" onClick="javascript:Invoegen(':P');"><img src="smileys/tong.gif" width="20" height="20" border="0"></a></td>
<td height="41" width="29%" valign="middle" align="center"><a href="javascript:smiley();" onClick="javascript:Invoegen(';)');"><img src="smileys/knipoog.gif" width="20" height="20" border="0"></a></td>
</tr>

<tr>
<td height="36" width="24%" valign="middle" align="center"><a href="javascript:smiley();" onClick="javascript:Invoegen(':cool:');"><img src="smileys/cool.gif" width="20" height="20" border="0"></a></td>
<td height="36" width="24%" align="center" valign="middle"><a href="javascript:smiley();" onClick="javascript:Invoegen(':s');"><img src="smileys/verward.gif" width="20" height="20" border="0"></a></td>
<td height="36" width="23%" valign="middle" align="center"><a href="javascript:smiley();" onClick="javascript:Invoegen(':omg:');"><img src="smileys/omg.gif" width="20" height="20" border="0"></a></td>
<td height="36" width="29%" valign="middle" align="center"><a href="javascript:smiley();" onClick="javascript:Invoegen(':(');"><img src="smileys/droevig.gif" width="20" height="20" border="0"></a></td>
</tr>
</table>
<br>
<textarea name="bericht" cols="50" rows="10" id="bericht"></textarea><br>
</td>
</tr>
<tr>
<td height="25" colspan="2" align="center">
<input type="submit" name="Submit" value="Verzenden">&nbsp;
<input name="Reset" type="submit" id="Reset" value="Opnieuw">
</td>
</tr>
</table>
</form>
</center>
<?php
}
?>

##########
lezen.php
##########

<?php
include ("config.php");
?>
<table class="gastenboek" width="100%" border="1" cellspacing="0" cellpadding="1">
<tr>
<td height="19"><a href="schrijven.php">Schrijf een bericht</a></td>
</tr>
</table>
<br>
<?php
#### Begin Navigatie code ####
$query = mysql_query("SELECT id FROM gastenboek ORDER BY id DESC") or die(mysql_error());
$aantal = mysql_num_rows($query);
$aantal/=$max;

if ($aantal == 0) {
echo "<div align=center>Er zijn nog <b>geen berichten</b> in het gastenboek!</div>";
} else {

$nav=$_GET['nav'];
if (empty($nav)) {
$nav=1;
}
$van=($nav-1)*$max;

if ($nav > ceil($aantal)) {
$nav=1;
}

for ($i = 1; $i <= ceil($aantal); $i++) {
if ($nav == $i)
$navs[$i] = "<b>$i</b>";
else
$navs[$i] = "<a href=\"lezen.php?nav=$i\">$i</a>";
}

$navs= implode(" | ", $navs);

$vorige = ($nav-1) ? "<a href=\"lezen.php?nav=" . ($nav - 1) . "\">&lt; Vorige</a>" : "";
$volgende = ($nav-ceil($aantal)) ? "<a href=\"lezen.php?nav=" . ($nav + 1) . "\">Volgende &gt;</a>" : "";

if ($vorige && $volgende) {
$navigatie = $vorige." | ".$navs ." | ".$volgende;
} else {
$navigatie = $vorige." | ".$navs." | ".$volgende;
}
#### Einde Navigatie code ####

#### Begin UBB en Smileys code ####
function ubb_smiley($bericht, $dir = "smileys") {

//UBB-code
$bericht = preg_replace("/\[B\](?U)((.|\n|\r)*)\[\/B\]/", "<B>\\1</B>", $bericht);
$bericht = preg_replace("/\[U\](?U)((.|\n|\r)*)\[\/U\]/", "<U>\\1</U>", $bericht);
$bericht = preg_replace("/\[I\](?U)((.|\n|\r)*)\[\/I\]/", "<I>\\1</I>", $bericht);
$bericht = preg_replace("/\[S\](?U)((.|\n|\r)*)\[\/S\]/", "<S>\\1</S>", $bericht);
$bericht = eregi_replace("\\[COLOR=([^\\[]*)\\]([^\\[]*)\\[/COLOR\\]","<font color=\"\\1\">\\2</font>",$bericht);
$bericht = eregi_replace("\\[SIZE=([^\\[]*)\\]([^\\[]*)\\[/SIZE\\]","<font size=\"\\1\">\\2</font>",$bericht);
$bericht = eregi_replace("\\[ALIGN=([^\\[]*)\\]([^\\[]*)\\[/ALIGN\\]","<p align=\"\\1\">\\2</p>",$bericht);
$bericht = eregi_replace("\\[EMAIL=([^\\[]*)\\]([^\\[]*)\\[/EMAIL\\]", "<a href=\"mailto:\\1\">\\2</a>",$bericht);
$bericht = eregi_replace("\\[URL=([^\\[]*)\\]([^\\[]*)\\[/URL\\]","<a href=\\1 target=_blank>\\2</a>",$bericht); ;

//Smileys-code
$bericht = str_replace(":)", "<img src=\"$dir/blij.gif\">", $bericht);
$bericht = str_replace(":(", "<img src=\"$dir/droevig.gif\">", $bericht);
$bericht = str_replace(":s", "<img src=\"$dir/verward.gif\">", $bericht);
$bericht = str_replace(":P", "<img src=\"$dir/tong.gif\">", $bericht);
$bericht = str_replace(":D", "<img src=\"$dir/tanden.gif\">", $bericht);
$bericht = str_replace(";)", "<img src=\"$dir/knipoog.gif\">", $bericht);
$bericht = str_replace(":omg:", "<img src=\"$dir/omg.gif\">", $bericht);
$bericht = str_replace(":cool:", "<img src=\"$dir/cool.gif\">", $bericht);

//Per 50 letters een nieuwe regel beginnen
$bericht = wordwrap($bericht, 50);

return $bericht;
}
#### Einde UBB en Smileys code ####

//Nu gaan we de berichten selecteren
$query=mysql_query("SELECT * FROM gastenboek ORDER BY id DESC LIMIT $van,$max") or die (mysql_error());

//Nu worden alle berichten weergegeven dmv een while

while ($obj = mysql_fetch_object($query)) {
//We zorgen ervoor dat de schrijver geen HTML kan gebruiken in zijn bericht
$bericht=htmlspecialchars($obj->bericht);
//nl2br() zorgt er voor dat er bij elke enter ook een nieuwe lijn komt
$bericht=nl2br($bericht);
//Onze zelf gemaakte functie ubb_smiley() zal de UBB code en SMILIES omzetten in HTML
$bericht=ubb_smiley($bericht);
?>
<table class="gastenboek" width="100%" border="1" cellspacing="0" cellpadding="2">
<tr>
<td width="88%" valign="top">
<b>Gepost door</b>: <?=$obj->naam?>
<b>Gepost op</b>: <?=$obj->datum?> - <?=$obj->tijd?>
</td>
</tr>
<tr>
<td valign="top">
<?=$bericht?>
<br><hr size="1" noshade>
<?php
if (($obj->website != "http://") && ($obj->website != "") && ($obj->website != "/"))
echo "[<a href=".$obj->website.">Website</a>] ";
?>
[<a href="mailto:<?=$obj->emailadres?>">E-mail</a>]
</td>
</tr>
</table>
<br>
<?php
} //Deze loop wordt herhaald tot dat alle berichten zijn weergegeven
}
?>
<br>
<table class="gastenboek" width="100%" border="1" cellspacing="0" cellpadding="1">
<tr>
<td align="center" height="19"><?=$navigatie?></td>
</tr>
</table>
<br>
<table class="gastenboek" width="100%" border="1" cellspacing="0" cellpadding="1">
<tr>
<td height="19"><a href="schrijven.php">Schrijf een bericht</a></td>
</tr>
</table>


Je kunt het ook direct als php bestand downloaden via Php Freakz
door hier te klikken http://www.phpfreakz.nl/download.php?did=15827
[/quote]


Omhoog
 Profiel  
 
Geef de vorige berichten weer:  Sorteer op  
Plaats een nieuw onderwerp Antwoord op onderwerp  [ 1 bericht ] 

Alle tijden zijn GMT + 1 uur [ Zomertijd ]


Wie is er online

Gebruikers op dit forum: Geen geregistreerde gebruikers. en 1 gast


Je mag geen nieuwe onderwerpen in dit forum plaatsen
Je mag niet antwoorden op een onderwerp in dit forum
Je mag je berichten in dit forum niet wijzigen
Je mag je berichten niet uit dit forum verwijderen
Je mag geen bijlagen toevoegen in dit forum

Zoek naar:
Ga naar:  
cron
Copyright © 2004 - 2016 IceHosting - Alle rechten voorbehouden - Powered by phpBB