Foros del Web » Programando para Internet » PHP »

PHP OO sistema de login no funciona en xampp y si en appserv

Estas en el tema de sistema de login no funciona en xampp y si en appserv en el foro de PHP en Foros del Web. Hola muy buenas tardes queria que me ayudaran porfavor a como hacer funcionar un sistema de login que hay en internet y que solo funciona ...
  #1 (permalink)  
Antiguo 25/06/2013, 14:39
 
Fecha de Ingreso: noviembre-2008
Mensajes: 150
Antigüedad: 15 años, 5 meses
Puntos: 1
Pregunta sistema de login no funciona en xampp y si en appserv

Hola muy buenas tardes queria que me ayudaran porfavor a como hacer funcionar un sistema de login que hay en internet y que solo funciona en appserver mas no en xampp.

El apserv network es la version 2.5
Y el xampp es la ultima version descargable desde su pagina.

Sobre el sistema de login que encontre googleando en internet y me parecio muy interesante .
Trabaja con cokkies y sessiones obviamente.
No se si alguno lo ha encontradoy no entiendo el porque me funciona en apserv y no en xamp

El sistema de login es este ahora pongo rl enlace.
http://www.coders.me/lang/es/php/sis...s-en-php-mysql

Y aqui esta descargable.

http://www.coders.me/wp-content/uplo...n-examples.zip

_-------------------------------------_

Si alguien lo ha usado. Es muy interesante pero no me funciona en xampp

Creo que es la. Clase login.php
Que no funciona.. o configuracion de los servidores con el php.ini
Porfavor alguien me podria ayudarde antemano muchas gracias.

Última edición por keygen20; 25/06/2013 a las 14:44
  #2 (permalink)  
Antiguo 25/06/2013, 19:17
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: sistema de login no funciona en xampp y si en appserv

Obtienes algún error?, si no es así, agrega este par de líneas al principio de tu script:

Código PHP:
Ver original
  1. ini_set('display_errors', '1');

Si te da algún error, trata de entenderlo y corregirlo, aunque sabes que cuentas con el foro para tratar de ayudar, es mejor que lo intentes tú primero.

Si no te da error, ya veremos que hacer.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 25/06/2013, 20:40
 
Fecha de Ingreso: noviembre-2008
Mensajes: 150
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: sistema de login no funciona en xampp y si en appserv

Claro muchos errores no poniendo ese codigo pero si activandolo desde el php.ini
del xampp y me salia estos errores.



