Beveiliging gastenboek

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Senior Front-end Developer

Dit ga je doen Met behulp van diverse programmeertalen ontwikkelen van Front-end software; Het begeleiden van het front-end team; Het oplossen van incidenten; Het bijhouden van een backlog; Je hebt een actieve bijdrage in de wekelijkse overleggen met de omliggende teams; Je houdt trends bij en adviseert het management hierover waar nodig; Helder communiceren met de stakeholders om hen zo mee te nemen in projecten en laten inzien wat de duur en toegevoegde waarde van bepaalde projecten is. Hier ga je werken Deze organisatie heeft circa 40 miljoen bezoekers per maand en heeft innovatie hoog in het vaandel staan. Het

Bekijk vacature »

.NET developer

Klaar voor een nieuwe uitdaging? Welke technologieën gaan schuil achter de dagelijkse energievoorziening? Als senior .NET developer bij Kenter maak jij samen met je team het verschil, zowel voor de interne organisatie als voor eindklanten. Samen bouwen jullie aan innovatieve dienstverlening met behulp van de nieuwste technologieën en tools. Het is een functie met veel vrijheid, goede arbeidsvoorwaarden én je draagt jouw steentje bij aan de energietransitie. Klinkt dit als iets voor jou? Lees dan verder of solliciteer direct! Wat ga je doen als senior .NET developer? Als senior .NET developer bij Kenter (onderdeel van Alliander) ben je van onschatbare

Bekijk vacature »

Laravel / PHP developer gezocht!

Functie omschrijving Wij zijn op zoek naar een Laravel PHP Developer voor een leuk bedrijf in de omgeving van Amsterdam! Je zult je bezig houden met de volgende werkzaamheden: Je gaat aan de hand van de wensen van klanten software ontwikkelen; Je bent bij het gehele proces betrokken; van A tot Z; Je hebt na de oplevering contact met de klant wanneer zij problemen ervaren; Je denkt mee over het verbeteren van de werkprocessen; Je denkt mee over softwareoplossingen; Je speelt in op de behoefte van de klant; Je houdt je bezig met het verbeteren, aanpassen en vernieuwen van de

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

.NET developer

Functie Als senior .NET ontwikkelaar en aankomend lead developer ben jij in één van de drie development teams verantwoordelijk voor het volgende: • Jij hebt een oogpunt op modernisering en bent verantwoordelijk voor de technische staat en architectuur van de applicatie; • Jij bent verantwoordelijk voor het reviewen van de technische haalbaarheid van verschillende onderwerpen; • Jij bent verantwoordelijk voor een goede aansluiting binnen het multidisciplinaire team en de bijbehorende taken; • Jij bent verantwoordelijk voor het aandragen van verbetervoorstellen en ontwikkelstandaarden in zowel de techniek als architectuur; • Jij bent meewerkend voorman en ondersteunt en coacht jouw team op

Bekijk vacature »

Microsoft Acess Developer

Functieomschrijving Wat ga je doen? Heb jij ongeveer 3 jaar ervaring als Software Developer, en komen de volgende kennisgebieden jou niet vreemd voor: MS Acces, C# & SQL? Vind jij het daarnaast leuk om maatwerk software te ontwikkelen voor klanten in een bijzondere branche? Lees dan snel verder! Als developer ben jij samen met een gemotiveerd team van 10 collega’s verantwoordelijk voor het creëren van aangemeten software voor klanten. Je bent klantvriendelijk en oplossingsgericht ingesteld, omdat het essentieel is om de klanten zo goed mogelijk te helpen met hun uitdagingen. Het is mogelijk om vanuit huis je werkzaamheden uit te

Bekijk vacature »

Senior Software Developer C++

Vacature details Vakgebied: Software/IT Opleiding: Senior Vacature ID: 13342 Introductie Do you want to work for one of the most innovative companies located in the region of Eindhoven. Currently Due to growth we are looking for a Senior Software Developer. Our client is a high-tech company with international roots and can provide you with a challenging opportunity. Functieomschrijving Responsibilities: Design, develop, and maintain high-quality software applications in C++ Collaborate with other engineers, product managers, and stakeholders to understand requirements and develop solutions Write clean, maintainable, and efficient code Conduct thorough testing and debugging to ensure high-quality software Optimize applications for

Bekijk vacature »

Back end developer Digital Agency

Functie Wij zijn van origine een wordpress bureau, maar sinds 2006 zijn wij dit wel redelijk ontgroeid. Naar mate de jaren verstreken zijn we gegroeid in omvang, maar ook in de complexiteit van opdrachten waarin wij onze klanten kunnen bedienen. Momenteel bestaat onze organisatie uit 4 front end developers, 12 back end developer 3 projectmanagers en een 2 koppig management. Wij zijn een hele informele, bijna familiaire organisatie. Geen strak pak of overhemd, nee gewoon dragen waar jij je prettig bij voelt. De gemiddelde leeftijd ligt tussen de 25 en 30 en wij doen er veel aan om onze hechte

Bekijk vacature »

Front-end developer

Functie Als front-end developer kom je te werken in een team van 30 gedetacheerde, en het team is momenteel flink aan het groeien. Je hebt ervaring met het bouwen van complexe bedrijfsapplicaties waar je gebruik maakt van de nieuwste technologieën waarmee jij elke klant omver blaast. Het gaat om uitdagende projecten met een gemiddelde doorlooptijd van 2 jaar. Hierdoor heb jij echt de volledige focus op een project en kun je flinke impact maken. Het team zit boordevol met ervaren developers die samen dezelfde ambitie delen. Aan de hand van opleidingen en trainingen kun je certificaten halen in jouw expertise

Bekijk vacature »

Back-end programmeur

