Foros del Web » Programando para Internet » PHP »

Direccionamiento a pagina

Estas en el tema de Direccionamiento a pagina en el foro de PHP en Foros del Web. Muy buenas... saludos a todos! tengo el siguiente problemilla: Quiero autenticar usuarios los cuales cada uno va a entrar a una pagina diferente para cada ...
  #1 (permalink)  
Antiguo 21/08/2003, 15:42
 
Fecha de Ingreso: julio-2003
Ubicación: Colombia
Mensajes: 591
Antigüedad: 20 años, 9 meses
Puntos: 7
Direccionamiento a pagina

Muy buenas...
saludos a todos!
tengo el siguiente problemilla: Quiero autenticar usuarios los cuales cada uno va a entrar a una pagina diferente para cada uno, para lo cual tengo una tablita en MySQL con los campos login, pass y pagina.
Me funciona la autenticacion (gracias a un ejemplo de foros del web), pero no puedo direccionar a el usuario a su respectiva página.
Aquí el script...
Estoy casi seguro que es sintaxis...
Viva el PHP!!
Gracias




<?php

$conexion = mysql_connect ('localhost', 'root', "") or die('NO se pudo realizar la conexion con la base de datos.');
mysql_select_db('santana', $conexion);

function quitar($mensaje)
{
$mensaje = str_replace("<","&lt;",$mensaje);
$mensaje = str_replace(">","&gt;",$mensaje);
$mensaje = str_replace("\'","'",$mensaje);
$mensaje = str_replace('\"',"&quot;",$mensaje);
$mensaje = str_replace("\\\\","&#92",$mensaje);
return $mensaje;
}

if(trim($HTTP_POST_VARS["nick"]) != "" && trim($HTTP_POST_VARS["password"]) != "")
{
$nickN = quitar($HTTP_POST_VARS["nick"]);
$passN = quitar($HTTP_POST_VARS["password"]);
$result = mysql_query("SELECT pass FROM jorge WHERE login='$nickN'");

if($row = mysql_fetch_array($result))
{
if($row["pass"] == $passN)
{
//90 dias dura la cookie
setcookie("usNick",$nickN,time()+7776000);
setcookie("usPass",$passN,time()+7776000);

//session_start();
//$_SESSION["autentificado"]= "SI";
// header ("Location: ");
$pagina = mysql_query("SELECT pagina FROM jorge WHERE login='$nickN'");
if($row = mysql_fetch_array($pagina))
session_start();
$_SESSION["autentificado"]= "SI";
header ("Location: $pagina");

?>
//Ingreso exitoso, ahora sera dirigido a la pagina principal.
//<SCRIPT LANGUAGE="javascript">
//location.href = $pagina;
</SCRIPT>
<?
}
else
{
echo "Password incorrecto";
}
}
else
{
echo "Usuario no existente en la base de datos";
}
mysql_free_result($result);
}
else
{
echo "Debe especificar un nick y password";
}
mysql_close();
?>
  #2 (permalink)  
Antiguo 21/08/2003, 15:44
 
Fecha de Ingreso: julio-2003
Ubicación: Colombia
Mensajes: 591
Antigüedad: 20 años, 9 meses
Puntos: 7
tabla...

Aqui la tabla en MySQL



mysql> select * from jorge;
+----+---------+----------+------------+
| id | login | pass | pagina |
+----+---------+----------+------------+
| 1 | andres | password | index1.htm |
| 2 | luchope | password | pagina2.html |
+----+---------+----------+------------+
  #3 (permalink)  
Antiguo 21/08/2003, 15:46
 
Fecha de Ingreso: julio-2003
Ubicación: Colombia
Mensajes: 591
Antigüedad: 20 años, 9 meses
Puntos: 7
error

Me sale este error...

Resource id #3
  #4 (permalink)  
Antiguo 21/08/2003, 16:13
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Mira, mysql_query() devuelve el puntero al recordset. Para acceder a un registro debes leerlo con mysql_fetch_*(). Y para acceder a un campo de ese registro accedes al array que devuelve el fetch. Asi, este codigo:
Código PHP:
$pagina mysql_query("SELECT pagina FROM jorge WHERE login='$nickN'");
if(
$row mysql_fetch_array($pagina))
session_start();
$_SESSION["autentificado"]= "SI";
header ("Location: $pagina"); 
deberia ser
Código PHP:
$pagina mysql_query("SELECT pagina FROM jorge WHERE login='$nickN'");
if(
$row mysql_fetch_array($pagina))
session_start();
$_SESSION["autentificado"]= "SI";
header ("Location: ".$row['pagina']); 
Es decir, el campo 'pagina' del registro leido.

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #5 (permalink)  
Antiguo 22/08/2003, 10:21
 
Fecha de Ingreso: julio-2003
Ubicación: Colombia
Mensajes: 591
Antigüedad: 20 años, 9 meses
Puntos: 7
De acuerdo Gracias!!!

Gracias Josemi por tu constante ayuda...
Si me sirvió...
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 09:29.