Ayuda PHP

DeVoN

Hola,

haber hoy en mi web he añadido un foro simple de php y mysql, no es gran cosa, pero es personalizado y eso...Bueno pues tengo un problema, lo ke tiene funciona bien, y se pueden postear post, pero cuando le das a enviar sale este error:

Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhost/distrasvi.com/home/html/scf/index.php:13) in /var/www/vhost/distrasvi.com/home/html/scf/includes/agregar.php on line 30

Mi web esta echa en php y mysql, os pongo la URL del foro y os haceis una idea de como esta hecha...
http://www.distrasvi.com/scf/index.php?s=index
(index.php, es el index del foro)
si visitais mas secciones podeis observar ke uso includes para mantener el diseño de la web y mostrar dnd kiero cada seccion. Bueno. Alguien me puede decir como puedo solucionar ese error y a ke puede ser devido ??? Repito el error:

Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhost/distrasvi.com/home/html/scf/index.php:13) in /var/www/vhost/distrasvi.com/home/html/scf/includes/agregar.php on line 30

r2d2rigo

Esto es debido a que utilizas la funcion header() y antes de usarla envias algun tipo de salida en HTML. Esta funcion tiene que enviarse antes de cualquier salida de texto, bien sea por echo(), printf() o formateo estandar de HTML.

DeVoN

Supongo que sera esto lo que dices, porque es la linea que indica el error:
LINEA 30: Header("Location: ../scf/index.php?s=index");
LINEA 27: Header("Location: ../scf/index.php?s=index");
esos son los errores...Bueno si alguien me dice como arreglarlo EXACTAMENTE Porque no tengo mucha idea... xD Pues os lo agradecería. Adios

Abreu

Pega las lineas anteriores a la 30.

DeVoN

Ke lineas ???? Las lineas ke os he puesto es lo k tengo puesto en esas lineas !_!

DeVoN

<?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: ../scf/index.php?s=index");
exit();
}
Header("Location: ../scf/index.php?s=index");
?>

DeVoN

^
 '
 '
 '
 '
 '
 ' Decirme ke tengo ke cambiar y eso...O ke nuevo archivo tengo ke crear, plz ayuda !!

Abreu

Antes de llegar a la funcion header() la linea 13 del index.php muestra algo. Como solucion facil de hacer puedes cambiar los:

Header("Location: ../scf/index.php?s=index");

por

echo "document.location.href='../scf/index.php?s=index'";

DeVoN

lo he arreglado poniendo dnd mas dicho el echo, pero no con el contenido q me has dicho, porque me salia en texto la url xD Tonces he dicho si se ve el texto, voy a escribir: Mensaje enviado Correctamente, y un link pa volver al foro
Por ahora me ha bastao con eso, mas adelante pondre algo pa que se redireccione solo a los 2 o 3 secs al foro... xDpero como no se ya buscare como se hace. gracias !

eXistencial

No puedes poner na que imprima el buscador, es decir nada de html, ni print, ni nada. Tampoco puedes poner un include y que el archivo a incluir tenga comentarios o alguna linea vacia.

Asi se arreglara

Usuarios habituales

  • eXistencial
  • DeVoN
  • Abreu
  • r2d2rigo