Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/06/2004, 17:49
Dahn
 
Fecha de Ingreso: junio-2004
Ubicación: Demasiado lejos
Mensajes: 52
Antigüedad: 19 años, 10 meses
Puntos: 0
Error con las comillas en un script de noticias

Tengo un par de problemas con un código en php que utilizo como gestor de noticias en mi web... El caso esq al mandar una noticia desde un form no me muestra bien las comillas ya que si yo escribo '"hola"' me devuelve '\"hola\"'.

Tambien quiero solucionar que al darle a la tecla "Enter" me salga un error y me descoloque todo el script...

Bueno, aqui mismo dejo el código de todos los ficheros:

admin.php
------------------------------
Código:
<table width="93%" align="center"><tr><td>
<? include("index/noticias/config.php");
	switch($accion) {
	case panel:

	if($NombreAdmin == $user AND $ContraseñaAdmin == $pass) {
?>
<form name="form" action="index.php?page=Admin" method="post"><input type="hidden" name="user" value="<?= $user ?>">
    <input type="hidden" name="pass" value="<?= $pass ?>"><table width="1%" align="center" cellpadding="5">
            <tr> 
              <td><div align="center"><select size="1" name="accion" class="form">
                <option value="nuevo">Insertar</option>
                <option value="borrar">Borrar</option>
              </select></div></td>
              <td><div align="center"><input name="submit" type="submit" class="form" value="Entrar"></div></td>
            </tr>
          </table>
        </form>
		<? } else { ?>
      <div align="center"><font size="2">Error: Nombre o contraseña incorrectos.<br>
<br><b><a href="index.php?page=Admin">Volver</a></b></font></div>
<? } break; case nuevo: if($NombreAdmin == $user AND $ContraseñaAdmin == $pass) { ?>
<form name="form" action="index.php?page=Admin" method="post"><div align="center"><input type="hidden" name="accion" value="publicar">
<input type="hidden" name="user" value="<?= $user ?>"><input type="hidden" name="pass" value="<?= $pass ?>"><font size="2">Nombre:</font>
<br><br><input name="nombre" type="text" class="form" size="80"><br><br><font size="2">Titulo:</font><br><br><input type="text" name="titulo" size="80" class="form">
<br><br><font size="2">Contenido:</font><br><br><textarea rows="10" name="contenido" cols="77" class="form"></textarea>
          <br></div><br>
        <font size="2"><strong>Notas</strong>:<br>
        - No se pueden utilizar comillas; si quieres usar c&oacute;digo HTML tendr&aacute;s 
        que hacerlo de la siguiente manera: &quot;<strong>&lt;a href=WEB&gt;WEB&lt;/a&gt;</strong>&quot; 
        o &quot;<strong>&lt;img src=IMAGEN&gt;</strong>&quot; (por ejemplo).<br>
        - Para 
        cambiar de l&iacute;nea hay que usar la etiqueta &quot;<strong>&lt;br&gt;</strong>&quot; 
        ya que si lo haces normalmente se producir&aacute; un error.</font><br>
        <br><div align="center"><input type="submit" value="Enviar" color: "#505F71" class="form"></div></form><? } else { ?><div align="center">
<font size="2">Error: Identifícate de nuevo.<br><br><b><a href="index.php">Volver</a></b></font></div>
<?
	}
	break;
	case publicar:

	if($NombreAdmin == $user AND $ContraseñaAdmin == $pass) {

	$fecha = date("d/m/Y");
	$nombre = trim($nombre); $titulo = trim($titulo);
$contenido = trim($contenido);
if(empty($nombre)) { $error[] = "Nombre."; }
if(empty($titulo)) { $error[] = "Título."; }
if(empty($contenido)) { $error[] = "Contenido."; } if($error) { ?>
<div align="center"><font size="2">Error, faltan los siguientes datos:<br><br>
<? for($i = 0; $i < sizeof($error); $i++) { echo "- $error[$i]<br>"; } ?><br><b>
<a href="index.php?page=Admin">Volver</a></b></font></div><? } else { $fp = fopen($FicheroId,"r"); $id = fread($fp, filesize($FicheroId)); $id ++; fclose($fp); $fp = fopen($FicheroId, "w");
fwrite($fp, $id); fclose($fp); $firma = "$id|@|$nombre|@|$titulo|@|$contenido|@|$fecha|@|\n"; $fp = fopen($FicheroBase, "a");
fwrite($fp, $firma); fclose($fp); ?><div align="center"><font size="2">&iexcl;La noticia ha sido publicada con &eacute;xito!<br><br>
<b><a href="index.php?page=Noticias">Volver</a></b></font></div><? } } else { ?><div align="center">
<font size="2">Error: Identifícate de nuevo.<br><br><b><a href="index.php?page=Noticias">Volver</a></b></font></div>
<?
	}
	break;
	
	case borrar:

	if($NombreAdmin == $user AND $ContraseñaAdmin == $pass) {

	if($idmensaje) {

	$Base = file($FicheroBase);

	for ($i = 0; $i < count($Base); $i++) {
	$dato = explode("|@|", $Base[$i]);

	if ($dato[0] == $idmensaje) {
	$Base[$i] = "";
	
	$fp = fopen("$FicheroBase", "w+");
	for ($i = 0; $i < count($Base); $i++) {
	fwrite($fp, $Base[$i]);
	}
	fclose($fp);
?>
<div align="center">
<font size="2">&iexcl;La noticia ha sido eliminada con &eacute;xito!<br><br><b><a href="index.php?page=Noticias">Volver</a></b>
</font></div>
<?
	}
	}
	} else {
?>
<form action="index.php?page=Admin" method="post"><div align="center"><input type="hidden" name="accion" value="borrar">
<input type="hidden" name="user" value="<?= $user ?>"><input type="hidden" name="pass" value="<?= $pass ?>">
<font size="2">Número de la noticia:</font><br><br><input type="text" name="idmensaje" size="80" class="form"><br><br></div>
        <font size="2"><strong>Nota</strong>: No se pueden borrar varias noticias 
        a la vez.</font><br>
        <br>
<div align="center"><input type="submit" value="Borrar" class="form"></div></form><hr width="100%" size="2" color="#3E0E0E" noshade></td></tr>
</table><table width="93%" align="center">
<?
	$Base = file($FicheroBase);

	for ($i = 0; $i < count($Base); $i++) {
	$dato = explode("|@|", $Base[$i]);

	$dato[4] = str_replace("<br>", " - ", $dato[4]);
?>
  <tr><td><strong><font size="2">Nº <?= $dato[0] ?></font></strong>:<font size="2"> <?= $dato[2] ?></font></td></tr><tr><td>
  </td></tr><? } ?><table><? } } else { ?></table><table width="93%" align="center"><div align="center">
  <font size="2">Error: Identifícate de nuevo.<br><br><b><a href="index.php?page=Admin">Volver</a></b></font></div>
  <?
	}
	break;
	default:
?>
<table width="93%" align="center"><form name="form" action="index.php?page=Admin" method="post"><tr><td><div align="center">
<input type="hidden" name="accion" value="panel"><font size="2">Nombre:</font><br><br>
<input type="text" name="user" size="80" class="form"><br><br><font size="2">Contraseña:</font><br><br>
<input type="password" name="pass" size="80" class="form"><br><br><input type="submit" value="Entrar" class="form"></div></td></tr>
</form></table><? } ?></table>
config.php
------------------------------
Código:
<?
	$NombreAdmin = "user";
	$ContraseñaAdmin = "pass";
	$LimiteNoticias = 10;
	$FicheroBase = "index/noticias/noticias/noticias.php";
	$FicheroId = "index/noticias/noticias/id.php";
