note 96110 added to control-structures.switch

From: Date: Tue, 09 Feb 2010 10:46:15 +0000
Subject: note 96110 added to control-structures.switch
Groups: php.notes 
Request: Send a blank email to php-notes+get-165781@lists.php.net to get a copy of this message
Verbeter het gastenboek zo dat lees-pagina niet meer afhankelijk is van het aantal regels in een gastenboek-bijdrage. Met andere woorden: gebruik een delimiter-veld met een speciale code die het einde van een bijdrage aangeeft. Bijvoorbeeld: <input type="hidden" name="delimiter" value="*-*-*-*-*">. -Laat de lees-pagina controleren op het voorkomen van deze delimiter in plaats van elke vier regels een nieuwe bijdrage te starten. -Let erop dat de delimiter met fgets() inclusief het regeleinde \n wordt gelezen. Deze moet worden meegenomen in de vergelijking. <html> <head> <title>Opdracht 8.1 - Een PHP-gastenboek</title> </head> <body> <h2>Het PHP-gastenboek</h2> <?php // initialisatie $bestandsnaam = "gastenboek.txt"; $aantal_velden = 4; // aantal regels per bijdrage $teller = 0; // variabele om bij te houden hoeveel regels zijn gelezen $aantal_bijdragen = 1; // minimaal 1 bijdrage in het gastenboek. // gastenboek openen voor lezen, eerst testen of gastenboek wel bestaat if (file_exists($bestandsnaam)){ $fp = fopen ($bestandsnaam, "r"); // ja, bestand openen } else{ echo "<h2>Het gastenboek is nog leeg!</h2> <a href=\"voorbeeld_08_gastenboek_schrijf.php\">Schrijf de eerste bijdrage!</a> "; exit; } echo "<h3>Bijdrage: $aantal_bijdragen</h3>"; while (!feof($fp)){ $buffer = fgets($fp); if (substr($buffer,0,9)<>"*-*-*-*-*") echo "$buffer <br>" ; else { $aantal_bijdragen++; echo "<hr>"; echo "<h3>Bijdrage: $aantal_bijdragen</h3>"; } } echo "<a href=\"voorbeeld_08_gastenboek.php\">Terug naar de homepage</a>"; ?> </body> </html> Ongeacht het aantal regels van de bijdrage is het e-mailadres altijd de derde regel in een gastenboekbijdrage. Pas het gastenboek zodanig aan dat het e-mailadres als hyperlink in de pagina wordt getoond en direct aanklikbaar is. <html> <head> <title>Opdracht 8.2 - Een PHP-gastenboek</title> </head> <body> <h2>Het PHP-gastenboek</h2> <?php // initialisatie $bestandsnaam = "gastenboek.txt"; $aantal_velden = 4; // aantal regels per bijdrage $teller = 0; // variabele om bij te houden hoeveel regels zijn gelezen $aantal_bijdragen = 1; // minimaal 1 bijdrage in het gastenboek. // gastenboek openen voor lezen, eerst testen of gastenboek wel bestaat if (file_exists($bestandsnaam)){ $fp = fopen ($bestandsnaam, "r"); // ja, bestand openen } else{ echo "<h2>Het gastenboek is nog leeg!</h2> <a href=\"voorbeeld_08_gastenboek_schrijf.php\">Schrijf de eerste bijdrage!</a> "; exit; } echo "<h3>Bijdrage: $aantal_bijdragen</h3>"; while (!feof($fp)){ $teller++; $buffer = fgets($fp); if (substr($buffer,0,9)<>"*-*-*-*-*") if ($teller==3) echo "<a href='mailto:$buffer'>$buffer</a><br>"; else echo "$buffer <br>" ; else { $aantal_bijdragen++; echo "<hr>"; echo "<h3>Bijdrage: $aantal_bijdragen</h3>"; $teller=0; } } echo "<a href=\"voorbeeld_08_gastenboek.php\">Terug naar de homepage</a>"; ?> </body> </html> ---- Server IP: 83.137.20.135 Probable Submitter: 77.60.75.234 ---- Manual Page -- http://www.php.net/manual/en/control-structures.switch.php Edit -- https://master.php.net/note/edit/96110 Del: integrated -- https://master.php.net/note/delete/96110/integrated Del: useless -- https://master.php.net/note/delete/96110/useless Del: bad code -- https://master.php.net/note/delete/96110/bad+code Del: spam -- https://master.php.net/note/delete/96110/spam Del: non-english -- https://master.php.net/note/delete/96110/non-english Del: in docs -- https://master.php.net/note/delete/96110/in+docs Del: other reasons-- https://master.php.net/note/delete/96110 Reject -- https://master.php.net/note/reject/96110 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#165781) next »