Ayuda con login

Sudao
19 de Febrero del 2006
Soy muy muy muy nuevo con esto del PHP…
Acabo de contratar un hosting con servidor PHP y MySQL. Estoy intentando hacer una pagina de acceso en la cual según el login te direccione a una pagina determinada, por ejemplo: en mysql tengo una tabla que contiene los campos id, pass y direccion. ¿Cómo hacer que si la id y el pass son correctos me direccione a direccion?
Igual es muy complejo y este no es el lugar, pero ¿me podríais ayudar a encontrar un sitio donde buscar el modo de hacerlo?
Mil Gracias.

forgin
19 de Febrero del 2006
podrias hacerlo asi:
<?php
//te conectas a la base de datos.
conectarse........
/*sacas las variables de la base de datos segun el nick introducido en el formulario*/
$pass=$_POST["nombre_variable_pass_en_el_formulario"];
$resultado=mysql_query("select pass from tu_tabla where nick='$pass' ")or die(mysql_error());
while($url=mysql_fetch_array($resultado)){
$direccion= $url["0"];
header("location=$direccion");
?>

a ver si esto funciona, yo solo llevo un mes y poco con esto del php, pero me gusta mucho, y estoy con dos proyectos.
Saludos a todos.

damian
19 de Febrero del 2006
La estructura de la base de datos de ser como esta:
id ---- nombre ---- password ---- url

Necesitas una página principal llamada index,php que contenga el formulario para introducir usuario y contraseña y que redireccione para verifica.php

verifica.php
<?
/* recoge el usuario y la contraseña, la contraseña debe estar encryptada en la base de datos
*/
$usuario = $HTTP_POST_VARS['usuarios'];
$password = md5($HTTP_POST_VARS['pass']);
/* verifico que el usuario y la contraseña se encuentren en la base datos, si es incorrecta
lo redirijo "index.php" en caso contrario lo redirijo para la página que aparece en el campo de la base de datos "url"
*/
mysql_select_db($db, $conf);
$query_auten = "SELECT * FROM users WHERE user='".$usuario."' AND pass='".$password."'";
$auten = mysql_query($query_auten, $conf);
$row_nivel = mysql_fetch_array($auten);
$total_auten = mysql_num_rows($auten);
if($total_auten == 0){
header("Location: index.php");
exit;
}
else{
//creo una session
session_start();
session_register("access");
//redirijo al usuario para la página que aparece en la base de datos.
header("Location: ".$row_nivel["url"]); //campo url contiene el nombre de la página a direccionar.
}
?>

<<<<<<<<< Para más seguridad >>>>>>>>>>>>>
te propongo poner la página de tu formulario lo siguiente:
<?
//borra la session access.
session_start();
session_unregister('access');
?>

para darle seguridad a tus paginas agregales el siguiente codigo menos a index.php:
<?
/* verifica si la session access fue creada o sea que te haz lojeado, sino te redirije para el formulario */
session_start();
if(!session_is_registered("access")){
header("Location: index.php");
exit;
}
?>

Bueno espero que esto te sirva, cual

Facundo
19 de Febrero del 2006
Intenté usar ese ejemplo de login... pero cuando ingreso el nombre de usuario y la contraseña, que comprobé que son correctos, no me lleva a la página definida en el campo "url" de la base de datos, sino que me devuelve nuevamente al formulario de login..

necesitaría alguien que me ayude con esto x favor...


muchísimas gracias!

Facundo
19 de Febrero del 2006
Bueno, de nuevo yo, jaja.. solucioné el problema que tenía.. pero lo que quiero ahora es saber como hago el Logout.. es decir, como rompo la sesión?

Creo que debería hacer un vínculo a la misma página del formulario, es decir, al index.php, ya que le escribimos el siguiente código:

<?
//borra la session access.
session_start();
session_unregister(\\\\\\\\'access\\\\\\\\');
?>

Espero estar en lo correcto

Espero que alguien me ayude, muchas gracias.