Foros del Web » Programando para Internet » PHP »

Direccionamiento despues de login

Estas en el tema de Direccionamiento despues de login en el foro de PHP en Foros del Web. Bueno espero q puedan ayudarme en este problema q tengo. Tengo un sistema de noticias el cual funciona con sesione para que los usuarios puedan ...
  #1 (permalink)  
Antiguo 06/10/2011, 15:49
 
Fecha de Ingreso: septiembre-2010
Mensajes: 64
Antigüedad: 13 años, 6 meses
Puntos: 5
Direccionamiento despues de login

Bueno espero q puedan ayudarme en este problema q tengo.

Tengo un sistema de noticias el cual funciona con sesione para que los usuarios puedan ver los articulos.

Lo que quiero es que cuando un usuario haga clic en una noticia para poder verlo entra con su usuario y password, pero una vez que hace esto lo direcciona al index.

Y lo que quiero es cuando una vez inicie sesion le direccione a la misma noticia donde iso clic el usuario y no asi al index. Como debo trabajar con varibles?? sesiones??

Espero q sea entendible y puedan ofrerme alguna ayuda.
  #2 (permalink)  
Antiguo 06/10/2011, 16:26
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 6 meses
Puntos: 49
Respuesta: Direccionamiento despues de login

Hola, Supongamos el usuario no esta logeado entonces deberia ver la pagina de login, correcto?
una vez dentro revisa un articulo X en tu pagina de login deberias comprobar si su session esta abierta y lo pasas directamente a la pagina que quiere ver.

ahora si yo usuario, entro al pc y no me he logeado, y quiero ver una noticia entonces me deberia aparecer la pagina de login solo la primera vez o al menos hasta que cierre el navegador o cierre la sesión.

eso lo puedes checkear con la misma sesión algo como

Código PHP:
Ver original
  1. <?php
  2. $usercomprueba = $_SESSION['user'];
  3. if ($usercomprueba != "")
  4. { header ("Location: noticia.php?id=$_GET[noticia]"); }
  5. else
  6. {
  7. ?>
  8. pagina de login....
  9. <?php } ?>

seria algo asi? ya luego en tus paginas internas supongo chequeas la session
donde id=toma la noticia por decir asi y se la pasa a tu pagina de noticias, esto ya es una suposicion mia

Saludos
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #3 (permalink)  
Antiguo 06/10/2011, 21:12
 
Fecha de Ingreso: septiembre-2010
Mensajes: 64
Antigüedad: 13 años, 6 meses
Puntos: 5
Respuesta: Direccionamiento despues de login

Gracias por responder, lo de tomar el valor del id se me olvido completamente muchas gracias por responder , voy hacer la prueba, estare avisando q tal me fue. Y gracias por la ayuda
  #4 (permalink)  
Antiguo 07/10/2011, 01:37
 
Fecha de Ingreso: septiembre-2010
Mensajes: 64
Antigüedad: 13 años, 6 meses
Puntos: 5
Respuesta: Direccionamiento despues de login

Hola no logro hacerle funcionar, este es mi formulario de password
Código PHP:
<?php
    session_start
();
    include(
'conexion.php');
          
    if(empty(
$_SESSION['id_cliente'])) { // comprobamos que las variables de sesión estén vacías      
?>
        <form action="verificar_usuario.php" method="post">
            <label>Usuario:</label><br />
            <input type="text" name="id_cliente" /><br />
            <label>Contraseña:</label><br />
            <input type="password" name="clave" /><br />
            <input type="submit" name="enviar" value="Ingresar" />
        </form>                    
<?php
    
}else {
?>
<?php
header
("Location:index.php");
?>
<?php
    
}
?>

Y en header pongo esto

Código PHP:
header("Location:index.php?id=$_GET[id_categoria]"); 
pero cuando se loguea el usuario sale
Código PHP:
http://localhost/nan/index.php?id= 
El id sale vacio es porque no esta agarrando la variable de id categoria verdad??
  #5 (permalink)  
Antiguo 07/10/2011, 08:20
Avatar de venom_mau  
Fecha de Ingreso: julio-2009
Mensajes: 152
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: Direccionamiento despues de login

exacto, de donde tomas id_categoria ???

no sé si sea el problema, pero si no quieres poner más de tu código, hazle un var_dump a ése $_GET para verificar que te este trayendo datos
  #6 (permalink)  
Antiguo 07/10/2011, 18:36
 
Fecha de Ingreso: septiembre-2010
Mensajes: 64
Antigüedad: 13 años, 6 meses
Puntos: 5
Pregunta Respuesta: Direccionamiento despues de login

No me funciona nose en puedo estar fallando, dejo los archivos en los q estoy trabajando, esperando q porfavor puedan ayudarme.

Este es mi archivo pasword.php para ingresar usuario y pasword

Código PHP:
<?php
    session_start
