Foros del Web » Programando para Internet » PHP »

Duda con unos codigos de foro

Estas en el tema de Duda con unos codigos de foro en el foro de PHP en Foros del Web. He pillado el codigo de un foro en php No me da errores, me va todo bien, pero me da unos cuantos noticies En este ...
  #1 (permalink)  
Antiguo 28/05/2006, 05:39
 
Fecha de Ingreso: mayo-2006
Mensajes: 6
Antigüedad: 11 años, 7 meses
Puntos: 0
Duda con unos codigos de foro

He pillado el codigo de un foro en php
No me da errores, me va todo bien, pero me da unos cuantos noticies

En este codigo:

Respuesta.php

Código PHP:
<?php
require('funciones.php');
$id $_GET["id"];
$citar $_GET["citar"];
$row = array("id" => $id);
if(
$citar==1)
{
    require(
'configuracion.php');
    
$sql "SELECT titulo, mensaje, identificador AS id FROM foro WHERE id='$id'";
    
$rs mysql_query($sql$con);
    if(
mysql_num_rows($rs)==1$row mysql_fetch_assoc($rs);
    
$row["titulo"] = "Re: ".$row["titulo"];
    
$row["mensaje"] = "[citar]".$row["mensaje"]."[/citar]";
    if(
$row["id"]==0$row["id"]=$id;
}
$template implode(""file('formulario.html'));
include(
'header.html');
mostrarTemplate($template$row);
include(
'footer.html');
?>
Notice: Undefined index: id in C:\Archivos de programa\Apache Group\Apache2\htdocs\Anime\foro\respuesta.php on line 3

Notice: Undefined index: citar in C:\Archivos de programa\Apache Group\Apache2\htdocs\Anime\foro\respuesta.php on line

y en la misma pantalla de respuesta, me da esto a la hora de rellenar el formulario para crear nuevo tema:

En el campo titulo:

<br /><b>Notice</b>: Undefined variable: titulo in <b>C:\Archivos de programa\Apache Group\Apache2\htdocs\Anime\foro\funciones.php(6) : eval()'d code</b> on line <b>10</b><br />

Y en el campo texto:
<br />
<b>Notice</b>: Undefined variable: mensaje in <b>C:\Archivos de programa\Apache Group\Apache2\htdocs\Anime\foro\funciones.php(6) : eval()'d code</b> on line <b>14</b><br />

funciones.php

Código PHP:
<?php
function mostrarTemplate($tema$variables)
{
    
//var_dump($variables);
    
extract($variables);
    eval(
"?>".$tema."<?");
}

function 
parsearTags($mensaje)
{
    
$mensaje str_replace("[citar]""<blockquote><hr width='100%' size='2'>"$mensaje);
    
$mensaje str_replace("[/citar]""<hr width='100%' size='2'></blockquote>"$mensaje);
    return 
$mensaje;
}
?>
Y el codigo de agregar, me agrega todo, pero si le doy solo a el , me da estos errores:

Notice: Undefined index: autor in C:\Archivos de programa\Apache Group\Apache2\htdocs\Anime\foro\agregar.php on line 3

Notice: Undefined index: titulo in C:\Archivos de programa\Apache Group\Apache2\htdocs\Anime\foro\agregar.php on line 4

Notice: Undefined index: mensaje in C:\Archivos de programa\Apache Group\Apache2\htdocs\Anime\foro\agregar.php on line 5

Notice: Undefined index: identificador in C:\Archivos de programa\Apache Group\Apache2\htdocs\Anime\foro\agregar.php on line 6

Warning: Cannot modify header information - headers already sent by (output started at C:\Archivos de programa\Apache Group\Apache2\htdocs\Anime\foro\agregar.php:3) in C:\Archivos de programa\Apache Group\Apache2\htdocs\Anime\foro\agregar.php on line 30

Código PHP:
<?php
require('configuracion.php');
$autor $_POST["autor"];
$titulo $_POST["titulo"];
$mensaje $_POST["mensaje"];
$ident $_POST["identificador"];

//Hacemos algunas validaciones
if(empty($autor)) $autor "Anónimo";
if(empty(
$titulo)) $titulo "Sin título";
//Evitamos que el usuario ingrese HTML
$mensaje htmlentities($mensaje);

// Grabamos el mensaje en la base.
$sql "INSERT INTO foro (autor, titulo, mensaje, identificador, fecha, ult_respuesta) ";
$sql.= "VALUES ('$autor','$titulo','$mensaje','$ident',NOW(),NOW())";
$rs mysql_query($sql$con) or die("Error al grabar un mensaje: ".mysql_error);
$ult_id mysql_insert_id($con);

/* si es un mensaje en respuesta a otro
   actualizamos los datos */
if(!empty($ident))
{
    
$sql "UPDATE foro SET respuestas=respuestas+1, ult_respuesta=NOW()";
    
$sql.= " WHERE id = '$ident'";
    
$rs mysql_query($sql$con);
    
Header("Location: foro.php?id=$ident#$ult_id");
    exit();
}
Header("Location: index.php");
?>
  #2 (permalink)  
Antiguo 28/05/2006, 09:27
 
Fecha de Ingreso: abril-2006
Mensajes: 62
Antigüedad: 11 años, 7 meses
Puntos: 0
cual es la pregunta

supongo que tu pregunta es como evitar que aparezcan esos errores.

Si es así tenés dos opciones, corregir el código para que no los genere o deshabilitar el reporte de errores.

Los errores de undefined index ocurren cuando se trata de acceder a un arreglo con un clave que no existe. Podés evitarlo usando array_key_exists(), por ejemplo en el primer error, de la línea 3 sería:
Código PHP:
if (array_key_exists("id", $:GET) {
   
$id $_GET["id"];

Por otra parte si es que funciona todo OK, sin problemas, podés simplemente deshabilitar la presentación de errores para eso deberías leer algun tutorial al respecto. No se si hay alguno en las FAQs de este foro, podés buscar también en www.zend.com/php/beginners/php101-12.php
__________________
Guish
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:57.