Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Autentificacion de ususario

Estas en el tema de Autentificacion de ususario en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Tengo este metodo dentro de una clase, pero quiero saber porque los valores $this->variable no se les queda el valor, ya que me he visto ...
  #1 (permalink)  
Antiguo 08/08/2006, 19:00
 
Fecha de Ingreso: septiembre-2003
Mensajes: 384
Antigüedad: 20 años, 7 meses
Puntos: 0
Autentificacion de ususario

Tengo este metodo dentro de una clase, pero quiero saber porque los valores
$this->variable no se les queda el valor,

ya que me he visto obligado a tener que utilizar $_SESSION['variable'] porque las variables no se quedan con el valor,

y si me dan una mejor idea de como pasar las variables de session de una mejor manera, porque me estan dado agua a beber, porque estoy utilizando ajax no se, si por eso me afecta
Código PHP:
function autentificar()
 {
         
header('P3P: CP="CAO PSA OUR"');
         
$consulta=mysql_query("SELECT * FROM ego_ua_user_pww WHERE usuario='$this->usuario' AND activo=1");
         
$consulta_r=mysql_fetch_array($consulta);
        
$consulta2=mysql_query("SELECT * FROM ego_ua_perfil WHERE usuario='$this->usuario'");
         
$consulta_r2=mysql_fetch_array($consulta2);
        
$this->usuario_activo_exist();
        if (
$consulta_r["password"]==md5($this->password))
            {
                   
// Session au para saber si esta autentificado
                
session_register('ua');
                
session_register('nombre');
                
session_register('nivel');
                
session_register('usuario');
                
$_SESSION['ua']=1;
                 
$nombre=explode("|",$consulta_r2["nombre"]);
                 
$name=explode(" ",$nombre[0]);
                 
$name2=explode(" ",$nombre[1]);
                 
$_SESSION['nombre']=$name[0]." ".$name2[0];;
                 
$_SESSION['nivel']=$consulta_r["nivel"];
                 
$_SESSION['usuario']=$consulta_r["usuario"];         
                 
$this->logued=$_SESSION['ua'];
                 
$this->usuario=$_SESSION['usuario'];
                 
$this->nombre=$_SESSION['nombre'];
                 
$this->nivel=$_SESSION['nivel'];
             
// Para asegurar que grave
             
session_write_close();
             }else{
                 
//$_SESSION['ua']=0;
                 //$this->loged=$_SESSION['ua'];
                 
echo "<br>El Usuario: ";    
                echo 
$this->usuario;
                echo 
" no coincide con su password";
              }
 } 
__________________
-----------------------------
Edgar Gonzalez
  #2 (permalink)  
Antiguo 08/08/2006, 19:18
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Hablando de sesiones .. el uso de session_register() que usas (fuera de que estes generando una classe o trabajando en general con POO) .. NO ES CORRETO ni debes mezclaro con $_SESSION ..

Quita todos tus session_register().

Por lo demàs $_SESSION como array que es y del tipo que es ..es de ambito "superglobal" .. es decir .. lo puedes acceder desde dentro de funciones o mètodos directamente sin problemas.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 08/08/2006, 19:49
 
Fecha de Ingreso: septiembre-2003
Mensajes: 384
Antigüedad: 20 años, 7 meses
Puntos: 0
Exacto tengo un login_box, donde el usuario escribe su usuario y password y se autentifica bien, pero cuando paso a cualquier otra seccion de la pagina que se caga a traves de un metodo ajax

utilizando
$_SESSION['ua']