y si amigo intente todo por solucionarlo pero no lo pude hacer.
por eso que recurro a este foro donde hay muchos buenos programadores en PHP OO
amigo tratando de solucionarlo me daba cuenta que no funciona el script de este archivo de este sistema que aqui lo pongo.
ojo solo en el xampp no funciona en cambio en el appservnetwork si me funciona sin problemas.
en el xampp en el bol que debe emitir lo hace false asi sea correcto o no la informacion del logeo
cosa que no sucede en el appserver.
file: login.php
Código PHP:
<?PHP 
if (version_compare(PHP_VERSION'5.0.0') < 0

    die(
'The CodeFlyer Framework requires PHP 5.x.x or greater.'); 



class 
login 

    private 
$username
    private 
$password
    private 
$privilege

    private 
$link
    private 
$id
    private 
$table
     
    public 
$error

  public function 
get($var
  { 
    
$var trim(lcase($var)); 

    if (
$var=='privilege'
    { 
      
$ret $this->privilege
    } 
    else if (
$var=='username'
    { 
      
$ret $this->username
    } 
    else if (
$var=='password'
    { 
      
$ret $this->password
    } 
    else 
    { 
      
$ret false
    } 
    return 
$ret
  } 

  public function 
isadmin() 
    { 
    return 
$this->privilege == 1
    } 
  public function 
isJefe() 
    { 
    return 
$this->privilege == 2
    }         
  public function 
isEmpleado() 
    { 
    return 
$this->privilege == 3
    } 
    
//privilegios 
     
    
public function getdata($data
    { 
    
$data $this->clean(trim($data)); 
    
$query "SELECT $data FROM {$this->table} WHERE id='{$this->id}' LIMIT 1;"
    if (
$result mysql_query($query$this->link)) 
    { 
      if (
$row mysql_fetch_assoc($result)) 
      { 
        return 
$row[$data]; 
      } 
    } 
    } 

    public function 
modlastlogin() 
    { 
        
mysql_query("UPDATE {$this->table} SET lastactive = NOW() WHERE id = '{$this->id}';"$this->link); 
        return 
mysql_affected_rows($this->link)==true false
    } 

    public function 
lastlogin() 
    { 
        if (
$result mysql_query("SELECT lastactive FROM {$this->table} WHERE id = '{$this->id}' LIMIT 1"$this->link)) 
        { 
            if (
$row mysql_fetch_assoc($result)) 
            { 
                return 
$row['lastactive']; 
            } 
        } 
    } 

    
/** 
     * Login core 
     */ 
    
public function inherit($session
    { 
    
session_name(urldecode($session)); 
    } 

    public function 
getSID() 
    { 
    return 
"PHPSESSID=".session_id(); 
    } 

  public function 
login($username$password$remember false
  { 
    
$username $this->clean($username); 
    
$password md5($password); 
    
$query    "SELECT * FROM {$this->table} WHERE username = '$username' LIMIT 1;"

    if (
$result mysql_query($query$this->link)) 
    { 
      if (
$row mysql_fetch_assoc($result)) 
      { 
        if (
$row['password']==$password
        { 
          return 
$this->setSession($row$remember); 
        } 
        else 
        { 
          
$this->logout(); 
          
$this->error 'pi'// Password Incorrect 
          
return false
        } 
      } 
      
$this->logout(); 
      
$this->error 'ui'// Username Incorrect 
      
return false
    } 
    else 
    { 
      
$this->logout(); 
      return 
false
    } 
  } 
   
  
// Construir la session y la cookie, y guardarlas en la base de datos. 
  
private function setSession(&$values$remember false$init true
  { 
    
$this->id         $values['id']; 
    
$this->username   $values['username']; 
    
$this->password   $values['password']; 
    
$this->privilege  $values['privilege']; 

    
$_SESSION['cf_login_username'] = htmlspecialchars($this->username); 
    
$_SESSION['ID'] = $this->id
    
$_SESSION['Nivel'] = $this->privilege
    
$cookie md5($values['username'].date("Y-m-d")); 
    if (
$remember
    { 
      
$this->update_cookie($cookietrue); 
    } 

    if (
$init
    { 
      
$session session_id(); 
      
mysql_query("UPDATE {$this->table} SET session='{$session}', cookie='{$cookie}' WHERE id='{$this->id}'"$this->link); 
      
$this->modlastlogin(); 
    } 
    return 
true
  } 

  private function 
update_cookie($cookie
  { 
    
$this->create_cookie('cf_login_cookie'serialize(array($this->username$this->password$cookie)), time() + 31104000); 
  } 
   
  public function 
create_cookie($name$value=''$maxage=0$domain=''$path=''$secure=false$HTTPOnly=false
  { 
    
$ob ini_get('output_buffering'); 
     
    if (
$_SERVER['HTTPS']) 
    { 
      
$secure true
    } 

    
// Abort the method if headers have already been sent, except when output buffering has been enabled 
    
if ( headers_sent() && (bool) $ob === false || strtolower($ob) == 'off' 
    { 
      return 
false
    } 

    if (!(bool)
$maxage
    { 
      
$maxage time()+3600
    } 

    if ( !empty(
$domain) ) 
    { 
      
// Fix the domain to accept domains with and without 'www.'. 
      
if ( strtolowersubstr($domain04) ) == 'www.' 
      { 
        
$domain substr($domain4); 
      } 

      
// Add the dot prefix to ensure compatibility with subdomains 
      
if ( substr($domain01) != '.' 
      { 
        
$domain '.'.$domain
      } 


      
// Remove port information. 
      
$port strpos($domain':'); 

      if ( 
$port !== false 
      { 
        
$domain substr($domain0$port); 
      } 
    } 
    else 
    { 
      
// Localhost compatibility 
      
$domain = ($_SERVER['HTTP_HOST'] != 'localhost') ? $_SERVER['HTTP_HOST'] : false
    } 

    
header('Set-Cookie: ' .rawurlencode($name).'='.rawurlencode($value
                          .(empty(
$domain) ? '' '; Domain='.$domain 
                          .(empty(
$maxage) ? '' '; Max-Age='.$maxage
                          .(empty(
$path)   ? '' '; Path='.$path     
                          .(!
$secure       '' '; Secure'          
                          .(!
$HTTPOnly     '' '; HttpOnly'        
          , 
false); 
    return 
true
  } 

  
// Devuelve true si el usuario está logueado. Caso contrario devuelve false. 
  // @return bool 
    
public function logged() 
    { 

    
$cookie = array(); 
    if (
$_COOKIE['cf_login_cookie']) 
    { 
      list(
$cookie['username'], $cookie['password'], $cookie['serial']) = @unserialize(stripslashes($_COOKIE['cf_login_cookie'])); 
    } 

    if (
$cookie['serial'] && $cookie['username'] && $cookie['password']) 
    { 
      
$query    "SELECT * FROM {$this->table} WHERE (username = '{$cookie['username']}') AND (password = '{$cookie['password']}') AND (cookie = '{$cookie['serial']}') LIMIT 1;"
    } 
    else 
    { 
      
// Verificar si los datos de session son válidos. 
      
$username $_SESSION['cf_login_username']; 
      
$session  session_id(); 
      
$query    "SELECT * FROM {$this->table} WHERE (username = '$username') AND (session = '$session') LIMIT 1;"
    } 


    if (
$result mysql_query($query$this->link)) 
    { 
      if (
$row mysql_fetch_assoc($result)) 
      { 
        return 
$this->setSession($rowfalsefalse); // Log in 
      

      else 
      { 
        return 
false
      } 
    } 
    else 
    { 
      return 
false
    } 
    } 

    public function 
logout() 
    { 
    
$_SESSION['cf_login_username'] = ''
    
$_SESSION['cf_login_cookie']   = 0
    
$this->create_cookie('cf_login_cookie'''time() - 3600); 
    
mysql_query("UPDATE {$this->table} SET session='".strtoupper(md5(time()))."', cookie='".strtoupper(md5(time()))."' WHERE id='{$this->id}'"$this->link); 

    
$this->username ''
    
$this->password ''
    
$this->privilege 0
    
$this->id 0
  } 

  private function 
clean($value
  { 
    if (
get_magic_quotes_gpc()) 
    { 
      
$value stripslashes($value); 
    } 
    
$value mysql_real_escape_stringhtmlspecialchars$value ) ); 
    return 
$value
  } 

    public function 
__construct($array
    { 
    
$this->table $array['table'] ? $array['table'] : 'login'
    
$this->link  mysql_connect$array['host'] ? $array['host'] : 'localhost'$array['username'], $array['password'], true ); 
    if (!
$this->link
    { 
      die(
mysql_error()); 
    } 
    else 
    { 
      if (!
mysql_select_db($array['database'])) 
      { 
        die(
mysql_error()); 
      } 
    } 

    if (isset(
$_GET['PHPSESSID'])) 
    { 
      
session_id($_GET['PHPSESSID']); 
    } 

    
session_start(); 
    } 



?>
Si se fija es uno de los archivos del sistema mencionado.

que podria ser?
sera el servidor?
abra alguna solucion?
el constructor esta en el script puesto.
de antemano muchas gracias.
  #4 (permalink)  
Antiguo 25/06/2013, 20:46
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: sistema de login no funciona en xampp y si en appserv

Ya te respondieron en el otro tema que abriste sobre esto mismo: http://www.forosdelweb.com/f18/error...index-1059617/
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 25/06/2013, 20:57
 
Fecha de Ingreso: noviembre-2008
Mensajes: 150
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: sistema de login no funciona en xampp y si en appserv

pues en ese tema hise eso mismo arregle el constructor.. pero aun asi me sigue saliendo el mensaje no se en donde tengo q modificar si ya lo modifique como me indicaron.
  #6 (permalink)  
Antiguo 25/06/2013, 21:06
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: sistema de login no funciona en xampp y si en appserv

Cómo lo arreglaste? porque lo que te dijo HackmanC es que no puedes tener un método login y un __construct en la misma clase.

Intenta renombrando login por doLogin o algo así y después editas el script que hace la llamada a ese método.
__________________
- León, Guanajuato
- GV-Foto
  #7 (permalink)  
Antiguo 25/06/2013, 21:23
 
Fecha de Ingreso: noviembre-2008
Mensajes: 150
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: sistema de login no funciona en xampp y si en appserv

osea indicas que tengo que sacar el constructor fuera de la clase LOGIN?..
ejemplo:
class login{

}
public function __construct($array) {

}

algo asi indicas?..
porque ahora en si el constructor esta dentro de los corchetes de la clase..
o me equivoco?
  #8 (permalink)  
Antiguo 25/06/2013, 21:29
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: sistema de login no funciona en xampp y si en appserv

Cita:
Iniciado por keygen20
osea indicas que tengo que sacar el constructor fuera de la clase LOGIN?
Cita:
Iniciado por Mí mismo
Intenta renombrando login por doLogin o algo así y después editas el script que hace la llamada a ese método.
No fue muy clara la sugerencia?
__________________
- León, Guanajuato
- GV-Foto
  #9 (permalink)  
Antiguo 26/06/2013, 06:59
 
Fecha de Ingreso: julio-2010
Mensajes: 275
Antigüedad: 13 años, 9 meses
Puntos: 21
Respuesta: sistema de login no funciona en xampp y si en appserv

creo que hay que configurar el php.ini para que no muestre los mensajes tipo 'notice'
  #10 (permalink)  
Antiguo 26/06/2013, 18:02
 
Fecha de Ingreso: noviembre-2008
Mensajes: 150
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: sistema de login no funciona en xampp y si en appserv

Amigo triby muy buenas tardes. si hise lo que usted me indico pero me empezo a salir problemas. renombre la clase
que se encuentra en el archivo "login.php"(mas arriba publique todo el codigo)
y luego cambie tambien en las llamadas de los metodos
pero solo me salio errores y errores.
no pude solucionarlo.
alguna sugerencia por favor como hacerlo?

hola amig Sirrohan lo que usted me indica es tapar los mensajes notice.
si lo he hecho pero eso no lo soluciona solo lo tapa y seguia sin funcionar en el xampp

muchas gracias por darse el tiempo en contestarme.
no tiene alguna otra solucion?
de antemano muchas gracias
  #11 (permalink)  
Antiguo 27/06/2013, 06:38
 
Fecha de Ingreso: julio-2010
Mensajes: 275
Antigüedad: 13 años, 9 meses
Puntos: 21
Respuesta: sistema de login no funciona en xampp y si en appserv

tambien debes agregar unos archivos en el la carpeta del servidor apache, no me acuerdo cuales son porque lo hice hace mucho tiempo, migrar un sistema de Appserv a Xammp...

Etiquetas: appserv, login, sistema, sql, usuarios, xampp
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 23:57.