Foros del Web » Programando para Internet » PHP »

Problema respuesta php

Estas en el tema de Problema respuesta php en el foro de PHP en Foros del Web. Hola a todos! Estoy haciendo un foro con codigo propio en el cual cuando un usuario esta logueado y esta viendo un thread puede responder ...
  #1 (permalink)  
Antiguo 23/02/2011, 21:49
Avatar de ale_dla  
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 189
Antigüedad: 15 años
Puntos: 3
Problema respuesta php

Hola a todos!
Estoy haciendo un foro con codigo propio en el cual cuando un usuario esta logueado y esta viendo un thread puede responder la session funciona si no esta logueado muestra que se logee sino muestra el textarea pero cuando hago click en el boton me aparece que inicie sesion cuando ya estoy logueado.
El codigo donde muestra el form es este:
Código PHP:
if(isset($_SESSION['userid']))
            {
                
                echo 
'<h2>Responder:</h2><br />
                <div id="log">
        <div id="log_res">
        <!-- SPANNER -->
        </div>
    </div>
                    <form method="post" action="reply.php?id=' 
$row['topic_id'] . '" name="responder" id="responder" onsubmit="return validarRespuesta();">
                    <div id="respuesta_error"></div>
                        <textarea cols="30" id="reply_content" rows="10" name="reply_content" class="full"></textarea><br />
                        <input type="submit" value="Enviar respuesta" />
                    </form>'
;
            }
            else
            {
                echo 
'Tienes que<a href="../login.php">iniciar sesi&oacute;n</a> para responder.';
                
            } 
Y el codigo de reply.php
Código PHP:
<?php
include 'include/php/conexion.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.";
}

if(
$_SERVER['REQUEST_METHOD'] != 'POST')
{
    
    echo 
'No puedes ver este archivo.';
}
else
{
    
    if(isset(
$_SESSION['userid']))
    {
         
        
$sql "INSERT INTO 
                    replies(repy_content,
                          reply_date,
                          reply_topic,
                          reply_by) 
                VALUES ('" 
html_entity_decode($_POST['reply_content']) . "',
                        NOW(),
                        " 
mysql_real_escape_string($_GET['id']) . ",
                        " 
$_SESSION['userid'] . ")";
                        
        
$result mysql_query($sql);
                        
        if(!
$result)
        {
            echo 
'No se pudo guardar tu respuesta,por favor int&eacute;ntelo de nuevo.';
        }
        else
        {
           
            echo 
'<script type="text/javascript">history.go(-1);</script>';
            
        }
    }
    else
    {
        echo 
'Tienes que iniciar sesion.';
    }
}

?>
EL problema es que cuando quiero guardar el comentario me aparece que tengo que iniciar sesion cuando ya lo habia iniciado.
Muchas gracias.
Saludos !
  #2 (permalink)  
Antiguo 23/02/2011, 21:51
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Problema respuesta php

Estas usando session_start() en el archivo donde tratas de acceder a la SESSIONes?
  #3 (permalink)  
Antiguo 23/02/2011, 21:56
Avatar de ale_dla  
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 189
Antigüedad: 15 años
Puntos: 3
Respuesta: Problema respuesta php

Me olvidaba de agregar el session_start();
Muchas gracias por la ayuda.
  #4 (permalink)  
Antiguo 24/02/2011, 06:34
Avatar de ale_dla  
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 189
Antigüedad: 15 años
Puntos: 3
Respuesta: Problema respuesta php

Me faltaba agregar el session_start()
Pero ahora cuando guardo una respuesta me aparece que no se puede guardar la respuesta.
El codigo:
Código PHP:
<?php
session_start
();
include 
'include/php/conexion.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.";
}

if(
$_SERVER['REQUEST_METHOD'] != 'POST')
{
    echo 
'No tiene permiso para ver este archivo.';
}
else
{
    if(isset(
$_SESSION['userid']))
    {
         
        
$sql "INSERT INTO 
                    replies(repy_content,
                          reply_date,
                          reply_topic,
                          reply_by) 
                VALUES ('" 
html_entity_decode($_POST['reply_content']) . "',
                        NOW(),
                        " 
mysql_real_escape_string($_GET['id']) . ",
                        " 
$_SESSION['userid'] . ")";
                        
        
$result mysql_query($sql);
                        
        if(!
$result)
        {
            echo 
'No se pudo guardar tu respuesta,por favor int&eacute;ntelo de nuevo.';
        }
        else
        {
            
//echo 'Your reply has been saved, check out <a href="topic.php?id=' . html_entity_decode($_GET['id']) . '">the topic</a>.';
            
echo '<script type="text/javascript">history.go(-1);</script>';
            
        }
    }
    else
    {
        echo 
'Tienes que iniciar sesion.';
    }
}

?>
Muchas gracias por la ayuda.

Etiquetas: respuesta
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 02:30.