este es mi script ajax como lo cargo
Código PHP:
function cargar_seccion (urlel) {
        
// Has element been passed as object or id-string?
        
if (typeof(el) == 'string') {
                
el document.getElementById(el);
        }

        
// Valid el?
        
if (el == null) { return false; }

        
// Does URL begin with http?
        
if (url.substring(04) != 'http') {
                
url base_url url;
        }

        
// Create getfile URL
        
getfile_url base_url 'load_page.php?url=' escape(url) + '&el=' escape(el.id);

        
// Do Ajax
        
ajax_do (getfile_url);

        return 
true;

y la seccion donde no se ve el valor de la session es

mi_cuenta.php
Código PHP:
<?php
/*
 * Creado en Aug 7, 2006
 * Creado por Edgar Gonzalez
 * 
 * Programa para manejar la cuenta de cada User
 */
include("../include/vars.php");
if(
$_SESSION['ua']==1)
{
global 
$servidor,$user,$pass,$db,$_SESSION;
$usuario=$_SESSION['usuario'];
$conexion=mysql_connect($servidor$user$pass) or die ("no se pudo conectar a la Db");
$db_c=mysql_select_db($db)or die ("no se pudo seleccionar a la Db");
$p=mysql_query("SELECT * from ego_ua_user_pww WHERE usuario='$usuario'")
        or die (
mysql_error());
$pr=mysql_fetch_array($p);
$p2=mysql_query("SELECT * from ego_ua_perfil WHERE usuario='$usuario'")
        or die (
mysql_error());
$p2r=mysql_fetch_array($p2);
$nombre=explode("|",$p2r['nombre']);
$ubicacion=explode("|",$p2r['ubicacion']);
?>
<body>
<p><font color="#FF0000">Los Campos con * son obligatoriamente requeridos</font></p></td>
<div id="loading"></div>
<form name="registro_ua" method="POST">
<table align="center">
<tr>
<input type="hidden" id="mytextarea1" value="sdfsdfg"></textarea>
<td><p>E-mail:</td>
<td><?php echo $pr['usuario'];?>
<font color="#FF0000">&nbsp;
<spam id='mensaje_disponible'></spam>
</font></td>
<td><p><font color="#FF0000">Este ser&aacute; el e-mail utilizado para todo lo relacionado con la tienda, y la autentificaci&oacute;n</font></p></td>
</tr>
<tr>
<td><p>Contrase&ntilde;a:</td>
<td><input type="password" size="14" name="password" id="password" value=""><font color="#FF0000">*</font></input></td>
<td><p><font color="#FF0000">Contrase&ntilde;a Mayor de 8 Caracteres</font></p></td>
</tr>

<tr>
<td><p>Repetir Contrase&ntilde;a:</input></td>
<td><input type="password" size="14" name="password2" id="password2" value=""><font color="#FF0000">*</font></input></td>
</tr>
<tr>
<td><p>Nombres:</td>
<td><input type="text" size="40" name="nombres" id="nombres" value="<?php echo $nombre[0];?>"></input></td>
</tr>
<tr>
<td><p>Apellidos:</td>
<td><input type="text" size="40" name="apellidos" id="apellidos" value="<?php echo $nombre[1];?>"></input></td>
</tr>
<tr>
<td><p>Sexo:</td>
<td><SELECT NAME="sex" id="sex">
<OPTION VALUE="1" <?php echo ($p2r["sex"] == "Masculino" 'selected' '');?>>Masculino</OPTION>
<OPTION VALUE="0" <?php echo ($p2r["sex"] == "Femenina" 'selected' '');?>>Femenina</OPTION>
</SELECT>
</td>
</tr>
<tr><td>Fecha Nac.:</td>
<td><SELECT NAME="ano" id="ano">
<?php
for($i=1920$i<=2001$i++)
echo
"<OPTION VALUE=\"$i\">$i</OPTION>\n";
?>
</SELECT>
<SELECT NAME="mes" id="mes">
<OPTION VALUE="01">Enero</OPTION>
<OPTION VALUE="02">Febrero</OPTION>
<OPTION VALUE="03">Marzo</OPTION>
<OPTION VALUE="04">Abril</OPTION>
<OPTION VALUE="05">Mayo</OPTION>
<OPTION VALUE="06">Junio</OPTION>
<OPTION VALUE="07">Julio</OPTION>
<OPTION VALUE="08">Agosto</OPTION>
<OPTION VALUE="09">Septiembre</OPTION>
<OPTION VALUE="10">Octubre</OPTION>
<OPTION VALUE="11">Noviembre</OPTION>
<OPTION VALUE="12">Diciembre</OPTION>
</SELECT>
<SELECT NAME="dia" id="dia">
<OPTION VALUE="01">01</OPTION>
<OPTION VALUE="02">02</OPTION>
<OPTION VALUE="03">03</OPTION>
<OPTION VALUE="04">04</OPTION>
<OPTION VALUE="05">05</OPTION>
<OPTION VALUE="06">06</OPTION>
<OPTION VALUE="07">07</OPTION>
<OPTION VALUE="08">08</OPTION>
<OPTION VALUE="09">09</OPTION>
<OPTION VALUE="10">10</OPTION>
<OPTION VALUE="11">11</OPTION>
<OPTION VALUE="12">12</OPTION>
<OPTION VALUE="13">13</OPTION>
<OPTION VALUE="14">14</OPTION>
<OPTION VALUE="15">15</OPTION>
<OPTION VALUE="16">16</OPTION>
<OPTION VALUE="17">17</OPTION>
<OPTION VALUE="18">18</OPTION>
<OPTION VALUE="19">19</OPTION>
<OPTION VALUE="20">20</OPTION>
<OPTION VALUE="21">21</OPTION>
<OPTION VALUE="22">22</OPTION>
<OPTION VALUE="23">23</OPTION>
<OPTION VALUE="24">24</OPTION>
<OPTION VALUE="25">25</OPTION>
<OPTION VALUE="26">26</OPTION>
<OPTION VALUE="27">27</OPTION>
<OPTION VALUE="28">28</OPTION>
<OPTION VALUE="29">29</OPTION>
<OPTION VALUE="30">30</OPTION>
<OPTION VALUE="31">31</OPTION>
</SELECT>
</td>
</tr>
<tr>
<td><p>Ciudad:</td>
<td>
<SELECT NAME="ciudad" id="ciudad">            
<option value="Azua">Azua</option>
<option value="Bani">Bani</option>
<option value="Barahona">Barahona</option>
<option value="Bonao">Bonao</option>
<option value="DN">Distrito Nacional</option>
<option value="Espaillat">Espaillat</option>
<option value="Hato Mayor">Hato Mayor</option>
<option value="Higuey - La Altagracia">Higuey - La Altagracia</option>
<option value="La Romana">La Romana</option>
<option value="La Vega">La Vega</option>
<option value="Maria Trinidad Sanchez">Maria Trinidad Sanchez</option>
<option value="Monte Cristi">Monte Cristi</option>
<option value="Puerto Plata">Puerto Plata</option>
<option value="Samana">Samana</option>
<option value="San Cristobal">San Cristobal</option>
<option value="San Francisco de Macoris">San Francisco de Macoris</option>
<option value="San Juan de la Maguana">San Juan de la Maguana</option>
<option value="San Pedro de Macoris">San Pedro de Macoris</option>
<option value="Sanchez Ramirez">Sanchez Ramirez</option>
<option value="Santiago">Santiago</option>
<option value="Valverde Mao">Valverde Mao</option>
</SELECT></td>
</tr>
<tr>
<td><p>Sector:</td>
<td><input type="text" size="40" name="sector" id="sector" value="<?php echo $ubicacion[0];?>"></td>
</tr>

<tr>
<td><p>Direcci&oacute;n:</td>
<td><textarea name="calle" cols=30 rows=4 id="calle"><?php echo $ubicacion[1];?></textarea></td>
</tr>
<tr>
<td></td>
<td align="right">
<input type="button" name="button" value="Enviar" onclick="update_user();">
</p></td></tr>
</table>
</form>
<?php
}
else
//header('Location:index.php');
?>
__________________
-----------------------------
Edgar Gonzalez
  #4 (permalink)  
Antiguo 08/08/2006, 19:52
 
Fecha de Ingreso: septiembre-2003
Mensajes: 384
Antigüedad: 20 años, 7 meses
Puntos: 0
tiene que ver que no este pasando el <?php SID; ?> session_id ???

si es eso como la puedo pasar?
__________________
-----------------------------
Edgar Gonzalez
  #5 (permalink)  
Antiguo 08/08/2006, 20:11
 
Fecha de Ingreso: septiembre-2003
Mensajes: 384
Antigüedad: 20 años, 7 meses
Puntos: 0
Bueno ya vi que el error esta en que lo estoy cargando por ajax, tendre que hacerlo como lo tradiciendal, haciendo un include, pero ya ver que hago, porque quiero que la pagina sea dinamica
__________________
-----------------------------
Edgar Gonzalez
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 02:36.