();
    include(
'conexion.php');
          
    if(empty(
$_SESSION['id_cliente'])) { // comprobamos que las variables de sesión estén vacías      
?>

        <form action="verificar_usuario.php" method="post">
            <label>Usuario:</label><br />
            <input type="text" name="id_cliente" /><br />
            <label>Contraseña:</label><br />
            <input type="password" name="clave" /><br />
            <input type="submit" name="enviar" value="Ingresar" />
        </form>                    
<?php
    
}else {
?>
<?php
//header("Location:index.php");
header("Location:index.php?id=$_GET[id_noticia]");  
//header ("index.php?id=".$_GET['id']); 

?>
<?php
    
}
?>
Este archivo es el verificar_usuario.php
Código PHP:
<?php
    session_start
();
    include(
'conexion.php');
    if(isset(
$_POST['enviar'])) { // comprobamos que se hayan enviado los datos del formulario
        // comprobamos que los campos usuarios_nombre y usuario_clave no estén vacíos
        
if(empty($_POST['id_cliente']) || empty($_POST['clave'])) {
           
// echo "El usuario o la contraseña no han sido ingresados. <a href='javascript:history.back();'>Reintentar</a>";
            
                
                
echo"<script type=\"text/javascript\">alert('Usted esta siendo redireccionado a la pagina principal'); window.location='index.php';</script>";
                   
        }else {
            
// "limpiamos" los campos del formulario de posibles códigos maliciosos
            
$usuario_nombre mysql_real_escape_string($_POST['id_cliente']);
            
$usuario_clave mysql_real_escape_string($_POST['clave']);
            
// comprobamos que los datos ingresados en el formulario coincidan con los de la BD
            
$sql mysql_query("select * from clientes WHERE id_cliente='".$usuario_nombre."' AND clave='".$usuario_clave."'");
            if(
$row mysql_fetch_array($sql)) {
                
$_SESSION['id_cliente'] = $row["id_cliente"]; // creamos la sesion "usuario_nombre" y le asignamos como valor el campo usuario_nombre
                //header("Location: pasword.php");
                
header ("Location: pasword.php");
            }else {
?>
                Error usuario no valido, <a href="pasword.php">Reintentar</a>
<?php
            
}
        }
    }else {
        
header("Location: pasword.php");
    }
?>
Y este el noticiadetalle.php, q es lo q quiero q muestre una vez del login

Código PHP:
<?php
    session_start
();
    include(
'conexion.php'); // incluímos los datos de acceso a la BD
    // comprobamos que se haya iniciado la sesión
    
if(isset($_SESSION['id_cliente'])) {
?>
<?php     
include("conexion.php");//envia a la conexion
    
$consulta="select DATE_FORMAT(fecha,'%d/%m/%Y'),concat('. ', hora),concat(' Nota  ',id_noticia,'.- '),titulo,resumen,articulo from noticias where estado=2 and id_noticia=".$_GET[id];
    
//$consulta="select DATE_FORMAT(fecha,'%d/%m/%Y')ESTA ES  $datos[0],concat('. Nota ',id_noticia,'.- ')ESTA ES $datos[1],titulo ESTA ES $datos[2],resumen ESTA ES $datos[3],archivo ESTA ES $datos[4], from noticias where estado=2 order by id_noticia desc";
    
$sql=mysql_query($consulta,$con) or die(mysql_error());
      
      while(
$datos=mysql_fetch_row($sql)){
       
//Saca todos los registros de la tabala noticias  while($datos=mysql_fetch_row($sql)){  WHILE significamientras
       //no se llegue al ultimo registro entonces entra    

      
?>
        <table width="90%" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td width="2%" >&nbsp;</td>
    <td width="98%" ><span class="titular3"><?php echo $datos[0]. $datos[1]. $datos[2];?></span></td>
  </tr>
  <tr>
    <td height="18" colspan="2" >&nbsp;</td>
  </tr>
  <tr>
    <td height="18" colspan="2" ><span class="titular18"><?php echo $datos[3] ;?></span></td>
  </tr>
  <tr>
    <td height="18" colspan="2" >&nbsp;</td>
  </tr>
  <tr>
    <td height="18" colspan="2" ><span class="titular2"><?php echo $datos[4];?></span></td>
  </tr>
  <tr>
    <td height="18" colspan="2" ><span class="contenido"><?php echo $datos[5];?></span></td>
  </tr>
  <tr>
    <td height="18" colspan="2" ><?php      

        
        
}

?></td>
  </tr>
  <tr>
    <td height="18" colspan="2" ><div align="center">
      <table width="25%" border="0" cellspacing="0" cellpadding="0">
        <tr>
          <td width="49%"><font face="verdana,arial,helvetica" color="black" 
      size="-2"><a 
      href="javascript:if (window.print != null) { window.print(); } else { alert('Lastimosamente, su navegador (browser) no soporta esta funci&oacute;n.  Por favor seleccione Imprimir (Print) desde su Men&uacute; de Opciones (File Menu)Please select Print from the File menu.'); }"><img 
      height="25" 
      src="images/imprimir.jpg" 
      width="60" align="abscenter" border="0" /></a></font></td>
          <td width="30%">&nbsp;</td>
         <td width="21%"><a href="amigo.php?id=<?php echo $_GET[id];?>" target="_blank"></a></td>
        </tr>
      </table>
      <a href="enviar.php" target="_parent"></a> </div></td>
  </tr>
</table>
<?php
    
}else {
        echo 
"Estás accediendo a una página restringida, para ver su contenido debes estar registrado.<br />";
         echo 
"      <form action='verificar_usuario.php' method='post'>";
           echo 
"  <label>Usuario:</label><br />";
          echo 
"   <input type='text' name='id_cliente' /><br />";
           echo 
"  <label>Contraseña:</label><br />";
           echo 
"  <input type='password' name='clave' /><br />";
           echo 
"  <input type='submit' name='enviar' value='Ingresar' />";
       echo 
"  </form>  ";
    }