Functieomschrijving Heb jij kort geleden jouw HBO ICT diploma in ontvangst mogen nemen? Of ben je toe aan een nieuwe uitdaging? Voor een uitdagende werkgever in omgeving Waalwijk zijn wij op zoek naar een enthousiaste softwareontwikkelaar met kennis of ervaring met C# en SQL. In een uitdagende rol als C#.NET Developer werk je samen met een enthousiast en informeel team aan het bouwen van maatwerk software voor variërende klanten. Verder ziet jouw takenpakket er als volgt uit: Je draagt bij aan de implementatie van aanpassingen, verbeteringen en aanvullingen in de C# based applicaties; Je houdt je bezig met het ontwikkelen

Bekijk vacature »

Senior, Medior and Junior SAP HANA Developer

Vacature details Vakgebied: Software/IT Opleiding: Medior Werklocatie: Veldhoven Vacature ID: 12696 Introductie Our client is the world's leading provider of lithography systems for the semiconductor industry, manufacturing complex machines that are critical to the production of integrated circuits or chips. Our purpose is “unlocking the potential of people and society by pushing technology to new limits”. We do this guided by the principles “Challenge”, “Collaborate” and “Care”. Wat verwachten we van jou? SAP Certified Application Associate - SAP HANA Cloud Modeling (training and/or certification) Bachelor degree or higher Excellent understanding of SAP HANA (2.0 / Cloud), Data Modelling and writing

Bekijk vacature »

Junior full stack developer

Functie Als full stack developer binnen onze organisatie ga jij je bezig houden met het bouwen van de user experience van de webapplicaties. Je bent verantwoordelijk voor het vertalen van concepten, briefings en designs naar werkende functionaliteit. Hierbij zorg je ervoor dat applicaties betrouwbaar, veilig en toekomstbestendig zijn en een goede architectuur hebben en behouden. Verder denk je actief na- en mee over nieuwe ontwikkelingen en functionaliteiten om zo elke dag de klantervaring weer te verbeteren. Dit doe je natuurlijk niet alleen maar in een development team. Het team bedraagt momenteel 4 man bestaande uit 2 devops engineers en 2

Bekijk vacature »

Lead Webdeveloper

As Lead Web Developer at KUBUS you are responsible for the implementation design of requirements and the software architecture of the web application and services of BIMcollab. In your role as lead developer you will naturally search for the optimum between the required implementation time, the performance of the application and a fast go-to-market of features, in line with our automated test and release train. Together with the other senior developers in your team you monitor the architecture of the application and you advise the product owner about necessary refactoring to improve the maintainability of the platform. Our development team

Bekijk vacature »

PHP Developer

Zie jij mogelijkheden om onze tooling technisch te verbeteren en uit te bouwen? Over Jobmatix Jobmatix is een innovatieve en internationale speler op het gebied van jobmarketing. Onze jobmarketing automation tool helpt organisaties bij het aantrekken van nieuw talent door vacatures digitaal, geautomatiseerd en op een efficiënte manier te adverteren en onder de aandacht te brengen bij de doelgroep op 25+ jobboards. Volledig performance-based, waarbij organisaties betalen op basis van cost per click of cost per applicant. Maandelijks wordt onze jobmarketing automation tool al gebruikt door vele directe werkgevers, intermediairs en mediabureaus, waaronder Picnic, Rijkswaterstaat, AdverOnline, Schiphol, DPA, Teleperformance en

Bekijk vacature »

OutSystems developer

Dit ga je doen Klanten adviseren over de mogelijkheden van OutSystems; OutSystems oplossingen ontwikkelen en implementeren; Stakeholdermanagement; Kennis en expertise up to date houden en delen met het team. Hier ga je werken Onze opdrachtgever, gevestigd in regio Amsterdam, is een innovatieve dienstverlener die zich richt op grote corporates in verschillende sectoren. Doordat je bij veel verschillende klanten aan de slag zal gaan is geen enkel project hetzelfde. De organisatie kenmerkt zich door hoge mate van professionaliteit en innovatieve oplossingen. In de rol van OutSystems developer zal jij verschillende grote klanten helpen om efficiënte OutSystems oplossingen te ontwikkelen en implementeren.

Bekijk vacature »
Dick oo

dick oo

21/05/2009 10:21:00
Quote Anchor link
Nieuwe vragen onderaan...

Hoi :)
Ik ben gister even bezig geweest met m'n gastenboek.. en hij is ook nog af xD edit.php en add.php zijn natuurlijk voor de admin.. Ik denk dat ik de admin weer ga beveiligen met het alleen toestaan van bepaalde ip's
Het script is in eerste instantie voor mijzelf, maar misschien dat ik het hier ook op PHPhulp ga zetten...
Er zitten al twee beveiligingen op tegen spam: captcha en antiflood..
Maar nog niet tegen sql injection.. daar heb ik nog niet erg veel verstand van en daarom vraag ik om jullie hulp!
Ik post hieronder mijn script,, welke beveiliging kan ik erbij doen? (misschien klein voorbeeldje erbij? :$)


Add.php
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
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
<link href="style.css" rel="stylesheet" type="text/css">
<? include("antiflood.php"); ?>   // gewoon antiflood ;)

<?php
include("config.php");

$tekst = "";   // standaard geen foutmelding ;)
$ip = $_SERVER['REMOTE_ADDR'];   // even ip opvragen

