<?php echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?".">"; ?> <!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"> <head> <title>favorieten4-8</title> <link rel="stylesheet" href="phpcursus.css" type="text/css" /> <link rel="shortcut icon" href="Images/hortensia.ico" /> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <meta name="keywords" content="cursus PHP" /> <meta name="description" content="Uitleg werken met PHP" /> <meta name="Autor" content="Solveg" /> <style type="text/css"> BODY {scrollbar-3dlight-color:#999966; scrollbar-arrow-color:#996666; scrollbar-base-color:#999966; scrollbar-track-color:#996666; scrollbar-darkshadow-color:#999966; scrollbar-face-color:#996666; scrollbar-highlight-color:#999966; scrollbar-shadow-color:#996666} </style> <script language="JavaScript" type="text/JavaScript"> <!-- function MM_reloadPage(init) { //reloads the window if Nav4 resized if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) { document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }} else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload(); } MM_reloadPage(true); //--> </script> </head> <br /> <table width="65%" border="1" align="center" cellspacing="10" bordercolor="#000000" bgcolor="#999966" id="PHP"> <tr bordercolor="#000000" bgcolor="#999999"> <td width="72%" colspan="3"> <table width="100%" border="1" cellpadding="6" cellspacing="10" bordercolor="#000000" bgcolor="#996666"> <tr> <td><table width="100%" border="1" cellpadding="100" cellspacing="6" bordercolor="#000000" bgcolor="#996666"> <tr bgcolor="#D6D6AD"> <td width="6%" bordercolor="#000000" bgcolor="#D6D6AD"></td> </tr> <tr bgcolor="#D6D6AD"> <td bordercolor="#000000" bgcolor="#D6D6AD"><p align="right"><a href="week4.php"><strong>Terug</strong></a> <strong><a href="show.php">Source</a></strong><img src="Images/hallosurfer.gif" alt="Hallo Surfer" width="113" height="117" /></p> <?php require("functie4-8.php"); if (IsSet($_POST['password']) && $_POST['password'] == "Sol") { /* password is in orde!! als welke_actie geen waarde heeft, dan gewoon de favorietenpagina opmaken */ /* als welke_actie geen waarde heeft, dan gewoon de favorietenpagina opmaken */ if (IsSet($_POST['welke_actie'])) { if ($_POST['welke_actie'] == "Wijzig") { /* als verwijzing_wijzigen is afgesloten met een succesvolle aanpassing van het favorietenbestand wordt true teruggegeven, anders false */ if (verwijzing_wijzigen($_POST['regel'])) { pagina_opmaken(); } } // einde Wijzig elseif ($_POST['welke_actie'] == "Gooi weg") { verwijzing_verwijderen($_POST['regel']); pagina_opmaken(); } // einde Gooi weg elseif ($_POST['welke_actie'] == "Nieuw") { /* in het formulier wordt de actie op Wijzig gezet, dus het vervolg van deze actie wordt afgehandeld in de tak Wijzig */ wijzigingsformulier("", "", "", ""); } // einde Nieuw else // welke_actie heeft een onbekende waarde { pagina_opmaken(); } } else // welke_actie heeft nog helemaal geen waarde gekregen { pagina_opmaken(); }// einde if IsSet welke_actie } // einde if password in orde else { // password nog niet in orde bevonden if (IsSet($_POST['password'])) { echo '<p><h3><b>MIJN FAVORIETEN</b></h3></p>'; echo '<p>Mis... probeer het nog een keer! misschien is het wel "Sol"!!</p>'; } else { echo '<p>Om verder te kunnen moet je hier het password invullen!</p>'; } echo ' <form action="'.$_SERVER['PHP_SELF'].'" method="post"> <input type="password" name="password" size="10" maxlength="10" style="background-color:##D6D6AD;border-color:#996666;border-width:6;color:#333366;font-weight:bold;font-size:16"><br><br> <input type="submit" name="submit" value="Sesam!" style="background-color:##D6D6AD;border-color:#996666;border-width:6;color:#333366;font-weight:bold;font-size:16"> </form>'; } ?> <div align="right"></div></td> </tr> </table></td> </tr> </table></td> </tr> </table> </body> </html>
<?php echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?".">"; ?> <?php /* function pagina_opmaken() Maak een pagina met verwijzingen naar favorieten. */ function pagina_opmaken() { echo '<p><h3><b>MIJN FAVORIETEN</b></h3></p>';
// het bestand met de verwijzingen in een array inlezen $array_favorieten = file("favo.txt"); // de regelovergangen uit de tabel verwijderen, die worden bij het //wegschrijven van het bestand opnieuw toegevoegd for ($i=0; $i<count($array_favorieten); $i++) { $array_favorieten[$i] = trim($array_favorieten[$i]); } // tellen hoeveel elementen er in de tabel zijn terechtgekomen $totaal = sizeof($array_favorieten); // als er geen verwijzingen zijn een melding geven if ($totaal == 0) { echo "<p>Er zijn geen verwijzingen aangetroffen in het bestand met favorieten.</p>"; } else { // een variabele om te bepalen of de naam van de rubriek getoond moet worden $rubriek_vorig = ""; // van elk element in de array een verwijzing maken foreach ($array_favorieten as $regel) { // regel opsplitsen in rubriek, linknaam en linkurl // zoeken naar de haakjes, let daarbij op de beginpositie voor het zoeken $vanaf1 = strpos($regel, '(', 0) + 1; $lengte1 = strpos($regel, ')', 0) - $vanaf1; $rubriek = substr($regel, $vanaf1, $lengte1);
$vanaf2 = strpos($regel, '(', $vanaf1+$lengte1) + 1; $lengte2 = strpos($regel, ')', $vanaf2) - $vanaf2; $linknaam = substr($regel, $vanaf2, $lengte2);
$vanaf3 = strpos($regel, '(', $vanaf2+$lengte2) + 1; $lengte3 = strpos($regel, ')', $vanaf3) - $vanaf3; $linkurl = substr($regel, $vanaf3, $lengte3); // rubriek alleen bij verandering tonen if ($rubriek != $rubriek_vorig) { echo '<p><b>' . $rubriek . '</b></p>'; $rubriek_vorig = $rubriek; } // de verwijzing zelf, voorzien van de knop Wijzig en gooiweg echo '
<form action="'.$_SERVER['PHP_SELF'].'" method="post"> <input type="submit" name="welke_actie" value="Wijzig" style="background-color:##D6D6AD;border-color:#996666;border-width:6;color:#333366;font-weight:bold;font-size:16"> <input type="submit" name="welke_actie" value="Gooi weg" style="background-color:##D6D6AD;border-color:#996666;border-width:6;color:#333366;font-weight:bold;font-size:16"> <input type="hidden" name="password" value="' . $_POST['password'] . '"> <input type ="hidden" name="regel" value="' . $regel . '"> <a target="_blank" href="' . $linkurl . '">' . $linknaam . '</a> </form><br>'; } // einde foreach() } // einde if ($totaal == 0) echo ' <form action="'.$_SERVER['PHP_SELF'].'" method="post"> <input type="hidden" name="password" value="' . $_POST['password'] . '"> <input type="submit" name="welke_actie" value="Nieuw" style="background-color:##D6D6AD;border-color:#996666;border-width:6;color:#333366;font-weight:bold;font-size:16"></form>'; }
//einde pagina_opmaken()
/* function verwijzing_wijzigen() Een bestaande verwijzing wijzigen of een nieuwe verwijzing toevoegen. $w_regel bevat de verwijzing die gewijzigd moet worden als $w_regel leeg is, gaat het om een nieuwe verwijzing De terugkeerwaarde van deze functie: true: de wijziging is helemaal afgerond, de favorietenpagina kan opnieuw getoond worden false: de wijziging is nog onderhanden */ function verwijzing_wijzigen($w_regel) { // de drie velden die een nieuwe inhoud zullen krijgen $w_rubriek = ""; $w_linknaam = ""; $w_linkurl = "";
// controleer of de rubriek ingevuld is if (IsSet($_POST['rubriek'])) { $w_rubriek = $_POST['rubriek']; }
// controleer of de linknaam ingevuld is if (IsSet($_POST['linknaam'])) { $w_linknaam = $_POST['linknaam']; }
// controleer of de linkurl ingevuld is if (IsSet($_POST['linkurl'])) { $w_linkurl = $_POST['linkurl']; }
// als alledrie de velden zijn ingevuld: bestand met favorieten aanpassen if ($w_rubriek != "" && $w_linknaam != "" && $w_linkurl != "") { bestand_aanpassen($w_regel, $w_rubriek, $w_linknaam, $w_linkurl); return true; }
// als niet alledrie de velden ingevuld zijn: een melding en het formulier opnieuw tonen echo 'Alle velden moeten verplicht ingevuld worden!'; wijzigingsformulier($w_regel, $w_rubriek, $w_linknaam, $w_linkurl); return false;
} // einde verwijzing_wijzigen()
/* function verwijzing_verwijderen() Een verwijzing uit het bestand verwijderen. */ function verwijzing_verwijderen($v_regel) { // het bestand met de verwijzingen in een array inlezen $array_favorieten = file("favo.txt");
// de regelovergangen uit de tabel verwijderen, die worden bij // het wegschrijven van het bestand opnieuw toegevoegd for ($i=0; $i<count($array_favorieten); $i++) { $array_favorieten[$i] = trim($array_favorieten[$i]); }
// opzoeken welk element het in de tabel is $array_index = array_search($v_regel, $array_favorieten);
// de verwijzing verwijderen array_splice($array_favorieten, $array_index, 1);
// de tabel samenvoegen tot een bestand $favo_bestand = implode("\r\n", $array_favorieten); // het bestand met favorieten wegschrijven $fh_favo = fopen("favo.txt", "w"); if ($fh_favo) { fwrite($fh_favo, $favo_bestand); } fclose($fh_favo);
} // einde verwijzing_verwijderen()
/* function bestand_aanpassen () Het bestand met favorieten daadwerkelijk aanpassen. In $b_regel staat de oorspronkelijke verwijzing (leeg ingeval van een nieuwe verwijzing). In de andere drie variabelen staan eventueel aangepaste gegevens. */ function bestand_aanpassen ($b_regel, $b_rubriek, $b_linknaam, $b_linkurl) { // inhoud van de nieuwe verwijzing samenstellen $b_nieuwe_regel = '(' . $b_rubriek . ')(' . $b_linknaam . ')(' . $b_linkurl . ')';
// het bestand met de verwijzingen in een array inlezen $array_favorieten = file("favo.txt");
// de regelovergangen uit de tabel verwijderen, die worden bij het //wegschrijven van het bestand opnieuw toegevoegd for ($i=0; $i<count($array_favorieten); $i++) { $array_favorieten[$i] = trim($array_favorieten[$i]); }
// alleen voor bestaande elementen het origineel verwijderen if ($b_regel != "") { // opzoeken welk element het in de array is $array_index = array_search($b_regel, $array_favorieten);
// de oude verwijzing verwijderen array_splice($array_favorieten, $array_index, 1); }
// de vernieuwde verwijzing toevoegen array_push($array_favorieten, $b_nieuwe_regel);
// de array sorteren zodat de favorieten in de goede volgorde getoond worden sort ($array_favorieten);
// de array samenvoegen tot een bestand $favo_bestand = implode("\r\n", $array_favorieten); // het bestand met favorieten wegschrijven $fh_favo = fopen("favo.txt", "w"); if ($fh_favo) { fwrite($fh_favo, $favo_bestand); } fclose($fh_favo); } // einde bestand_aanpassen ()
/* function wijzigingsformulier () Toon een formulier waarmee een verwijzing aangepast kan worden. In $f_regel staat de oorspronkelijke verwijzing (leeg ingeval van een nieuwe verwijzing). In de andere drie velden staan eventueel aangepaste gegevens. */
function wijzigingsformulier ($f_regel, $f_rubriek, $f_linknaam, $f_linkurl) { // oorspronkelijke verwijzing ontrafelen // voor een nieuwe link is er geen oorspronkelijke verwijzing if ($f_regel != "") { $vanaf1 = strpos($f_regel, '(', 0) + 1; $lengte1 = strpos($f_regel, ')', 0) - $vanaf1; $rubriek = substr($f_regel, $vanaf1, $lengte1);
$vanaf2 = strpos($f_regel, '(', $vanaf1+$lengte1) + 1; $lengte2 = strpos($f_regel, ')', $vanaf2) - $vanaf2; $linknaam = substr($f_regel, $vanaf2, $lengte2);
$vanaf3 = strpos($f_regel, '(', $vanaf2+$lengte2) + 1; $lengte3 = strpos($f_regel, ')', $vanaf3) - $vanaf3; $linkurl = substr($f_regel, $vanaf3, $lengte3); }
// bestaande inhoud van een veld laten zien, dat scheelt typewerk if ($f_rubriek == "") { $f_rubriek = $rubriek; }
if ($f_linknaam == "") { $f_linknaam = $linknaam; }
if ($f_linkurl == "") { $f_linkurl = $linkurl; }
// het formulier voor een wijziging naar het scherm schrijven echo ' <form action="'.$_SERVER['PHP_SELF'].'" method="post"> <input type="hidden" name="password" value="' . $_POST['password'] . '"> <input type ="hidden" name="regel" value="' . $f_regel . '"> <p> Rubriek:<br> <input type="text" name="rubriek" size="50" maxlength="100" value="'.$f_rubriek.'"><br> Linknaam:<br> <input type="text" name="linknaam" size="50" maxlength="100" value="'.$f_linknaam.'"><br> Link URL:<br> <input type="text" name="linkurl" size="50" maxlength="255" value="'.$f_linkurl.'"> </p> <p>Wijzig de inhoud van de rubriek en klik op Wijzig! Alle velden zijn verplicht.</p> <p><input type="submit" name="welke_actie" value="Wijzig" ></p> </form> ';
} // einde wijzigingsformulier() ?>
|
|
|