Foros del Web » Programando para Internet » PHP »

Sistema de usuarios no loguea

Estas en el tema de Sistema de usuarios no loguea en el foro de PHP en Foros del Web. Buenas Tengo un sistema de usuarios que no me funciona, me da error en headers already sent, en la linea 13 de la index que ...
  #1 (permalink)  
Antiguo 22/11/2009, 18:18
 
Fecha de Ingreso: agosto-2003
Mensajes: 906
Antigüedad: 20 años, 7 meses
Puntos: 3
Sistema de usuarios no loguea

Buenas

Tengo un sistema de usuarios que no me funciona, me da error en headers already sent, en la linea 13 de la index que tiene esto


<meta http-equiv="Content-Language" content="es"/>

y en access class linea 70 que tiene esto

$a = setcookie($this->remCookieName, $cookie,time()+$this->remTime, '/');

no tengo lineas en blanco ni nada raro, que puede ser?, no puedo entra ni me reconoce, ademas si entro no puedo salir me da error en esa linea.
  #2 (permalink)  
Antiguo 22/11/2009, 18:23
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 15 años, 11 meses
Puntos: 2534
Respuesta: Sistema de usuarios no loguea

seguro que antes de eso no hay nada??

porque no necesariamente son espacios, también HTML, texto, lo que sea...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 22/11/2009, 18:30
 
Fecha de Ingreso: agosto-2003
Mensajes: 906
Antigüedad: 20 años, 7 meses
Puntos: 3
Respuesta: Sistema de usuarios no loguea

como html y texto?...no tengo nada...
  #4 (permalink)  
Antiguo 22/11/2009, 18:38
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 15 años, 11 meses
Puntos: 2534
Respuesta: Sistema de usuarios no loguea

cualquier cosa.... incluso un echo ??

además... por favor evitanos tener que pedirte todo siempre..

por favor, coloca el mensaje de error completo... así no hay que adivinar nada!!

NOTA que el error te dice dos cosas: donde se generó la salida que provoca el error... y la linea en la cual invocas dicha función, llamese setcookie(), session_start(), header(), etc..
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 22/11/2009, 19:09
 
Fecha de Ingreso: agosto-2003
Mensajes: 906
Antigüedad: 20 años, 7 meses
Puntos: 3
Respuesta: Sistema de usuarios no loguea



no puedo copiarlo porque me reenvia a la home, el error que da es el que se ve en la imagen, y las lineas tienen lo que puse arriba...
  #6 (permalink)  
Antiguo 22/11/2009, 19:26
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 15 años, 11 meses
Puntos: 2534
Respuesta: Sistema de usuarios no loguea

ya ves...

entonces si estas imprimiendo algo antes de usar setcookie()

o estoy imaginando cosas??
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 22/11/2009, 19:27
 
Fecha de Ingreso: agosto-2003
Mensajes: 906
Antigüedad: 20 años, 7 meses
Puntos: 3
Respuesta: Sistema de usuarios no loguea

esto hace....

$a = setcookie($this->remCookieName, $cookie,time()+$this->remTime, '/');
  #8 (permalink)  
Antiguo 22/11/2009, 19:30
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 15 años, 11 meses
Puntos: 2534
Respuesta: Sistema de usuarios no loguea

Cita:
Iniciado por pateketrueke Ver Mensaje
[...] NOTA que el error te dice dos cosas: donde se generó la salida que provoca el error... y la linea en la cual invocas dicha función, llamese setcookie(), session_start(), header(), etc..
entonces... ¿cual es el problema??

simplemente evita imprimir lo que sea... antes de lo que ya se sabe...


pues... la linea donde invocas setcookie() no es el problema... es que desde mucho antes ya estas enviando algo de salida...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 22/11/2009, 21:29
 
Fecha de Ingreso: agosto-2003
Mensajes: 906
Antigüedad: 20 años, 7 meses
Puntos: 3
Respuesta: Sistema de usuarios no loguea

y como puedo reproducir y reconocer algo asi?, la verdad no envio nada antes de la linea 13 en la index tengo esto:

