Estoy desarrollando un foro en el cual tengo un problema que cuando el usuario crea el tema quiero que lo lleve directamente al post. pero no me deja me tira este error:
Código PHP:
Warning: Cannot modify header information - headers already sent by (output started at nuevo/header.php:87) in nuevo/index.php on line 149
Código PHP:
<?php
//Conexion con la Base de Datos
$link=@dbConnect();
if (!$link) {
echo "Error conectando a la Base de Datos.";
}
if ($link =="202") {
echo "Error seleccionando la Base de Datos.";
}
echo '<h2>Nuevo tema</h2>';
if(isset($_SESSION['id']))
{
//el usuario esta logueado
if($_SERVER['REQUEST_METHOD'] != 'POST')
{
// el formulario no ha sido publicado todavía
// recuperar las categorías de la base de datos para su uso en el menú desplegable
$sql = "SELECT
cat_id,
cat_name,
cat_description
FROM
categories";
$result = mysql_query($sql);
if(!$result)
{
//la consulta falla
echo 'Error al seleccionar desde la base de datos. Intente de nuevo.';
}
else
{
if(mysql_num_rows($result) == 0)
{
//no hay categorias creadas
if($_SESSION['user_level'] == 1)
{
echo 'No hay categorias creadas.';
}
else
{
echo 'No puedes crear un tema.Contacta con el administrador.';
}
}
else
{
echo '<form method="post" action="" class="form_nuevo" onsubmit="return validate_form ( );" enctype="multipart/form-data" name="topicform" id="topicform">
Título: <input type="text" name="topic_subject" class="input_title" /><br />
CategorÍa:';
echo '<select name="topic_cat">';
while($row = mysql_fetch_assoc($result))
{
echo '<option value="' . $row['cat_id'] . '" class="input_cat">' . $row['cat_name'] . '</option>';
}
echo '</select><br />';
echo 'Post: <br /><textarea name="post_content" id="post_content" rows="25" cols="100%" /></textarea><br /><br />
<div id="wrap"><input type="submit" value="Enviar nuevo tema" class="button" /></div>
</form>';
}
}
}
else
{
$query = "BEGIN WORK;";
$result = mysql_query($query);
if(!$result)
{
echo 'Se produjo un error al crear el tema. Por favor, intentelo de nuevo mas tarde.';
}
else
{
// el formulario se ha publicado, entonces lo guarda
// inserta el tema en la tabla los primeros temas, y luego guarda el tema en la tabla de post,topics.
$sql = "INSERT INTO
topics(topic_subject,
topic_date,
topic_cat,
topic_by)
VALUES('" . mysql_real_escape_string($_POST['topic_subject']) . "',
NOW(),
" . mysql_real_escape_string($_POST['topic_cat']) . ",
" . $_SESSION['id'] . "
)";
$result = mysql_query($sql);
if(!$result)
{
//muestro el error
echo 'Se produjo un error al insertar el tema. Por favor, intEntelo de nuevo mas tarde.<br /><br />' . mysql_error();
$sql = "ROLLBACK;";
$result = mysql_query($sql);
}
else
{
// la consulta trabajo la primera vez, ahora comienza la segunda consulta
// recupera el id del tema recien creado para el uso en la consulta de los temas
$topicid = mysql_insert_id();
$sql = "INSERT INTO
posts(post_content,
post_date,
post_topic,
post_by)
VALUES
('" . mysql_real_escape_string($_POST['post_content']) . "',
NOW(),
" . $topicid . ",
" . $_SESSION['id'] . "
)";
$result = mysql_query($sql);
if(!$result)
{
//algo salio mal, muestro el error
echo 'Se produjo un error al crear el tema. Por favor, intentelo de nuevo mas tarde.<br /><br />' . mysql_error();
$sql = "ROLLBACK;";
$result = mysql_query($sql);
}
else
{
$sql = "COMMIT;";
$result = mysql_query($sql);
header("Location: ../forums/?id='. $topicid . '"); // problema
exit();
}
}
}
}
}
else
{
//el usuario no esta logueado
echo 'Ups.... tienes que <a href="../login.php">iniciar sesion</a> para crear un tema.';
}
echo '<br />';
?>
</div></div>
<?php
include 'include/php/footer.php';
?>
Quien pueda ayudarme se los agradezco mucho.
Saludos y gracias!