if(!empty($_POST)){
    if(empty($_POST["naam"])){
        $tekst = "Er is geen naam ingevuld. <br>";
    }


    if(empty($_POST["email"])){
        $tekst .= "Er is geen email ingevuld. <br>";
    }

    

    if(!eregi('^([._a-z0-9-]+[._a-z0-9-]*)@(([a-z0-9-]+\.)*([a-z0-9-]+)(\.[a-z]{2,3})?)$', $_POST["email"])) {
        $tekst.= "Het ingevulde emailadres is niet geldig. <br>";
    }


    if(empty($_POST["bericht"])){
        $tekst .= "Er is geen bericht ingevuld. <br>";
    }


    if (md5($_POST['norobot']) != $_SESSION['randomnr2']){
        $tekst .= "Er is geen code ingevuld, of de code was verkeerd. <br>";
    }


    if(empty($tekst)){
        $query = "INSERT gastenboek (id, naam, email, bericht, datum, tijd, ip)";
        $query .= "VALUES ('', '";
        $query .= $_POST["naam"] . "', '";
        $query .= $_POST["email"] . "', '";
        $query .= $_POST["bericht"] . "', '";
        $query .= $_POST["datum"] . "', '";
        $query .= $_POST["tijd"] . "', '";
        $query .= $_POST["ip"] . "')";

        if(!mysql_query($query)){
            echo "Het toevoegen van het bericht is mislukt.";
            mysql_close($db);
            exit;
        }
else {
            echo "Het bericht is toegevoegd! <br> U wordt na 5 seconden doorgestuurd naar het gastenboek. <br> Als dit niet gebeurt of als u geen geluld heeft, klik dan <a href='index.php'>hier</a>.";
            mysql_close($db);
            echo "<meta http-equiv='REFRESH' content='5; URL=index.php'>";
        }
    }
else {
        echo $tekst;
    }
}
else {
?>


<form name="gb" method="post" action="<? echo $_SERVER["PHP_SELF"]; ?>">
Naam: <input type="text" name="naam"> <br>
Email: <input type="text" name="email"> <br>
Bericht: <br> <textarea name="bericht"></textarea> <br>
Typ de volgende code over: <br>
<img src="captcha.php" style="margin-bottom: -6px;"> <input class="input" type="text" name="norobot"> <br><br>
<input type="hidden" name="datum" value="<? echo date("Y"); ?>">
<input type="hidden" name="tijd" value="<? echo date("M"); ?>">
<input type="hidden" name="ip" value="<? echo $ip ?>">
<input type="submit" value="Toevoegen">
<input type="reset" value="Leegmaken">
</form>
<? } ?>


delete.php
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
<?php
include("config.php");


if(isset($_POST["bevestiging"])){
    $query = "DELETE FROM gastenboek WHERE id='" . $_POST["id"] ."'";
    mysql_query($query);

    echo "Het bericht is verwijderd.";
}
else {
    $query = "SELECT * FROM gastenboek WHERE id='" . $_GET["id"] . "'";
    $resultaat = mysql_query($query);
?>


Wilt u het volgende bericht verwijderen? <br><br>

<?php
while(list($id, $naam, $email, $bericht, $datum, $tijd, $ip) = mysql_fetch_row($resultaat)){
    echo "Naam: $naam <br>";
    echo "Email: $email <br>";
    echo "Bericht: $bericht <br><br>";
}

?>


<form action="<? echo $_SERVER["PHP_SELF"]; ?>" method="post">
<input type="hidden" name="bevestiging" value="1">
<input type="hidden" name="id" value="<? echo $_GET["id"]; ?>">
<input type="submit" value="Verwijderen">
<input type="button" value="Nee, terug" onclick="javascript:history.go(-1);">
</form>

<?php
}
?>


edit.php
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
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
<link href="style.css" rel="stylesheet" type="text/css">

<?php
session_start();
include("config.php");
$tekst = "";

if(isset($_POST["bevestiging"])){
    if(empty($_POST["naam"])){
        $tekst = "Er is geen naam ingevuld. <br>";
    }


    if(empty($_POST["email"])){
        $tekst .= "Er is geen email ingevuld. <br>";
    }

    

    if(!eregi('^([._a-z0-9-]+[._a-z0-9-]*)@(([a-z0-9-]+\.)*([a-z0-9-]+)(\.[a-z]{2,3})?)$', $_POST["email"])) {
        $tekst.= "Het ingevulde emailadres is niet geldig. <br>";
    }


    if(empty($_POST["bericht"])){
        $tekst .= "Er is geen bericht ingevuld. <br>";
    }


    if (md5($_POST['norobot']) != $_SESSION['randomnr2']){
        $tekst .= "Er is geen code ingevuld, of de code was verkeerd. <br>";
    }


    if(empty($tekst)){
        $query = "UPDATE gastenboek SET
            naam = '"
. $_POST["naam"] ."',
            email = '"
. $_POST["email"] ."',
            bericht = '"
. $_POST["bericht"] ."'
            WHERE id='"
. $_POST["id"] ."'";
        if(!mysql_query($query)){
            echo "Het wijzigen van het bericht is mislukt.";
            mysql_close($db);
            exit;
        }
else {
            echo "Het bericht is gewijzigd!";
            mysql_close($db);
        }
    }
else {
        echo $tekst;
    }
}
else {

$query = "SELECT * FROM gastenboek WHERE id='". $_GET["id"] ."'";
$resultaat = mysql_query($query);
while(list($id, $naam, $email, $bericht) = mysql_fetch_row($resultaat)){
    $nm = $naam;
    $el = $email;
    $bt = $bericht;
}

?>


<h3>Wijzig een bericht</h3>

<form action="<? echo $_SERVER["PHP_SELF"]; ?>" method="post">
<input type="hidden" name="bevestiging" value="1">
<input type="hidden" name="id" value="<? echo $_GET["id"]; ?>">
Naam: <input type="text" name="naam" value="<? echo $nm; ?>"> <br>
Email: <input type="text" name="email" value="<? echo $el; ?>"> <br>
Bericht: <textarea name="bericht"><? echo $bt; ?></textarea> <br>
Typ de volgende code over: <br>
<img src="captcha.php" style="margin-bottom: -6px;"> <input class="input" type="text" name="norobot"> <br><br>
<input type="submit" value="Bijwerken">
<input type="button" value="Nee, terug" onclick="javascript:history.go(-1);">
</form>

<?php
}
?>


index.php
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
<?php
include("config.php");
$query = "SELECT * FROM gastenboek";
$resultaat = mysql_query($query, $db);
mysql_close($db);
?>


<h3>Gastenboek</h3>

<?php
while(list($id, $naam, $email, $bericht, $datum, $tijd, $ip) = mysql_fetch_row($resultaat)){
    echo "$naam <br>";
    echo "$email <br>";
    echo "$bericht <br>";
    echo "<font color='grey'>Geschreven op $datum om $tijd</font>";
    echo "<hr>";
}