?> 

<link href="estilo.css" rel="stylesheet" type="text/css" />
Y despues del login lo manda al index y no a la noticia que deberia ir me sale esto
Código PHP:
http://localhost/nan/index.php?id= 
Porfavor alguna ayuda, en que puedo estar fallando???????

Última edición por hans2488; 07/10/2011 a las 23:52
  #7 (permalink)  
Antiguo 10/10/2011, 10:52
Avatar de venom_mau  
Fecha de Ingreso: julio-2009
Mensajes: 152
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: Direccionamiento despues de login

En realidad no entiendo en tu primer script:

Código PHP:
<?php
    session_start
();
    include(
'conexion.php');
          
    if(empty(
$_SESSION['id_cliente'])) { // comprobamos que las variables de sesión estén vacías      
?>

        <form action="verificar_usuario.php" method="post">
            <label>Usuario:</label><br />
            <input type="text" name="id_cliente" /><br />
            <label>Contraseña:</label><br />
            <input type="password" name="clave" /><br />
            <input type="submit" name="enviar" value="Ingresar" />
        </form>                    
<?php
    
}else {
?>
<?php

header
("Location:index.php?id=$_GET['id_noticia']");  


?>
<?php
    
}
?>
De donde sacas id_noticia, pero puedes intentar esto:

Código PHP:
header("Location:index.php?id=".$_GET['id_noticia']." "); 
Aunque debes tener en cuenta, que $_GET en palabras simples, se usa para recibir datos no para enviar, a menos que manejes un formulario y tengas como metodo de envío a GET, me explico?

En el script donde mandas este id_noticia, en lugar de usar $_GET['id_noticia'] porque no guardas lo que tiene ese $_GET en otra variable, por ejemplo $id_noticia, y harías esto:
Código PHP:
header("Location:index.php?id=".$id_noticia." "); 
y lo recibirías con:
Código PHP:
$_GET['id']; 
Fíjate bien en el orden y uso de las comillas dobles y comillas simples o apostrofos. Te recomiendo le des una repasada a concatenación, y el manejo de formularios con php.


no se me ocurre mas... Suerte
  #8 (permalink)  
Antiguo 13/10/2011, 07:15
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 6 meses
Puntos: 49
Respuesta: Direccionamiento despues de login

Hola, mira tengo varias dudas de lo que estas haciendo, haci que vamos a ordenar.

1.- tienes un panel de control o administración en donde el usuario hace login, con su user y pass para poder acceder (este es el index.php), a su vez supongo tienes una pagina donde se envían estos datos (llamemosla control.php), para ver si el login es correcto o falso.
2 - de ser falso lo vuelvo al index.php de ser true o verdadero lo envio a noticias.php, por dar un ejemplo practico de lo que estas queriendo hacer, e inicio la session del usuario.
3.-entonces en noticias.php tengo un listado con todas las noticias ya sea ordenadas por id o alfabeticamente etc. y en donde se selecciono una me abre, noticia.php?id=45
donde el id 45 es el numero de la noticia que abri.

4 entonces, si le envio a alguien un link.

http://www.tupaginaweb.com/sistema/noticia.php?id=45
por decir algo.

esta pagina deberia abrirse automaticamente si el usuario esta logeado eso si la session aun esta open. si el usuario esta sin login obiamente lo enviara al index.php

Es eso lo que necesitas hacer? hasta donde veo lo estas enviando al index.php
supongo en tu link haces

http://www.tupaginaweb.com/sistema/index.php?id=45

pero en tu header location lo vuelves a enviar al index y hace un tipo loop y el GET se pierde
en tu header location deberías enviarlo a la pagina que deseas que seria noticia.php.

no se si me explico, espero que sea eso lo que necesitas.
__________________
Gokuh Salvo al mundo. PUNTO!!!!

Etiquetas: direccionamiento, login, usuarios
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 13:48.