Ver Mensaje Individual
  #3 (permalink)  
Antiguo 17/09/2004, 17:03
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
En principio .. el uso de sesiones que haces NO es correcto ..

No debes mezclar session_register() si usas $_SESSION (los arrays superglobales) .. (Si usas PHP 4.1.0 o superior .. usa sólo $_SESSION pero no los mezcles)

Por lo demás .. no sé si en ese tal "config.php" harás un:

session_start();

pero es NECESARIO que lo uses antes de pretender acceder a una variable de sesión (crear/leer) vía $_SESSION .

La función session_register() hace no requiere de un session_start() .. o puede ser que uses session.auto_start en tu php.ini a ON (inicio de sesiones automático siempre) .. Por eso te funciona en un servidor y en otro no ..

más info:
www.php.net/session

Por lo demás .. este tipo de construcciones tampoco son correctas ..
consulta=mysql_query("SELECT * FROM usuarios WHERE nick='$user' and contrasena='$pass' ");
if($user_ok = mysql_fetch_array($consulta)) //si existe comenzamos con la sesion, si no, al index
{

debes hacer:

Código PHP:
$consulta=mysql_query("SELECT COUNT(*) FROM usuarios WHERE nick='$user' and contrasena='$pass' ");
if (
mysql_result($consulta,0) == 1){
$user_ok mysql_fetch_array($consulta);

// etc ...
header ("Location: ....");
exit;

Es más optimo usar COUNT() y contar el total de registros que arrojó la consulta vía SQL (que arroja un sólo registro/campo con ese tatal y por eso se accede con mysql_result() .. ) que hacer un mysql_num_rows() (que también podrías usar). A su vez .. tus usuarios han de ser únicos (supongo) así que comparo (IF) a 1 por qué eso espero .. 1 sólo resultado . ni más ni menos.

El exit; despues del header() te asegura que se termina la ejecución del script en ese punto .. el resto una vez enviado un "header()" de Location en principio lo que dices ahí es "saltar/ir hacia otro script/página". PHP, en ese caso sigue ejecutando el código restante .. en tu caso como está bajo un condicional (if) y el flujo del código llega este al final .. no tendrías problemas si usas o no un "exit" ahí, pero .. en otros casos sí, por eso es recomendable usarlo siempre .. así ahorras también "else" en muchos casos.

Un saludo,