?>
Gewijzigd op 01/01/1970 01:00:00 door Dick oo
 
PHP hulp

PHP hulp

23/11/2024 00:00:13
 
Jesper Diovo

Jesper Diovo

21/05/2009 10:32:00
Quote Anchor link
mysql_real_escape_string() om $_GET en $_POST variabelen die een string bevatten. $_GET en $_POST variabelen die een integer bevatten, moet je casten:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
(int)$_GET['id'];
?>


Even over je script zelf:
- Je controleert of een formulier is verzonden op de volgende manier:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
if($_SERVER['REQUEST_METHOD'] == "POST") {
?>

Niet met empty($_POST) of isset($_POST['submit']).
- Gebruik mysql_fetch_assoc() i.p.v mysql_fetch_row(). Veel sneller.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
    $nm
= $naam;
    $el = $email;
    $bt = $bericht;
?>

- Waarom dat?
- Om een getal hoeven geen quotes in een query. Die kunnen er gewoon zo in.
- Variabelen buiten quotes!
- Al dat mysql_close() is op zich overbodig...
- Waarom heb je bij edit.php session_start() staan? Je werkt helemaal niet met sessies...
- Je kunt beter $_SERVER['REQUEST_URI'] gebruiken i.p.v. $_SERVER['PHP_SELF'].
- Je kunt ook beter preg_match() gebruiken i.p.v. eregi(). Ereg_* functies gaan er met PHP6 uit, je kunt beter daar al voorbereid op zijn voordat je ineens al je scripts moet ombouwen.
- Gebruik geen <font>-tags! Daar is <span> voor. Font is verouderd en lelijk.
- Gebruik de tags volledig, geen shorttags. (<?php ?> i.p.v. <? ?>)

Nja er is op zich nog wel meer. Maar dat is voor nu nog niet zo belangrijk. Zorg eerst maar eens dat bovenstaande punten opgelost zijn.
 
Dick oo

dick oo

21/05/2009 10:38:00
Quote Anchor link
Bedankt :D
Ik ga er vanmiddag even rustig voor zitten en even nakijken ;)
Ik gebruik wel sessies, met de captcha ;)
Én met de antiflood
 

21/05/2009 10:38:00
Quote Anchor link
Add.php:
Controleren of een form gepost is met $_SERVER['REQUEST_METHOD'].
Ereg is oud, gebruik liever preg_*.
Deze regel klopt niet: if (md5($_POST['norobot']) != $_SESSION['randomnr2']){ (regel 28).
Gebruik mysql_real_escape_string.
Selecteer niet *, maar alles wat je wilt hebben. * kan voor problemen zorgen, bovendien is het overzichtelijker om te zien wat je selecteerd.
Vervang echo "<meta http-equiv='REFRESH' content='5; URL=index.php'>"; door een header.
Waar is <html><head> en <body>?

delete.php
Zelfde manier form post controle als hierboven.
Selecteer niet *, maar alles wat je wilt hebben. * kan voor problemen zorgen, bovendien is het overzichtelijker om te zien wat je selecteerd.
Met mysql_fetch_assoc hoef je de data niet met list in vars stoppen, dan kan je de data gewoon als array benaderen.
Gebruik mysql_real_escape_string.
Variabelen buiten quotes.
Waar is <html><head> en <body>?

edit.php
Session_start moet voordat er enig data naar de browser is verstuurt worden aangeroepen (als je gebruik maakt van cookies).
De rest van Add.php is hier ook van toepassing.

index.php
Selecteer niet *, maar alles wat je wilt hebben. * kan voor problemen zorgen, bovendien is het overzichtelijker om te zien wat je selecteerd.
Waar is de foutafhandeling van de sql?
Variabelen buiten quotes.
Met mysql_fetch_assoc hoef je de data niet met list in vars stoppen, dan kan je de data gewoon als array benaderen.
 
Jesper Diovo

Jesper Diovo

21/05/2009 10:39:00
Quote Anchor link
Quote:
Ik gebruik wel sessies, met de captcha ;)
Én met de antiflood

Waarom dan alleen in edit.php? Die moet dan toch overal terugkomen?
 
Dick oo

dick oo

21/05/2009 11:01:00
Quote Anchor link
Nee dat hoeft niet, tis alleen beveiliging dat je niet zoveel berichten elke keer plaatst. Anders kan je bv maximaal 15 paginas zien in 1 minuut...
 
Dick oo

dick oo

12/09/2009 11:48:00
Quote Anchor link
Ok ik heb een nieuwe versie van add.php
Doe ik het nu goed qua beveiliging?
Aan of opmerkingen?

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
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
79
80
81
82
83
## add.php
<?php
session_start();    // zorg ervoor dat dit helemaal bovenaan de pagina staat!
include_once("connect.php");    // vereist voor het verbinden met de MySQL database
$tekst = "";    // als er iets niet ingevuld is komt hier de foutmelding in staan