Código PHP:
<?php
include 'access.class.php';
$user = new flexibleAccess();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<base href="http://www.web.com"/>
<meta http-equiv="cache-control" content="no-cache"/>
<meta name="title" content="key"/>
<meta name="DC.title" content="key"/>
<meta http-equiv="title" content="key"/>
<meta http-equiv="Content-Language" content="es"/>
asique no se que pueda ser...la verdad no lo entiendo...
  #10 (permalink)  
Antiguo 22/11/2009, 21:53
 
Fecha de Ingreso: agosto-2003
Mensajes: 906
Antigüedad: 20 años, 7 meses
Puntos: 3
Respuesta: Sistema de usuarios no loguea

ah este es el access.class.php

Código PHP:
<?php
class flexibleAccess{
var 
$dbName 'db';
var 
$dbHost 'localhost';
var 
$dbPort port;
var 
$dbUser 'usr';
var 
$dbPass 'pass';
var 
$dbTable  'table';
var 
$sessionVariable 'userSessionValue';
var 
$tbFields = array(
'userID'=> 'id'
'login' => 'usuario',
'email' => 'email',
'pass'  => 'clave',
'active'=> 'activacion'
);
var 
$remTime 2592000;
var 
$remCookieName 'ckSavePass';
var 
$remCookieDomain '';
var 
$passMethod 'sha1';
var 
$displayErrors true;
var 
$userID;
var 
$dbConn;
var 
$userData=array();
function 
flexibleAccess($dbConn ''$settings '')
{
if ( 
is_array($settings) ){
foreach ( 
$settings as $k => $v ){
if ( !isset( 
$this->{$k} ) ) die('Property '.$k.' does not exists. Check your settings.');
$this->{$k} = $v;
}
}
$this->remCookieDomain $this->remCookieDomain == '' $_SERVER['HTTP_HOST'] : $this->remCookieDomain;
$this->dbConn = ($dbConn=='')? mysql_connect($this->dbHost.':'.$this->dbPort$this->dbUser$this->dbPass):$dbConn;
if ( !
$this->dbConn ) die(mysql_error($this->dbConn));
mysql_select_db($this->dbName$this->dbConn)or die(mysql_error($this->dbConn));
if( isset( 
$_SESSION ) ) session_start();
if ( !empty(
$_SESSION[$this->sessionVariable]) )
{
$this->loadUser$_SESSION[$this->sessionVariable] );
}
if ( isset(
$_COOKIE[$this->remCookieName]) && $_COOKIE[$this->remCookieName]!="0" && !$this->is_loaded()){
$u unserialize(base64_decode($_COOKIE[$this->remCookieName]));
$this->login($u['uname'], $u['password']);
}
}
function 
login($uname$password$remember false$loadUser true)
{
$uname    $this->escape($uname);
$password $originalPassword $this->escape($password);
switch(
strtolower($this->passMethod)){
case 
'sha1':
$password "SHA1('$password')"; break;
case 
'md5' :
$password "MD5('$password')";break;
case 
'nothing':
$password "'$password'";
}
$res $this->query("SELECT * FROM `{$this->dbTable}` 
WHERE `{$this->tbFields['login']}` = '$uname' AND `{$this->tbFields['pass']}` = $password LIMIT 1"
,__LINE__);
if ( @
mysql_num_rows($res) == 0)
return 
false;
if ( 
$loadUser )
{
$this->userData mysql_fetch_array($res);
$this->userID $this->userData[$this->tbFields['userID']];
$_SESSION[$this->sessionVariable] = $this->userID;
if ( 
$remember ){
$cookie base64_encode(serialize(array('uname'=>$uname,'password'=>$originalPassword)));
$a setcookie($this->remCookieName$cookie,time()+$this->remTime'/');
}
}
return 
true;
}
function 
logout($redirectTo '')
{
setcookie($this->remCookieName"0"time()-86400'/');
unset(
$_SESSION[$this->sessionVariable],$_COOKIE[$this->remCookieName],$this->userID);
$this->userData '';
if ( 
$redirectTo != '' && !headers_sent()){
header('Location: '.$redirectTo );
exit;
}
}
function 
is($prop){
return 
$this->get_property($prop)==1?true:false;
}
function 
get_property($property)
{
//if (empty($this->userID)) $this->error('No user is loaded', __LINE__);
//if (!isset($this->userData[$property])) $this->error('Unknown property <b>'.$property.'</b>', __LINE__);
return $this->userData[$property];
}
function 
is_active()
{
return 
$this->userData[$this->tbFields['active']];
}
function 
is_loaded()
{
return empty(
$this->userID) ? false true;
}
function 
activate()
{
if (empty(
$this->userID)) $this->error('No user is loaded'__LINE__);
if ( 
$this->is_active()) $this->error('Allready active account'__LINE__);
$res $this->query("UPDATE `{$this->dbTable}` SET {$this->tbFields['active']} = 1 
WHERE `{$this->tbFields['userID']}` = '"
.$this->escape($this->userID)."' LIMIT 1");
if (@
mysql_affected_rows() == 1)
{
$this->userData[$this->tbFields['active']] = true;
return 
true;
}
return 
false;
}
function 
insertUser($data){
if (!
is_array($data)) $this->error('Data is not an array'__LINE__);
switch(
strtolower($this->passMethod)){
case 
'sha1':
$password "SHA1('".$data[$this->tbFields['pass']]."')"; break;
case 
'md5' :
$password "MD5('".$data[$this->tbFields['pass']]."')";break;
case 
'nothing':
$password $data[$this->tbFields['pass']];
}
foreach (
$data as $k => $v $data[$k] = "'".$this->escape($v)."'";
$data[$this->tbFields['pass']] = $password;
$this->query("INSERT INTO `{$this->dbTable}` (`".implode('`, `'array_keys($data))."`) VALUES (".implode(", "$data).")");
return (int)
mysql_insert_id($this->dbConn);
}
function 
randomPass($length=10$chrs '23456789qwertyupasdfghjkzxcvbnm'){
for(
$i 0$i $length$i++) {
$pwd .= $chrs{mt_rand(0strlen($chrs)-1)};
}
return 
$pwd;
}
function 
query($sql$line 'Uknown')
{
$res mysql_db_query($this->dbName$sql$this->dbConn);
if ( !
res )
$this->error(mysql_error($this->dbConn), $line);
return 
$res;
}
function 
loadUser($userID)
{
$res $this->query("SELECT * FROM `{$this->dbTable}` WHERE `{$this->tbFields['userID']}` = '".$this->escape($userID)."' LIMIT 1");
if ( 
mysql_num_rows($res) == )
return 
false;
$this->userData mysql_fetch_array($res);
$this->userID $userID;
$_SESSION[$this->sessionVariable] = $this->userID;
return 
true;
}
function 
escape($str) {
$str get_magic_quotes_gpc()?stripslashes($str):$str;
$str mysql_real_escape_string($str$this->dbConn);
return 
$str;
}
function 
error($error$line ''$die false) {
if ( 
$this->displayErrors )
echo 
'<b>Error: </b>'.$error.'<br /><b>Line: </b>'.($line==''?'Unknown':$line).'<br />';
if (
$die) exit;
return 
false;
}
}
?>
  #11 (permalink)  
Antiguo 22/11/2009, 22:08
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 15 años, 11 meses
Puntos: 2534
Respuesta: Sistema de usuarios no loguea

mira, según Zend... si el código solo contiene puro PHP, como una clase...

debes omitir el ultimo ?> para evitar inyecciones sin querer de espacios, texto, o lo que sea....
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #12 (permalink)  
Antiguo 23/11/2009, 16:19
 
Fecha de Ingreso: agosto-2003
Mensajes: 906
Antigüedad: 20 años, 7 meses
Puntos: 3
Respuesta: Sistema de usuarios no loguea

Lo quite pero me sigue haciendo lo mismo...ya no entiendo mas nada....y me esta sacando la cabeza...
  #13 (permalink)  
Antiguo 23/11/2009, 21:41
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 14 años, 4 meses
Puntos: 65
Respuesta: Sistema de usuarios no loguea

Fijate que todos tus archivos esten guardados con codificacion ANSI
  #14 (permalink)  
Antiguo 24/11/2009, 10:58
 
Fecha de Ingreso: junio-2009
Mensajes: 231
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: Sistema de usuarios no loguea

Dios...

Es un error tonto

Quita todos los espacios... de seguro tienes algun espacio despues de ?>
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 04:48.