Geachte Forum gebruikers,

Ik heb een eigen content managment systeem gebouwd. Nu had ik ook 5 licenties voor een editor maar dat word mij te duur. Dus ben ik over gegaan op een gratis editor. En ik kan vanuit mijn cms gewoon pagina's aanmaken en wijzigen dat werkt maar ik kan ook sub-pagina's aanmaken en bij de subpagina's vind hij de editor niet wie kan helpen?


[script]
<body>
<a name="top"></a>
<?
if(session_is_registered('beheerid')){
if ($index != "on"){
echo"<meta http-equiv=\"refresh\" content=\"0; URL=index.php\">";
}
if($smid){
if(!$submita){
$query_submenu = mysql_query("SELECT * FROM submenu WHERE submenu_id='$smid'") or die(mysql_error());
$object_submenu = mysql_fetch_object($query_submenu);
$pagina_soort = "$object_submenu->pagina_soort";
if($pagina_soort == "keuzefiles/contact.php"){
echo"<meta http-equiv=\"refresh\" content=\"0; URL=index.php?pagina=wijzig_contact&mid=$mid&smid=$smid\">";
}
?>
<form method="POST" action="index.php?pagina=wijzig_pagina&mid=<? echo"$mid";?>&smid=<? echo"$smid";?>">
<input type="hidden" name="submita" value="1">
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td class="kopjemenuitems">&nbsp; Wijzig Pagina</td>
</tr>
<tr>
<td class="inhoudmain">

<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="170" class="itemsmenu"><strong>Pagina Title</strong></td>
<td width="10" class="itemsmenu" align="center">:</td>
<td><input type="text" name="submenu_title" size="30" value="<? echo"$object_submenu->submenu_title" ?>"></td>
</tr>
<tr>
<td class="itemsmenu"><strong>Soort Pagina </strong></td>
<td class="itemsmenu" align="center">:</td>
<td>
<?
list($directory, $page, $ext) = split('[/.]', $pagina_soort);
$pagesoort = $page . "." . $ext;
?>
<select size="1" name="pagina_soort">
<option value="">Extra pagina's</option>
<?
$map = "keuzefiles/";
$dir = "../" . $map;
$opendir = @opendir($dir);
while( false !== ( $item = readdir($opendir) )){
if($item != "." AND $item != ".."){
if ($item != ""){
list($page1, $ext1) = split('[/.]', $item);
$items = $page1;
if($pagesoort == $item){
$selected = "selected";
echo "<option " . $selected . " value=\"" . $map . $item . "\">" . $items . "</option>";
}else{
echo "<option value=\"" . $map . $item . "\">" . $items . "</option>";
}
}
} elseif(!$item){
echo "<option selected value=\"\">Er zijn geen pagina's gevonden</option>";
}
}
?>
</select>
</td>
</tr>
</table>
</td>
</tr>
</table>
<br>
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td class="kopjemenuitems">&nbsp; Wijzig Pagina Inhoud </td>
</tr>
<tr>
<td class="inhoudmain">
<textarea name="pagina_inhoud"><? echo"$object_submenu->pagina_inhoud"; ?></textarea>
<center><script language="JavaScript" type="text/javascript" src="/Editor/wysiwyg.js"></script></center> //Editor voor de hoofdpagina's
</td>
</tr>
</table>
<input type="submit" value="Opslaan">
</form>
<?
}else{
mysql_query("UPDATE submenu SET submenu_title='$submenu_title', pagina_inhoud='$pagina_inhoud', pagina_soort='$pagina_soort' WHERE submenu_id = '$smid'") or die(mysql_error());
echo"De wijzigingen zijn opgeslagen";
echo"<meta http-equiv=\"refresh\" content=\"0; URL=index.php?pagina=wijzig_pagina&mid=$mid&smid=$smid\">";
}
}elseif($mid){
if(!$submitb){
$query_menu = mysql_query("SELECT * FROM menu WHERE menu_id='$mid'") or die(mysql_error());
$object_menu = mysql_fetch_object($query_menu);
$pagina_soort = "$object_menu->pagina_soort";
if($pagina_soort == "keuzefiles/contact.php"){
echo"<meta http-equiv=\"refresh\" content=\"0; URL=index.php?pagina=wijzig_contact&mid=$mid\">";
}
?>
<form method="POST" action="index.php?pagina=wijzig_pagina&mid=<? echo"$mid";?>">
<input type="hidden" name="submitb" value="1">
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td class="kopjemenuitems">&nbsp; Wijzig Pagina</td>
</tr>
<tr>
<td class="inhoudmain">

<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="170" class="itemsmenu"><strong>Pagina Title</strong></td>
<td width="10" class="itemsmenu" align="center">:</td>
<td><input type="text" name="menu_title" size="30" value="<? echo"$object_menu->menu_title" ?>"></td>
</tr>
<tr>
<td class="itemsmenu"><strong>Soort Pagina</strong></td>
<td class="itemsmenu" align="center">:</td>
<td>
<?
list($directory, $page, $ext) = split('[/.]', $pagina_soort);
$pagesoort = $page . "." . $ext;
?>
<select size="1" name="pagina_soort">
<option value="">Extra pagina's</option>
<?
$map = "keuzefiles/";
$dir = "../" . $map;
$opendir = @opendir($dir);
while( false !== ( $item = readdir($opendir) )){
if($item != "." AND $item != ".."){
if ($item != ""){
list($page1, $ext1) = split('[/.]', $item);
$items = $page1;
if($pagesoort == $item){
$selected = "selected";
echo "<option " . $selected . " value=\"" . $map . $item . "\">" . $items . "</option>";
}else{
echo "<option value=\"" . $map . $item . "\">" . $items . "</option>";
}
}
} elseif(!$item){
echo "<option selected value=\"\">Er zijn geen pagina's gevonden</option>";
}
}
?>
</select>
</td>
</tr>
</table>
</td>
</tr>
</table>
<br>
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td class="kopjemenuitems">&nbsp;Wijzig Pagina Inhoud</td>
</tr>
<tr>
<td class="inhoudmain">
<script language="JavaScript" type="text/javascript" src="openwysiwyg/wysiwyg.js"> </script> //[editor voor sub-pagina's]
<textarea id="pagina_inhoud" name="pagina_inhoud"><? echo"$object_menu->pagina_inhoud"; ?></textarea>
<script language="JavaScript">
generate_wysiwyg('pagina_inhoud');
</script>
</td>
</tr>
</table>
<input type="submit" value="Opslaan">
</form>
<?
}else{
mysql_query("UPDATE menu SET menu_title='$menu_title', pagina_inhoud='$pagina_inhoud', pagina_soort='$pagina_soort' WHERE menu_id = '$mid'") or die(mysql_error());
echo"De wijzigingen zijn opgeslagen";
echo"<meta http-equiv=\"refresh\" content=\"0; URL=index.php?pagina=wijzig_pagina&mid=$mid\">";
}
}
}else{
echo"<meta http-equiv=\"refresh\" content=\"0; URL=index.php\">";
}
?>
</body>
[/script]
Offtopic: Dit script staat vol potentiele problemen, het ziet er uit als php versie 3. Inmiddels zijn we bij 5 aanbeland, maar jouw provider zal daar waarschijnlijk niet van op de hoogte zijn...

- session_is_registered('beheerid') is ernstig verouderd en moet zijn: $_SESSION['beheerid'].
- variabelen horen nooit tussen quotes te staan:
<?
echo"$mid"; // fout
echo $mid; // goed
?>
- Superglobals... $mid zal waarschijnlijk uit de url komen, dus moet je deze opvragen met $_GET['mid']. Lees eens een artikel over superglobals
- Begin je scripts ALTIJD met de volgende 2 regels:
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);

// rest van je script
?>
- Controleer altijd eerst met isset() of empty() of een variabele wel bestaat en/of inhoud heeft.

Verder is de logica erg ongelukkig, nu staat de output (html) en de logica (controles, database connecties, etc.) lukraak door elkaar. Dat is niet te onderhouden en een garantie op fouten/problemen.

Veel succes!

Reageren