if($_SERVER['REQUEST_METHOD'] == "POST") {
    if(empty($_POST['naam'])){
           $tekst .= "Geen naam ingevuld. <br>";
    }


    if(empty($_POST['email'])){
       $tekst .= "Geen email ingevuld. <br>";
    }
else {
       if(!preg_match('^([._a-z0-9-]+[._a-z0-9-]*)@(([a-z0-9-]+\.)*([a-z0-9-]+)(\.[a-z]{2,3})?)$^', $_POST["email"])) {
           $tekst.= "Het ingevulde emailadres is niet geldig. <br>";
       }
    }


    if(empty($_POST['bericht'])){
       $tekst .= "Geen bericht ingevuld. <br>";
    }


    if(empty($_POST['norobot'])){
       $tekst .= "Geen verificatiecode ingevuld. <br>";
    }
else {
       if (md5($_POST['norobot']) != $_SESSION['randomnr2']){
           $tekst .= "Verificatiecode is niet goed. <br>";
       }
    }


    if(empty($tekst)){
        $query = "INSERT berichten (id, naam, email, bericht, datum, tijd, verberg, ip) ";
        $query .= "VALUES ('', '";
        $query .= mysql_real_escape_string($_POST['naam']) . "', '";
        $query .= mysql_real_escape_string($_POST['email']) . "', '";
        $query .= mysql_real_escape_string($_POST['bericht']) ."', '";
        $query .= $_POST['datum'] . "', '";
        $query .= $_POST['tijd'] . "', '";
        $query .= mysql_real_escape_string($_POST['verberg']) . "', '";
        $query .= $_POST['ip'] . "')";

        if(!mysql_query($query)){
            // fout tijdens INSERT
            echo "Je bericht kon niet toegevoegd worden. Er is een email gestuurd naar de administrator.";
            exit;
        }
else {
            header("location:" . $lezen);
        }
    }
else {
        echo $tekst;
        }

}
else {
?>


<form method="post" action="<?php echo $_SERVER['REQUEST_URI']; ?>">
<input type="hidden" value="<?php echo date("H:i"); ?>" name="tijd">
<input type="hidden" value="<?php echo date("d-m-Y"); ?>" name="datum">
<input type="hidden" value="<?php echo $_SERVER['REMOTE_ADDR']; ?>" name="ip">
    <table>
    <tr>
        <td><img src="images/naam.png"> Naam:</td> <td><input type="text" name="naam" class="button"></td>
    </tr>
    <tr>
        <td><img src="images/email.png"> Email:</td> <td><input type="text" name="email" class="button"></td>
    </tr>
    <tr>
        <td></td> <td><input type="checkbox" name="verberg" value="1" alt="Verberg mijn email"> <span style="color:grey;font-size:11px;">verberg email</span></td>
    </tr>
    <tr>
        <td><img src="images/bericht.gif"> Bericht:</td> <td><textarea class="textarea" name="bericht"></textarea> </td>
    </tr>
    <tr>
        <td><img src="images/key.png"> Verificatiecode:</td> <td><img src="captcha.php"> <input class="input" type="text" name="norobot"></td>
    </tr>
    <tr>
        <td></td><td><input type="submit" value="Verzenden"> <input type="reset" value="Wissen"></td>
    </td>
    </table>
</form>

<?php } ?>


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
## index.php
<?php
include_once("connect.php");
$query = mysql_query("SELECT naam,email,bericht,datum,tijd,verberg FROM berichten");

while($geg = mysql_fetch_assoc($query)){
    if($geg['verberg'] == 0){
        $poster = '<a href="mailto:' . $geg['email'] . '">' . $geg['naam'] . '</a>';
    }
else {
           $poster = $geg['naam'];
    }



    echo "<p><div class=\"comments\" id=\"head\"><b>" . $poster . "</b> " . $geg['datum'] . " @ " . $geg['tijd'] . "<span style=\"float:right\"><a href=\"#\">Quote</a></span></div>
        <div class=\"comments\" id=\"bericht\">"
. $geg['bericht'] . "</div>
        <div class=\"comments\" id=\"clear\"></div></p>"
;
}


echo "<a href=\"toevoegen.php\">Bericht toevoegen</a>";
?>
Gewijzigd op 01/01/1970 01:00:00 door dick oo
 

12/09/2009 12:00:00
Quote Anchor link
Je gebruikt nog steeds eregi, die gaat eruit, gebruik liever preg_*.
Je doet twee keer $datum, $tijd, $ip aanmaken, waarom? Bovendien kan je in de database een veld van het type datetime maken waarin je gewoon NOW() kan stoppen. (En je genereert die waarden met php dus hoeft er geen mysql_real_escape_string over.)
Wat is $lezen?
Je hebt nog steeds halve html pagina's.
Waarom staan die datum en tijd in een hidden input in de form?
Waar is de foutafhandeling van de sql?
Ik weet niet of iedereen d'r wel op zit te wachten dat je dat email adres gewoon met een mailto op je pagina's neer zet.
 
Dick oo

dick oo

12/09/2009 12:16:00
Quote Anchor link
Ohja die was ik vergeten.
Twee keer t zelfde is een fout omdat ik erachter kwam dat iets niet werkte.
Ok dat zal ik ook even veranderen. ik moet wel heel erg goed kijken naar NOW() omdat te snappen.
Ik wil er geen complete HTML pagina van gaan maken, want miss wil ik het publiceren en dan moet het gemakkelijk in te bouwen zijn.
$lezen is de pagina waar je heen gaat als je iets hebt geplaats, die staat ingesteld in connect.php ;)
En daarom kun je ook je email verbergen!
Met de hidden inputs vind ik het zo het makkelijkst. Misschien dat ik die hidden inputs weghaal en die in een string zet vlak voor de query. Dat wel goed?

Deels aangepast.

Waar moet ik nog foutafhandeling en hoe? Weer met "or die()"?
Gewijzigd op 01/01/1970 01:00:00 door dick oo
 
Dick oo

dick oo

15/09/2009 17:41:00
Quote Anchor link
Naja ik ben bijna klaar met het scripten.
Ik post hieronder even de belangrijkste delen, de style enzo is niet nodig :P
Waar moet ik allemaal nog foutafhandeling dan? En hoe? Volgens mij heb ik al heeeeeeeeeeeel veeel.
Ik ben nog bezig HTML tags enzovoort toe te voegen, dat doe ik liever als laatste, 't makkelijkst ;P Ohja in connect.php staat wel doctype enzovoort, anders worden de berichten qua opmaak niet goed xD


* Beveiligd tegen mysql injection
* Captcha
* Lege velden controle
* Pagination
* Admin: berichten bewerken en verwijderen, tabel legen


ToDo:
* UBB functie
* Adminpagina beveiligen
* HTML opmaken


Hebben jullie ook nog ideeen om erin te doen?
Graag op-/aanmerkingen :)

add.php
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
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
79
80
81
82
83
84
85
86
<?php
session_start();    // zorg ervoor dat dit helemaal bovenaan de pagina staat!
require("connect.php");    // vereist voor het verbinden met de MySQL database
$tekst = "";    // als er iets niet ingevuld is komt hier de foutmelding in staan

