Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: hans2488 en 8 Octubre 2011, 08:17 am



Título: Direccionamiento despues de login
Publicado por: hans2488 en 8 Octubre 2011, 08:17 am
ueno 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.

Estos son mis archivos con los q estoy trabajando

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

Código:
<?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
    }
?>
En el archivo pasword.php pongo esto para q mande al id pero no me da
Código:
header("Location:index.php?id=$_GET[id_noticia]");



Este archivo es el verificar_usuario.php
Código:
<?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
    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:
http://localhost/nan/index.php?id=

Porfavor alguna ayuda, en que puedo estar  fallando???????


Título: Re: Direccionamiento despues de login
Publicado por: dark_sargon en 8 Octubre 2011, 17:34 pm
En password.php

Cambiar
Código
  1. header("Location:index.php?id=$_GET[id_noticia]");

por
Código
  1. header("Location:index.php?id=".$_GET[id_noticia]);


Título: Re: Direccionamiento despues de login
Publicado por: Carluís en 10 Octubre 2011, 23:23 pm
Para empezar, es redireccionamiento, y la solución es:

En password.php

Cambiar
Código
  1. header("Location:index.php?id=$_GET[id_noticia]");

por
Código
  1. header("Location:index.php?id=".$_GET[id_noticia]);


Aunque falto la línea:
Código:
//header("Location:index.php");

Corrige por la siguiente:
Código:
//header("Location:index.php?id=".$_GET[id_noticia]");


cuentanos como te fue, saludos...


Título: Re: Direccionamiento despues de login
Publicado por: ~ Yoya ~ en 11 Octubre 2011, 03:45 am
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.

Te recomiendo que cuando agregas algún source al foro, agrega solo lo necesario, cuando agregas un código con html y todo. Casi nadie mira el source.

Mira, cuando un usuario hace click a una noticia, lo que haces es redireccionar al login. Cuando el usuario ha sido redireccionado al login, en la cabecera esta una propiedad llamada referer, esta contiene la url de donde estabas.

Captura el valor del referer, que seria una url, lo guardas en una variable o en una sesion, si se ha iniciado sesion correctamente lo que haces es redireccionar a la url de donde estaba el usuario.

Saludos.