Estoy haciendo una pagina web, swlt.com y tengo un panel para subir noticias. Subo las noticias tal y cual y luego tengo otro panel que es donde salen todas las noticias para publicarlas. EN ese panel, sale el titulo de la noticia, el autor, etc etc... y un textArea (con un editor para este llamado tinymce) que es donde se muestra la noticia que escribimos anteriormente en el otro panel. La noticia, osea lo que escribimos en el textArea se guarda en un archivo del hosting.
Todas las noticias son formularios independientes y cuando enviamos los campos en el submit se va a una pagina donde los recoge y los inserta en la BD.
Mi problema esque a veces, sin venir a cuento, en algunas noticias si y en otras no, puedo le doy a que se publiquen la noticia y envio los datos de ese formulario, me sale un error "Forbidden You do not have permission to access this document. " y no tengo ni la mas remota idea de porque. EN algunas si, en otras no....
Creo que puede ser por tema de que introduzco enlaces <a> en el text area pero lo he probado y no me cuadra.
Tambien he repasado los permisos y tampoco es eso puesto que tengo los permisos necesarios para modificar el archivo.
Les pongo el código de la pagina que genera los formularios para modificar lo que sea y enviarlos de nuevo.
Código PHP:
echo "<div class='noticias'>
<a href='./agregar_noticia.php'>Click aqui para agregar una noticia </a>
";
echo "<h2> NOTICIAS </h2>";
//recorremos el array asociativo que contiene todas las noticias
for($i = 0; $i < count($result); $i++){
//Lo primero que hacemos es formatear el campo TIMESPAMP que nos llega del servidor, ponerlo en formato (Y-M-D) para despues comprobar si equivale a la fecha de hoy y sino, descartar esa noticia.
//Esto es para sacar solo las noticias del dia actual
$fecha_actual = date("Y-m-d");
$timestamp = strtotime($result[$i]['fecha']);
$fecha_format = date("Y-m-d", $timestamp);
//hacemos la comprobacion de si las fechas coinciden y de ser asi, sacamos las noticias
//inicio if comprobacion fecha
if($fecha_format == $fecha_actual){
//mostramos capa noticia, que es un formulario dentro de una capa form
echo "
<div class='form'>
<form action='change_notice.php' method='POST'>
<input type='hidden' name='id_noticia' value='".$result[$i]['id_noticia']."' />
Titular: <input type='text' name='titular' value='".mb_strtoupper($result[$i]['titular'], 'UTF-8')."' />
Autor: <input type='text' name='autor' value='".$result[$i]['autor']."' />
Titulo redaccion <input type='text' name='redaccion' value='".$result[$i]['titulo_redaccion']."' />
Categoria Naranja: <input type='text' name='cat_naranja' value='".$result[$i]['categoria_naranja']."' />
Publicada: *(0 para no y 1 para si) <input type='number' name='publicada' value='".$result[$i]['publicada']."' />
Categoria: <select name='categoria'>
<option selected='selected'>".$result[$i]['categoria']."</option>
<option>Extremadura</option>
<option>Andalucia</option>
<option>Madrid</option>
<option>Cataluña</option>
<option>Castilla la Mancha</option>
<option>Castilla Leon</option>
<option>Galicia</option>
<option>Aragon</option>
<option>Asturias</option>
<option>La Rioja</option>
<option>Baleares</option>
<option>Canarias</option>
<option>Cantabria</option>
<option>Valencia</option>
<option>Pais Vasco</option>
<option>Navarra</option>
<option>Murcia</option>
<option>Ceuta</option>
<option>Melilla</option>
<option>Motor</option>
<option>Acuaticos</option>
<option>Raqueta</option>
<option>Contacto</option>
<option>Balon</option>
<option>Activo</option>
<option>Naturaleza</option>
<option>Discapacitados</option>
<option>Invierno</option>
<option>Otros</option>
</select>";
//ahora mostramos un select con Si o No para la noticia destacada en la categoria. Hacemos un control para no repetir valores.
if($result[$i]['destacada_categoria'] == "Si"){
echo "Noticia destacada en la categoria:
<select name='destacada_categoria'>
<option selected='selected'>".$result[$i]['destacada_categoria']."</option>
<option>No</option>
</select>";
}else{
echo "Noticia destacada en la categoria:
<select name='destacada_categoria'>
<option selected='selected'>".$result[$i]['destacada_categoria']."</option>
<option>Si</option>
</select>";
}
//ahora mostramos un select con Si o No para la noticia destacada en el index. Hacemos un control para no repetir valores.
if($result[$i]['destacada_index'] == "Si"){
echo "Noticia destacada en INDEX:
<select name='destacada_index'>
<option selected='selected'>".$result[$i]['destacada_index']."</option>
<option>No</option>
</select>";
}else{
echo "Noticia destacada en INDEX:
<select name='destacada_index'>
<option selected='selected'>".$result[$i]['destacada_index']."</option>
<option>Si</option>
</select>";
}
echo "<br/>
";
if(abrir_archivo($result, $i) == false){
echo "
No aparece la noticia porque ha ocurrido un error. No se ha encontrado el archivo o esta dañado...
<br/>
<!-- Creamos un campo oculto para ver eliminar solo los datos de la tabla -->
<input type='hidden' value='hidden_normal' name='hidden_normal'/>
<input type='submit' value='Modificar Noticia' disabled='disabled'/>
<a href='delete_notice.php?not=normal&key=".$result[$i]['id_noticia']."&hidden=true'> Borrar noticia </a>
</form>
</div>";
}else {
$cadena = abrir_archivo($result, $i);
echo "
<br/>
<div class='margin_textArea'>
<textarea value='' cols='40' rows='20' name='noticia'>
$cadena
</textarea>
</div>
<br/>
<input type='submit' value='Modificar Noticia'/>
<a href='delete_notice.php?not=normal&key=".$result[$i]['id_noticia']."'> Borrar noticia </a>
</form>
</div>";
}
}//fin IF comprobacion fecha
else{
continue;
}
}//FIN FOREACH - WHILE
echo "<div class='clear'> </div> ";//capa clear para limpiar los floats
echo "</div>";//cierre de capa noticias
}else{
die("No se ha ejecutado correctamente la consulta. Por favor, vuelva a intentarlo");
}//FIN ELSE
-Todas las inserciones a la BD y los valores de todos los campos que nos llega de ese archivo es la pagina change_noticia.php
-Esos campos lo que tenemos que hacer es cogerlos y meterlos en una base de datos. Cada formulario es una noticia y es un archivo aparte quien agrega todo eso a la BD.
-La informacion del TextArea la guardamos en un archivo txt normal y corriente.
-El formulario se envia mediante POST
-los valores los recogo con $_REQUEST
Si tienen alguna duda no olviden preguntar, que es gratis ;)
Espero que me haya explicado bien, si no es asi, no duden en decirmelo y gustosamente les contestaré.