if($_SERVER['REQUEST_METHOD'] == "POST") {
    if(empty($_POST['naam'])){
           $tekst .= "Geen naam ingevuld. <br>";
    }


    if(empty($_POST['email'])){
       $tekst .= "Geen email ingevuld.<br>";
    }
else {
       if(!preg_match('^([._a-z0-9-]+[._a-z0-9-]*)@(([a-z0-9-]+\.)*([a-z0-9-]+)(\.[a-z]{2,3})?)$^', $_POST["email"])) {
           $tekst.= "Het ingevulde emailadres is niet geldig. <br>";
       }
    }


    if(empty($_POST['bericht'])){
       $tekst .= "Geen bericht ingevuld.<br>";
    }


    if(empty($_POST['norobot'])){
       $tekst .= "Geen verificatiecode ingevuld. <br>";
    }
else {
       if (md5($_POST['norobot']) != $_SESSION['randomnr2']){
           $tekst .= "Verificatiecode is niet goed. <br>";
       }
    }


    if(empty($tekst)){
        $datum = date("d-m-Y");
        $tijd = date("H:i");
        $ip = $_SERVER['REMOTE_ADDR'];

        $query = "INSERT berichten (id, naam, email, bericht, datum, tijd, verberg, ip) ";
        $query .= "VALUES ('', '";
        $query .= mysql_real_escape_string($_POST['naam']) . "', '";
        $query .= mysql_real_escape_string($_POST['email']) . "', '";
        $query .= mysql_real_escape_string($_POST['bericht']) ."', '";
        $query .= $datum . "', '";
        $query .= $tijd . "', '";
        $query .= mysql_real_escape_string($_POST['verberg']) . "', '";
        $query .= $ip . "')";

        if(!mysql_query($query)){
            // fout tijdens INSERT
            echo "Je bericht kon niet toegevoegd worden. Er is een email gestuurd naar de administrator.";
            exit;
        }
else {
            if($mail == 1){
               mail($email, $onderwerp, $bericht, $header);
            }

            header("location:" . $lezen);
        }
    }
else {
        echo "<span style=\"color:red;\">" . $tekst . "</span>";
        }

}
else {
?>


<form method="post" action="<?php echo $_SERVER['REQUEST_URI']; ?>">
    <table>
    <tr>
        <td><img src="images/naam.png"> Naam:</td> <td><input type="text" name="naam" class="button"></td>
    </tr>
    <tr>
        <td><img src="images/email.png"> Email:</td> <td><input type="text" name="email" class="button"></td>
    </tr>
    <tr>
        <td></td> <td><input type="checkbox" name="verberg" value="1" alt="Verberg mijn email"> <span style="color:grey;font-size:11px;">verberg email</span></td>
    </tr>
    <tr>
        <td><img src="images/bericht.gif"> Bericht:</td> <td><textarea class="textarea" name="bericht"></textarea> </td>
    </tr>
    <tr>
        <td><img src="images/key.png"> Verificatiecode:</td> <td><img src="captcha.php"> <input class="input" type="text" name="norobot"></td>
    </tr>
    <tr>
        <td></td><td><input type="submit" value="Verzenden"> <input type="reset" value="Wissen"></td>
    </td>
    </table>
</form>

<?php } ?>


admin.php
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
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="nl" lang="nl">
<head>
    <link type="text/css" rel="stylesheet" href="style_admin.css">
    <title>Administrator Gastenboek &copy; </title>
</head>
<body>

<?php
// Verbinden met de database
require("connect.php");

// Aantal entries in tabel tellen
$count = mysql_query("SELECT COUNT(id) FROM berichten");
$totaal = mysql_result($count, 0);

// Query om gegevens uit de tabel te halen
$query = mysql_query("SELECT id,naam,email,bericht,datum,tijd,ip FROM berichten");

// Datum in een array
$Maand = array("", "januari", "februari", "maart", "april", "mei", "juni", "juli", "augustus", "september", "oktober", "november", "december");
$dag = date("d");
$maand = date("n");
$jaar = date("Y");
$tijd = date("H:i");
$beginjaar = 2007;

// Gegevens weergeven
echo "<div id=\"container\">";
echo "<h1 style=\"text-align: center;\"><a href=\"" . $admin . "\">Administrator</a></h1> <br>";

// Eventuele actie ophalen, anders gegevens weergeven

