Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/05/2013, 11:04
skirlappa
 
Fecha de Ingreso: junio-2005
Mensajes: 107
Antigüedad: 18 años, 10 meses
Puntos: 0
Problemas al recordar session

Hola, tengo un problema, es que cuando el usuario marca la casilla "Recordar sesión" me muestra el siguiente mensaje de error.

Notice: Undefined variable: HTTP_X_FORWARDED_FOR in C:\xampp\htdocs\test\config.php on line 18

Notice: Use of undefined constant REMOTE_ADDR - assumed 'REMOTE_ADDR' in C:\xampp\htdocs\test\config.php on line 20


Estas son las páginas de logueado que hay:

Entrar.php
Código PHP:
<?
// Configura los datos de tu cuenta
include('config.php');

// Conectar a la base de datos
mysql_connect ($dbhost$dbusername$dbuserpass);
mysql_select_db($dbname) or die('No se puede seleccionar la base de datos');

if (
$_POST['username']) {
//Comprobacion del envio del nombre de usuario y password
$username=htmlentities($_POST['username']);
$password=$_POST['password'];
if (
$password==NULL) {
echo 
"<p><center><img src=\"../images/logo.png\" width=\"408\" height=\"101\"></center></p><table width=\"60%\" align=\"center\" cellspacing=\"0\" cellpadding=\"0\" style=\"border-bottom-color:#FF0000;border-bottom-width:3px;border-bottom-style:solid;border-top-color:#FF0000;border-top-style:solid;border-top-width:3px; border-left-color:#FF0000; border-left-width:3px;border-left-style:solid;border-right-color:#FF0000; border-right-width:3px;border-right-style:solid;\">
  <tr>
    <td height=\"59\" bgcolor=\"#FFD2D2\" border-style:solid; border-width:0px; valign=\"middle\"><center> No introdujo una contrase&ntilde;a correcta.</center></td>
  </tr>
</table>
<script type=\"text/javascript\">
function redireccionar(){
  history.back();

setTimeout (\"redireccionar()\", 5000); //tiempo expresado en milisegundos
</script>
"
;
exit();
}else{
$query mysql_query("SELECT nick,password FROM user WHERE nick = '$username'") or die(mysql_error());
$data mysql_fetch_array($query);
if(
$data['password'] != $password) {
echo 
"<p><center><img src=\"../images/logo.png\" width=\"408\" height=\"101\"></center></p><table width=\"60%\" align=\"center\" cellspacing=\"0\" cellpadding=\"0\" style=\"border-bottom-color:#FF0000;border-bottom-width:3px;border-bottom-style:solid;border-top-color:#FF0000;border-top-style:solid;border-top-width:3px; border-left-color:#FF0000; border-left-width:3px;border-left-style:solid;border-right-color:#FF0000; border-right-width:3px;border-right-style:solid;\">
  <tr>
    <td height=\"59\" bgcolor=\"#FFD2D2\" border-style:solid; border-width:0px; valign=\"middle\"><center>La contrase&ntilde;a no es correcta.</center></td>
  </tr>
</table>
<script type=\"text/javascript\">
function redireccionar(){
  history.back();

setTimeout (\"redireccionar()\", 5000); //tiempo expresado en milisegundos
</script>
"
;
exit();
}else{
$query mysql_query("SELECT * FROM user WHERE nick = '$username'") or die(mysql_error());
$row mysql_fetch_array($query);
$username2 $row['nick'];
$_SESSION["s_username"] = $row['nick'];
$_SESSION["logeado"] = "SI";
$_SESSION["id"] = $row['id'];
if(
$row['admin']=="si")
        {
        
$_SESSION["admin"] = "SI";
        }
        else
        {
        
$_SESSION["admin"] = "NO";
        }
if(
$row['publi']=="si")
        {
        
$_SESSION["publi"] = "SI";
        }
        else
        {
        
$_SESSION["publi"] = "NO";
        }
if(
$row['root']=="si")
        {
        
$_SESSION["root"] = "SI";
        }
        else
        {
        
$_SESSION["root"] = "NO";
        }        
/* Si aceptamos recordar los datos */
if($_POST['recordar']){

                        if (
$HTTP_X_FORWARDED_FOR == "")
                    {
                        
$ip getenv(REMOTE_ADDR);
                    }
                    else
                    {
                        
$ip getenv(HTTP_X_FORWARDED_FOR);
                    }
    
$id_extreme uniqid(rand(), true);
    
$id_extreme2 $username2."%".$id_extreme."%".$ip;
    
setcookie('id_extreme'$id_extreme2time()+7776000,'/');
    
$query mysql_query("UPDATE user SET id_extreme='".$id_extreme."' WHERE nick='".$username2."'") or die(mysql_error());
}

header ("Location: ../inicio.php");
}
}
}
else
{
echo 
"<p><center><img src=\"../images/logo.png\" width=\"408\" height=\"101\"></center></p><table width=\"60%\" align=\"center\" cellspacing=\"0\" cellpadding=\"0\" style=\"border-bottom-color:#FF0000;border-bottom-width:3px;border-bottom-style:solid;border-top-color:#FF0000;border-top-style:solid;border-top-width:3px; border-left-color:#FF0000; border-left-width:3px;border-left-style:solid;border-right-color:#FF0000; border-right-width:3px;border-right-style:solid;\">
  <tr>
    <td height=\"59\" bgcolor=\"#FFD2D2\" border-style:solid; border-width:0px; valign=\"middle\"><center> Debe introducir un usuario.</center></td>
  </tr>
</table>
<script type=\"text/javascript\">
function redireccionar(){
  history.back();

setTimeout (\"redireccionar()\", 5000); //tiempo expresado en milisegundos
</script>
"
;
exit();    
}
?>
<style type="text/css">
<!--
body {
    background-color: #698BB4;
    text-align: right;
}
.blanco_normal {
    color: #FFF;
}
.blanco_normal {
    color: #FFF;
}
-->
</style></head>
config.php

Código PHP:
<?php
$dbhost
='localhost'// Servidor
$dbusername=''// Nombre de usuario
$dbuserpass=''// Contraseña
$dbname=''// Nombre de la base de datos
session_start();
//Declaramos la constante para el nombre del dominio.
define('BASE_PATH''http://localhost/test/');

// Comprobamos si hay cookie, si está bien y le asignamos una sesión
// Esto quiere decir que si recordamos la contraseña nos auto loguee.
if(isset($_COOKIE['id_extreme'])) 
{
    
$cookie htmlentities($_COOKIE['id_extreme']);
    
$cookie explode("%",$cookie);
    
$user $cookie[0];
    
$id $cookie[1];
    
$ip $cookie[2];
    if (
$HTTP_X_FORWARDED_FOR == "")
    {
        
$ip2 getenv(REMOTE_ADDR);
    }
    else
    {
        
$ip2 getenv(HTTP_X_FORWARDED_FOR);
    }
    if(
$ip == $ip2)
    {
        
$link mysql_connect($dbhost$dbusername$dbuserpass);
        
mysql_select_db($dbname,$link) or die('No se puede seleccionar la base de datos');
        
$query mysql_query("SELECT * FROM user WHERE id_extreme='".$id."' and nick='".$user."'") or die(mysql_error());
           
$row mysql_fetch_array($query);
           if(isset(
$row['nick'])) 
        {
        
$_SESSION["s_username"] = $row['nick'];
        
$_SESSION["logeado"] = "SI";
           }
        if(
$row['admin']=="si")
        {
        
$_SESSION["admin"] = "SI";
        }
        else
        {
        
$_SESSION["admin"] = "NO";
        }
        
mysql_close($link);
    }
}
?>
inicio.php

Código PHP:
<?php
include('config.php');
if(
$_SESSION["logeado"] != "SI"){
header ("Location: index.php");
exit;
}
echo 
"<br>El usuario es: ".$_SESSION["s_username"]."<br>";
?>

ESTA LOGUEADO AHORA PUEDE HACER TEST

<a href="cerrar.php">Cerrar sesi&oacute;n</a>
cerrar.php

Código PHP:
<?php
session_start
();
session_unset();
session_destroy(); 
setcookie("id_extreme","x",time()-3600,"/");
header("Location: ../index.php");
?>