<?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_index1); 

// 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_index1); 


// 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() 
?>