if($totaal == 0){
    echo "Er zijn geen berichten.";
}
else if(isset($_GET['action'])){
    $action = $_GET['action'];
        if($action == 'clearTable'){
            echo "<h3>Tabel legen</h3>";
            if($_SERVER['REQUEST_METHOD'] == "POST") {
                mysql_query("TRUNCATE TABLE " . $tabel);
                echo "De tabel is leeggemaakt. <br><br> Je wordt na 5 seconden teruggestuurd naar de adminpagina.";
                header("Refresh: 5; URL=\"" . $admin . "\"");
            }
else {
            ?>

                Weet je zeker dat je de hele tabel "<?php echo $tabel; ?>" wilt legen? <br><br>
                Deze actie kan niet ongedaan worden.
                <form action="<?php echo $_SERVER['REQUEST_URI']; ?>" name="clear" method="post"> <br>
                <input type="submit" value="Legen"> <input type="button" value="Nee, terug" onClick="window.open('<?php echo $admin; ?>','_self')">
                </form>
            <?php
            }
        }

        if($action == 'edit' && isset($_GET['id']) && is_numeric($_GET['id'])){
            echo "<h3>Gegevens bewerken</h3><br>";
                    if($_SERVER['REQUEST_METHOD'] == "POST") {
                        $query = "UPDATE berichten SET
                            naam = '"
. mysql_real_escape_string($_POST['naam']) . "',
                            email = '"
. mysql_real_escape_string($_POST['email']) . "',
                            bericht = '"
. mysql_real_escape_string($_POST['bericht']) . "'
                            WHERE id='"
. $_GET["id"] . "'";
                        if(mysql_query($query)){
                            echo "Bericht gewijzigd. <br><br> Je wordt na 5 seconden teruggestuurd naar de adminpagina.";
                            header("Refresh: 5; URL=\"" . $admin . "\"");
                        }
else {
                            echo "Het bericht kon niet gewijzigd worden, probeer het later opnieuw.";
                            header("Refresh: 5; URL=\"" . $admin . "\"");
                        }
                    }
else {
                        $query = mysql_query("SELECT id,naam,email,bericht,datum,tijd,ip FROM berichten WHERE id='" . $_GET["id"] . "'");
                        while($edit = mysql_fetch_assoc($query)){
                        ?>

                            <form action="<?php echo $_SERVER['REQUEST_URI']; ?>" name="edit" method="post">
                            <img src="images/naam.png"> Naam: <input type="text" name="naam" class="button" value="<?php echo $edit['naam']; ?>"> <br><br>
                            <img src="images/email.png"> Email: <input type="text" name="email" class="button" value="<?php echo $edit['email']; ?>"> <br><br>
                            <img src="images/bericht.gif"> Bericht: <br><br>
                                <textarea class="textarea" name="bericht"><?php echo $edit['bericht']; ?></textarea> <br><br>
                            <input type="submit" value="Bewerken"> <input type="button" value="Nee, terug" onClick="window.open('<?php echo $admin; ?>','_self')">
                            </form>
                    
                        <?php
                        }
                    }
        }

        if($action == 'delete' && isSet($_GET['id']) && is_numeric($_GET['id'])){
            echo "<h3>Gegevens verwijderen</h3><br>";
                if($_SERVER['REQUEST_METHOD'] == "POST") {
                    $query = "DELETE FROM berichten WHERE id='" . $_GET["id"] . "'";
                    if(mysql_query($query)){
                        echo "Het verwijderen is gelukt! <br><br> Je wordt na 5 seconden teruggestuurd naar de adminpagina.";
                        header("Refresh: 5; URL=\"" . $admin . "\"");
                    }
else {
                        echo "Het bericht kon niet verwijderd worden, probeer het later opnieuw. <br><br> Je wordt na 5 seconden teruggestuurd naar de adminpagina.";
                        header("Refresh: 5; URL=\"" . $admin . "\"");
                    }
                }
else {
                    $query = mysql_query("SELECT id,naam,email,bericht,datum,tijd,ip FROM berichten WHERE id='" . $_GET["id"] . "'");
                    while($del = mysql_fetch_assoc($query)){
                        $del['naam'] = ucwords(strtolower($del['naam']));
                        $del['bericht'] = nl2br($del['bericht']);
                    ?>

                        <!-- Gegevens die verwijderd moeten worden weergeven -->
                        <i><b>Bericht-id:</b></i> #<?php echo $del['id']; ?>
                        <br><br> <i><b>Naam:</b></i> <?php echo $del['naam']; ?>
                        <br><br> <i><b>Email:</b></i> <?php echo $del['email']; ?>
                        <br><br> <i><b>Bericht:</b></i> <br> <?php echo $del['bericht']; ?>
                        <br><br> <i><b>Datum & tijd:</b></i> <?php echo $del['datum']; ?> @ <?php echo $del['tijd']; ?>
                        <br><br> <i><b>IP:</b></i> <?php echo $del['ip']; ?>
                    
                        <!-- Formulier daadwerkelijk weergeven -->
                        <form action="<?php echo $_SERVER['REQUEST_URI']; ?>" name="delete" method="post"> <br>
                        <input type="submit" value="Verwijderen"> <input type="button" value="Nee, terug" onClick="window.open('<?php echo $admin; ?>','_self')">
                        </form>
                    
                    <?php
                    }
                }
    }
        }
else {

        echo "<br> <table width=\"200%\" align=\"center\" style=\"text-align: center; font-weight:bold;\">
                <tr>
                    <td width=\"5%\">ID</td>
                    <td width=\"10%\">Naam</td>
                    <td width=\"15%\">Email</td>
                    <td width=\"25%\">Bericht</td>
                    <td width=\"15%\">Datum / Tijd</td>
                    <td width=\"10%\">IP</td>
                    <td width=\"10%\">Bewerk</td>
                    <td width=\"10%\">Verwijder</td>
             </table><hr>"
;
            
    while($geg = mysql_fetch_assoc($query)){
        $geg['naam'] = ucwords(strtolower($geg['naam']));
        $geg['bericht'] = nl2br($geg['bericht']);
        echo "<table width=\"200%\" align=\"center\" style=\"text-align: center\">
                <tr>
                    <td width=\"5%\">#"
. $geg['id'] . "</td>
                    <td width=\"10%\">"
. $geg['naam'] . "</td>
                    <td width=\"15%\"><a href=\"mailto:"
. $geg['email'] . "\">" . $geg['email'] . "</a></td>
                    <td width=\"25%\">"
. $geg['bericht'] . "</td>
                    <td width=\"15%\">"
. $geg['datum'] . " @ " . $geg['tijd'] . "</td>
                    <td width=\"10%\">"
. $geg['ip'] . "</td>
                    <td width=\"10%\"><a href=\"?action=edit&id="
. $geg['id'] . "\"><img src=\"images/edit.png\" border=\"0\"></a></td>
                    <td width=\"10%\"><a href=\"?action=delete&id="
. $geg['id'] . "\"><img src=\"images/delete.png\" border=\"0\"></a></td>
                </tr>
             </table><hr>"
;
    }

    echo "<br><br><a href=\"?action=clearTable\">Wis</a> alle berichten uit de tabel.";
}


echo "<div id=\"main\" class=\"clearfix\"></div>";
echo "<div id=\"push\"></div>";
echo "</div>";
echo "<div id=\"footer\">
        Copyright &copy; "
