Tutorials
Gastenboek
Ik ga proberen jullie een gastenboek te leren maken want, veel mensen willen dit als eerste weten en er zitten veel soorten dingen in
Pagina 1
Voorwoord
Na, ik wil jullie graag leren hoe je een gastenboek moet maken omdat ik merkte dat veel beginnende mensen een gastenboek willen hebben met smilies, ubb en het liefst ook nog kunnen reageren, dit laatste behandel ik nog niet maar als alle fouten hier uit zijn en het goed werkt, zal dat er zeker bij komen.
Het gastenboek bestaat uit de volgende pagina ’s
- Schrijf.php
- Lees.php
- Ubb.php
Ik hoop dat jullie er wat aan hebben, veel lees / script plezier!
Edit:
Ik heb een aantal updates geplaatst zo heb ik overal even iets beter gecontroleerd etc... en heb ik de uitleg van de ubb iets verbeterd...
Groeten,
Milo
Het gastenboek bestaat uit de volgende pagina ’s
- Schrijf.php
- Lees.php
- Ubb.php
Ik hoop dat jullie er wat aan hebben, veel lees / script plezier!
Edit:
Ik heb een aantal updates geplaatst zo heb ik overal even iets beter gecontroleerd etc... en heb ik de uitleg van de ubb iets verbeterd...
Groeten,
Milo
Pagina 2
Schrijven
Op het gastenboek zit een schrijf pagina, wat hier eigenlijk gebeurt is het volgende: Er word gekeken of er al op verzenden is gedrukt,
zo nee: Formulier tonen
zo ja: Kijken of alle velden gevuld zijn
----zo ja: query uitvoeren, dus alles in de database zetten
----zo nee: error weergeven
Er wordt ook gebruik gemaakt van verschillende functies o.a.
Mysql_real_escape_string, voor deze functie verwijs ik je door naar: KLIK
!isset: kijken of er wel iets in een veld zit.
zo nee: Formulier tonen
zo ja: Kijken of alle velden gevuld zijn
----zo ja: query uitvoeren, dus alles in de database zetten
----zo nee: error weergeven
Er wordt ook gebruik gemaakt van verschillende functies o.a.
Mysql_real_escape_string, voor deze functie verwijs ik je door naar: KLIK
!isset: kijken of er wel iets in een veld zit.
<?php
// Schrijf.php
// Database connectie maken met database
include('config.php');
// Connectie maken met de ubb pagina voor email check
include('ubb.php');
// Als er gepost is checken of er niks vergeten is
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
// Als de naam niet is ingevult
if(!isset($_POST['naam']))
{
// Error
echo 'U bent vergeten uw naam in te vullen';
}
// Anders
else
{
// Als de email niet is ingevult
if(!isset($_POST['email']))
{
echo 'U bent vergeten uw email in te vullen';
}
// Anders
else
{
// Als email niet klopt
if(check_mail($_POST['email']))
{
echo 'U heeft geen geldige email ingevult';
}
// Anders
else
{
// Als bericht is ingeveult
if(!isset($_POST['bericht']))
{
echo 'U heeft geen bericht ingevult';
}
// Anders
else
{
// De mysql_query uitvoeren om alles in de db te zetten
$sql = mysql_query("INSERT INTO
gastenboek
(
naam,
email,
bericht,
datum
)
VALUES
(
'".mysql_real_escape_string($_POST['naam'])."'
'".mysql_real_escape_string($_POST['email'])."'
'".mysql_real_escape_string($_POST['bericht'])."'
NOW()
)
");
// Als de query is gelukt
if($sql)
{
echo 'Uw bericht is geplaatst<br>';
echo 'Klik <a href="Lees.php"> hier</a> om naar uw bericht te gaan';
}
// Anders
else
{
// MySql Error opvangen
echo 'Er is een fout opgetreden bij de query: <br />';
echo mysql_error();
}
}
}
}
}
}
// Anders
else
{
// Het formulier
echo '<form action="" method="post">';
echo 'Naam: <input type="text" name="naam"><br>';
echo 'E-mail: <input type="text" name="email"><br>';
echo 'Bericht:<br>';
echo '<textarea name="bericht"></textarea>';
echo '<input type="submit" value="Verzenden">';
echo '</form>';
}
?>
Pagina 3
Lezen
Om het simpel te houden heb ik bij deze pagina geen lay-out gemaakt, zodat je niet eerst een lay-out hoeft weg te denken / halen, en dan pas verder kan.
Op deze pagina word er gebruik gemaakt van de SELECT .. FROM query, begrijp je niet hoe dit zit?, dan verwijs ik je door naar Klik, hier word haarfijn uitgelegd hoe query ’s werken etc.
Verder wordt er ook gebruik gemaakt van de functie explode om de datum uit elkaar te halen, ik wist eerst niet dat er kortere functies voor waren maar daar ga ik even op googlen en dan toepassen
Op deze pagina word er gebruik gemaakt van de SELECT .. FROM query, begrijp je niet hoe dit zit?, dan verwijs ik je door naar Klik, hier word haarfijn uitgelegd hoe query ’s werken etc.
Verder wordt er ook gebruik gemaakt van de functie explode om de datum uit elkaar te halen, ik wist eerst niet dat er kortere functies voor waren maar daar ga ik even op googlen en dan toepassen
<?php
// Lees.php
// Database connectie maken met database
include('config.php');
// Connectie maken met de ubb pagina
include('ubb.php');
// Link naar schrijf pagina
echo 'Klik <a href="Schrijf.php">hier</a> om een bericht te plaatsen';
// Alles uit db halen laatste bericht als eerste.
$sql = mysql_query("SELECT
*,
DATE_FORMAT(datum, '%d-%m-%Y %H:%i') AS new_date
FROM
gastenboek
ORDER BY
datum
DESC
");
// Als de query is gelukt
if($sql)
{
// Als er items zijn
if(mysql_num_rows($sql) > 0)
{
// Items neerzetten
while($rec = mysql_fetch_assoc($sql))
{
// Alles echoën
echo 'Naam: '.$rec['naam'];
echo 'E-Mail: '.$rec['email'];
echo 'Gepost op: '.$rec['new_date'];
echo 'Bericht: <br>'.ubb_gastenboek($rec['bericht']);
// Lijntje
echo '<br><hr><br>';
}
}
// Anders
else
{
// Geen berichten
echo 'Er zijn nog geen gastenboek berichten.';
}
}
// Anders
else
{
// MySql error
echo 'Er is een fout opgetreden in de query: <br />';
echo mysql_error();
}
?>
Pagina 4
Slot
Hoop dat jullie er wat aan hebben, commentaar graag zodat ik eventueel een betere nettere versie kan maken.
Ga niet vragen om smilies want die staan op een pc die kapot is :S
Gr, Milo
Succes
Ga niet vragen om smilies want die staan op een pc die kapot is :S
Gr, Milo
Succes
Pagina 5
Database
Om iets te kunnen uitlezen of ergens iets in te doen hebben we wel een database nodig
Wij gebruiken de volgende velden in tabel Gastenboek
Gastenboek
- id
- naam
- email
- datum
- bericht
en een config pagina om connectie te maken
[code]
<?php
// Config.php
$host = ""; // Je host
$user = ""; // Je MySQL gebruikersnaam
$pass = ""; // Je MySQL wachtwoord
$datb = ""; // Je MySQL database
// Verbinding maken
mysql_connect($host, $user, $pass) or die ("Er is een fout bij het connectie maken met de DataBase");
mysql_select_db($datb) or die ("Er is een fout bij het selecteren van de DataBase");
?>
[code]
next >>
Wij gebruiken de volgende velden in tabel Gastenboek
Gastenboek
- id
- naam
- datum
- bericht
CREATE TABLE `gastenboek` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`naam` VARCHAR( 30 ) NOT NULL ,
`email` VARCHAR ( 150 ) NOT NULL ,
`datum` DATETIME NOT NULL ,
`bericht` TEXT NOT NULL ) ENGINE = MYISAM;
en een config pagina om connectie te maken
[code]
<?php
// Config.php
$host = ""; // Je host
$user = ""; // Je MySQL gebruikersnaam
$pass = ""; // Je MySQL wachtwoord
$datb = ""; // Je MySQL database
// Verbinding maken
mysql_connect($host, $user, $pass) or die ("Er is een fout bij het connectie maken met de DataBase");
mysql_select_db($datb) or die ("Er is een fout bij het selecteren van de DataBase");
?>
[code]
next >>
Pagina 6
Ubb
Voor de ubb parser word er gebruik gemaakt van function en str_replace().
Binnen function kan je in dit geval bijv dingen neerzetten die jij wilt verplaatsen voor wat anders, hier heb je dan weer str_replace voor nodig.
function functienaam($var)
{
$var = str_replace('huidig', 'nieuw', $var);
return $var;
}
De email_check, heb ik niet zelf gemaakt :(, maar die kan je hier: klik vinden
Binnen function kan je in dit geval bijv dingen neerzetten die jij wilt verplaatsen voor wat anders, hier heb je dan weer str_replace voor nodig.
function functienaam($var)
{
$var = str_replace('huidig', 'nieuw', $var);
return $var;
}
De email_check, heb ik niet zelf gemaakt :(, maar die kan je hier: klik vinden
<?php
// ubb.php
// E-mail check
function check_mail($email)
{
return ereg("[A-Za-z0-9_-]+([\.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([\.]{1}[A-Za-z0-9-]+)+",$email);
}
// UBB Algemeen
function ubb_gastenboek($bericht)
{
// De smilies (Hier je afbeelding namen bijzetten)
$bericht = str_replace (':D', '<img src="/* afbnaam */">', $bericht);
$bericht = str_replace (':P', '<img src="">', $bericht);
$bericht = str_replace (':)', '<img src="">', $bericht);
$bericht = str_replace (':(', '<img src="">', $bericht);
$bericht = str_replace ('(@', '<img src="">', $bericht);
$bericht = str_replace (':S', '<img src="">', $bericht);
$bericht = str_replace (';)', '<img src="">', $bericht);
$bericht = str_replace (':@', '<img src="">', $bericht);
// De tekst opmaak
$bericht = str_replace ('[b]', '<b>', $bericht);
$bericht = str_replace ('[/b]', '</b>', $bericht);
$bericht = str_replace ('[u]', '<u>', $bericht);
$bericht = str_replace ('[/u]', '</u>', $bericht);
// Een reactie (quote)
$bericht = str_replace ('[quote]', '<div class="quote">', $bericht);
$bericht = str_replace ('[/quote]', '</div>', $bericht);
return $bericht;
}
?>
Reacties
0