?>
index.php
------------------------------
Código:
<? include("config.php");

	$Base = file($FicheroBase);
	$Orden = array_reverse($Base);

	if(empty($page2)) {$page2 = 0;}
	$Mostrar = $page2 + $LimiteNoticias;

	for ($i = $page2; $i < count($Orden) AND $i < $Mostrar; $i++) {$dato = explode("|@|", $Orden[$i]);

 	$nombre = $dato[1];
	$titulo = $dato[2];
	$contenido = $dato[3];
	$fecha = $dato[4];
	
	include("noticias.php");}

	function Antiguas() {global $LimiteNoticias, $Base; if($LimiteNoticias < count($Base))
	{$Paginas = count($Base) / $LimiteNoticias; echo "<font size='2'><b>Noticias antiguas: </b>";
	for($i = 0; $i < $Paginas; $i++) {echo "<a href=index.php?page2=". $i * $LimiteNoticias .">". ( $i + 1 ) ."</a> \n";}
	return;}} ?>

<hr width="93%" size="2" color="#3E0E0E" noshade><br><table cellpadding="5" cellspacing="1" width="96%" align="center"><tr><td><div align="justify"><? Antiguas(); ?></div></font></td></tr></table>
noticias.php
------------------------------
Código:
<table width="93%" align="center"><tr><td> <div align="center"><strong><font size="2"><?= $titulo ?></font></strong></div></td></tr><tr><td><div><font size="2"><?= $contenido ?></font></div></td></tr><tr><td align="center"><div align="right"><font size="2">Por <b><a href="index.php?page=Email"><?= $nombre ?></a></b> el <b> <?= $fecha ?></b></font></div></td></tr></table><br><br>
Los ficheros id.php y noticias.php que estan en la carpeta noticias/ no los pongo porque estan vacíos (ya que es ahí donde se almacenan los datos).

Se que es mucho código a revisar pero por más que lo miro yo sólo no consigo arreglarlo y estaría bien que alguien de este foro que controlase del tema le echase un vistazo.

Muchas gracias!
__________________
I'll be here..., Why...?, I'll be 'waiting'...here..., For what?, I'll be waiting...for you...so..., If you come here..., You'll find me, I promise.