. $beginjaar . " - " . $jaar . " ~ Het is vandaag " . $dag . " " . $Maand[$maand] . " " . $jaar . " - " . $tijd . " ~ <a href=\"" . $lezen . "\">index</a> ~ <a href=\"" . $schrijven . "\">schrijven</a></div>";
?>


</body>
</html>


connect.php
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
42
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<link type="text/css" rel="stylesheet" href="style.css">

<?php
// MySQL server, 99% van de tijd "localhost"
$server = "localhost";
// Gebruikersnaam voor MySQL server
$gebruiker = "root";
// Wachtwoord voor MySQl server
$wachtwoord = "***";
// Database voor de entries
$database = "gastenboek";
// Tabel in $database
$tabel = "berichten";

// Pagina waar je de entries kan lezen
$lezen = "index.php";
// Pagina waar je een entry kan toevoegen
$schrijven = "add.php";
// Adminpagina
$admin = "admin.php";

// Naam (editen)
$naam = "de administrator";

// Email bij entry? TRUE voor ja, FALSE voor nee
$mail = false;
// Emailadres
$email = "[email protected]";
// Onderwerp
$onderwerp = "Nieuwe entry in je gastenboek!";
// Bericht
$bericht = "<html><head><title>" . $onderwerp . "</title></head><body>In je gastenboek is het volgende geplaatst: <br> blabla</body></html>";
// Headers, HTML email sturen
$header = 'MIME-Version: 1.0' . "\r\n";
$header .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
// Headers, verander hier het emailadres en eventueel "Gastenboek"
$header .= 'From: Gastenboek <[email protected]>' . "\r\n";

$db = mysql_connect($server, $gebruiker, $wachtwoord) or die ('Kon geen verbinding maken met MySQL.');
mysql_select_db($database) or die ("Kon de database niet vinden.");
?>


index.php
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
<?php
// Vereist voor het verbinden met de database
require("connect.php");

// Aantal entries in tabel tellen
$count = mysql_query("SELECT COUNT(id) FROM berichten");
$totaal = mysql_result($count, 0);

// Aantal reacties per pagina showen
$aantalReacties = 2;
$aantalPaginas =  ceil($totaal / $aantalReacties);

// Pagina opvragen, zoniet huidige pagina is 0
$pagina = 0;
if(isset($_GET['pagina']) && $_GET['pagina'] > 0 && $_GET['pagina'] <= $aantalPaginas && is_numeric($_GET['pagina'])){
    $pagina = $_GET['pagina'];
}


// Gegevens voor huidige pagina
$reactiesPagina = $pagina * $aantalReacties;
$huidigePagina = mysql_query("SELECT id,naam,email,bericht,datum,tijd,verberg FROM berichten ORDER BY id DESC LIMIT " . $reactiesPagina.",".$aantalReacties);

// Gegevens voor huidige pagina showen
if($totaal == 0){
    echo "Er zijn geen berichten, <a href=\"" . $schrijven . "\">plaats</a> als eerste een bericht!";
}
else {
    while($geg = mysql_fetch_assoc($huidigePagina)){
        $geg['naam'] = ucwords(strtolower($geg['naam']));
        if($geg['verberg'] == 0){
            $poster = '<a href="mailto:' . $geg['email'] . '">' . $geg['naam'] . '</a>';
        }
else {
            $poster = $geg['naam'];
        }

    
        echo "<p><div class=\"comments\" id=\"box\">
            <div class=\"comments\" id=\"head\"><b>"
. $poster . "</b> " . $geg['datum'] . " @ " . $geg['tijd'] . "<span style=\"float:right\"><a href=\"?q=" . $geg['id'] . "\">Quote</a></span></div>
            <div class=\"comments\" id=\"bericht\"><p>"
. $geg['bericht'] . "</p></div>
            <div class=\"comments\" id=\"clear\"></div>
            </div></p>"
;
    }

    echo "<br><a href=\"" . $schrijven . "\">Plaats</a> een bericht";
}


echo "<br><br>";

// Paginanummering
for($i = 0; $i < $aantalPaginas; $i++) {
    if($pagina == $i) {
        if($aantalPaginas == 1){
            echo "";
        }
else {
            echo "<b>".($i+1)."</b>";
        }
    }
else {
        echo "<a href=\"".$_SERVER['REQUEST_URI']."?pagina=".$i."\">".($i+1)."</a>";
    }

    if($i < $aantalPaginas - 1) {
        echo " - ";
    }
}

?>
Gewijzigd op 04/03/2013 15:06:59 door Joren de Wit
 
Mark L

Mark L

15/09/2009 17:59:00
Quote Anchor link
Misschien kun je - naast een maximaal aantal berichten, ook dubbele berichten eruit filteren. Het kan namelijk wel eens gebeuren dat iemand op de submitbutton drukt, de pagina half geladen is > de add-query al is uitgevoerd, maar de pagina nog niet bij de gebruiker aangekomen is.
Nu heb ik nog wel eens de neiging - en met mij vele anderen - om nóg een keer op de submitbutton te drukken, als het laden lang duurt (gewoon, zeker zijn dat hij laadt). Het kan nu dus zijn dat het bericht er 2 keer staat.

Wat je hiertegen kunt doen:
Voor je het bericht insert in je database, controleer je of er een bericht is, dat precies hetzelfde is, de gebruiker hetzelfde is én ook de tijd tussen dat bericht en het 'nieuwe' bericht betrekkelijk kort is. Zo niet, dan aanmaken, zo wel dan heb je een dubbele.
 
- SanThe -

- SanThe -

15/09/2009 19:27:00
Quote Anchor link
Je uiteindelijke html zal niet echt W3C valid zijn.
 
Dick oo

dick oo

15/09/2009 21:45:00
Quote Anchor link
Nee dat dacht ik al :$
Daarom doe ik de HTML ook op het laatst ;)
Ik heb alle outputs van de HTML door de validator, geen fouten meer :)
Ik zal de code vnaaf nog ff veranderen...
Gewijzigd op 01/01/1970 01:00:00 door dick oo
 



Overzicht Reageren

 
 

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.