Foros del Web » Programando para Internet » PHP »

Autentificator - Gestión de Usuarios by Cluster

Estas en el tema de Autentificator - Gestión de Usuarios by Cluster en el foro de PHP en Foros del Web. hola!!! bueno todo ha funcionado a la perfeccion pero...... yo manejo que una persona pueda tener 2 nombres de usuarios, de hecho el puede entrar ...

  #361 (permalink)  
Antiguo 19/10/2006, 08:22
Avatar de Stickmaster2004  
Fecha de Ingreso: septiembre-2004
Ubicación: Barranquilla
Mensajes: 568
Antigüedad: 20 años, 3 meses
Puntos: 0
2 usuarios en mismo navegador

hola!!!
bueno todo ha funcionado a la perfeccion pero......
yo manejo que una persona pueda tener 2 nombres de usuarios, de hecho el puede entrar con el mismo explorador ejemplo: internet explorer, tengo el siguiente problema:

cuando la persona entra con su primer usuario, entra a su sesion y todo esta perfecto hace sus operaciones hasta alli todo bien, el pero radica cuando este determina entrar con el otro usuario que tiene con el mismo explorador, el entra con su otro usuario perfectamente, pero cuando quieres devolverte al otro usuario que tenias antes abierto te dice "Acceso incorrecto" o en su defecto queda igual pero al pulsar la tecla F5 se pasa a la otra sesion del usuario, que puede estar pasando.....????
__________________
Solo el que se basa en conocimiento basico y cultiva el aprendizaje obtendra sabiduria
  #362 (permalink)  
Antiguo 19/10/2006, 08:40
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 11 meses
Puntos: 129
Cita:
Iniciado por Stickmaster2004 Ver Mensaje
hola!!!
bueno todo ha funcionado a la perfeccion pero......
yo manejo que una persona pueda tener 2 nombres de usuarios, de hecho el puede entrar con el mismo explorador ejemplo: internet explorer, tengo el siguiente problema:

cuando la persona entra con su primer usuario, entra a su sesion y todo esta perfecto hace sus operaciones hasta alli todo bien, el pero radica cuando este determina entrar con el otro usuario que tiene con el mismo explorador, el entra con su otro usuario perfectamente, pero cuando quieres devolverte al otro usuario que tenias antes abierto te dice "Acceso incorrecto" o en su defecto queda igual pero al pulsar la tecla F5 se pasa a la otra sesion del usuario, que puede estar pasando.....????
Lo que te sucede más bien es un problema de las sesiones de PHP en general .. de como las gestiona.

Autentificator requiere que se propaga el SID en cookies .. se crea UNA cookie con el SID en ella incrustrado por "cliente" (PC) .. por eso no puedes abrir dos sesiones completamente independientes en un mismo PC (navegador), la cookie es la misma en estos casos y con ella el mismo "archivo" físico en el servidor que contiene nuestros datos de sesión relacionados por ese "SID". Esto lo maneja PHP y su uso de sesiones.

En resumen ... la sesión es la misma .. pero como tus nombres de variables usadas son iguales por qué usas la misma aplicación, ahí es donde existe la confusión.

Una posible solución a este problema sería crear nombres de sesión aleatorios en cada "login" que hagas. Para esto deberías gestionar ese nombre de sesión creado en un campo nuevo de la tabla de usuarios para continuar con el mismo ... esto implicaría una consulta SQL constante a cada iteracción de tus páginas (se perdería la "gracia" de las sesiones para almacenar datos en forma temporal). Y .. realmente no sé como vamos a saber que usuario está en qué sesión si todavía no hemos iniciado una sesión!??!

Autentificator por lo menos define por configuración de este el nombre de la sesión que vas a usar y que aplica en session_name() y esto hace posible que en un mismo servidor tengas dos o más instalaciones de "Autentificator" en otras aplicaciones sin problemas con las sesiones, tan sólo definiendo a una aplicación un "nombre" de sesión y a la otra .. otro nombre de sesión.

Un salduo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #363 (permalink)  
Antiguo 19/10/2006, 09:46
Avatar de Stickmaster2004  
Fecha de Ingreso: septiembre-2004
Ubicación: Barranquilla
Mensajes: 568
Antigüedad: 20 años, 3 meses
Puntos: 0
aleatorio sesion_name????

bueno segun lo que entiendo es que el asigna un mismo nombre de sesion, asi:

aut_config.inc.php -> $usuarios_sesion="autentificator";

y en aut_verifica.inc.php -> session_name($usuarios_sesion);

es decir se tendria que cambiar ese session_name que siempre es estatico, por uno que sea dinamico es decir utilizar un randomico o algo asi, como implementaria esto, teniendo en cuenta que si ese randomico que me arroja esta siendo utilizado pues que busque otro para asignarlo.

esa es la idea que me planteaste??????

bueno por fa si me dieras una guia de como hacer esto te lo agradeceria
__________________
Solo el que se basa en conocimiento basico y cultiva el aprendizaje obtendra sabiduria
  #364 (permalink)  
Antiguo 19/10/2006, 10:38
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 11 meses
Puntos: 129
Cita:
Iniciado por Stickmaster2004 Ver Mensaje
bueno segun lo que entiendo es que el asigna un mismo nombre de sesion, asi:

aut_config.inc.php -> $usuarios_sesion="autentificator";

y en aut_verifica.inc.php -> session_name($usuarios_sesion);

es decir se tendria que cambiar ese session_name que siempre es estatico, por uno que sea dinamico es decir utilizar un randomico o algo asi, como implementaria esto, teniendo en cuenta que si ese randomico que me arroja esta siendo utilizado pues que busque otro para asignarlo.

esa es la idea que me planteaste??????

bueno por fa si me dieras una guia de como hacer esto te lo agradeceria
Esa es una idea que se me ocurrió a la rápida .. pero ahí mismo digo que no serviría pues esto se debe hacer por "usuario" y no por "aplicación" (como es como se usa).

Realmente no sé como enfocar tu problema (así a la rápida) ..

Tal vez lo resuelvas propagando el SID en el URL y no en cookies. Para eso tendrás que añadir el SID en los redireccionamientos que hagas .. tanto los que hace "Autentificator" (con sus header("Location: ...")) como los que hagas tu en tu aplicación: links .. etc.

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

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #365 (permalink)  
Antiguo 20/10/2006, 07:40
Avatar de Stickmaster2004  
Fecha de Ingreso: septiembre-2004
Ubicación: Barranquilla
Mensajes: 568
Antigüedad: 20 años, 3 meses
Puntos: 0
session_id() siempre es el mismo

hola!!!!

he intentado implementar session_id al estilo de la pagina
http://www.rinconastur.net/php/php75.php

o mejor conocida como: memorias de un aprendiz

bueno mirando el codigo de mi pagina al estilo autentificador de cluster me pone problemas en esto:

$pag=$_SERVER['PHP_SELF'];
$propagarsidurl=session_id();
Header ("Location: $pag?$propagarsidurl");
exit;

ya que este session_id, al abrir una persona dos usuarios que este posea con el mismo explorador pues se crea el mismo session_id y no diferente, al abrir un usuario con un explorador y despues con otro diferente perfecto.

como resolver el problema???

1. he visto que al quitar estas lineas pues puedo abrir con el mismo explorador 2 usuarios y no se cambia del uno al otro usuario al hacer F5, pero si ocurre algo que al hacer f5 sale un mensaje de alerta al estilo javascript diciendo algo como: POSTDATA y le tengo que dar aceptar o cancelar, que hago para que no salga dicho mensaje???.

2. dejar estas lineas, pero mi pregunta es???, por que me muestra el mismo session_id en la URL utilizando el mismo explorador en el mismo pc????.
__________________
Solo el que se basa en conocimiento basico y cultiva el aprendizaje obtendra sabiduria
  #366 (permalink)  
Antiguo 20/10/2006, 07:57
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 11 meses
Puntos: 129
El "SID" no es sólo el "ID" de la sesión .. es el nombre+ID de sesión. Todo eso lo tienes en la constante: SID

(De hecho en el tutorial que mencionas se especifica correctamente .. !!!)

Su uso como constante que es sería por ejemplo:
Código PHP:
Header ("Location: $pag?".SID); 
SID también lo puedes obtener tipo:

Código PHP:
$sid=session_name()."=".session_id(); 
A todo esto deberías desactivar a PHP que propague el SID por cookies mínimo:
session.use_cookies = 0
session.use_only_cookies = 0

Y si no quieres propagar el SID manualemnte en todos los links y ciertos tag´s HTML .. usa.

session.use_trans_sid = 1


Sobre los otros problemas ..

1) .. Es completamente normal ese comportamiento .. no redirecionas y en consecuencia tu navevegador sigue teniendo en POST todas las variables que le pasastes (de tu formulario de login).

2) Hasta que no te asegures de NO propagar el SID en cookies (modificando tu configuración de PHP) no puedes hacer ese tipo de conjeturas.

Te recomiendo estudiar más sobre sesiones .. sobre el concepto del SID y como funcionan realmente .. talvez averigües como hacer lo que pretendes.

Por otro lado . si el soporte y funcionamiento de las sesiones de PHP no te acomodan a lo que necesitas .. NO Los uses, hay otros sistemas alternativos que complementan o mejoran las sesiones de PHP.

Por ejemplo ..

ADOdb (sesiones)
http://www.lacorona.com.mx/fortiz/ad...session-es.htm


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #367 (permalink)  
Antiguo 20/10/2006, 13:01
Avatar de Stickmaster2004  
Fecha de Ingreso: septiembre-2004
Ubicación: Barranquilla
Mensajes: 568
Antigüedad: 20 años, 3 meses
Puntos: 0
redireccionar de que forma?

bueno me he dado cuenta de que mi servidor pues manejas las cosas con cookies pues tiene habilitadas en su configuracion esta parte asi:

session.use_cookies On On
session.use_only_cookies Off Off
session.use_trans_sid 0 0

lo que me da a entender que tengo que trabajar con cookies, bueno como lo estaba trabajando antes, he decidido por obtar en omitir las lineas:

$pag=$_SERVER['PHP_SELF'];
Header ("Location: $pag?");
exit;

lo unico es que me sale ese mensaje de: POSTDATA.

me aconsejaste que redireccionara, pero de donde debo redireccionar, teniendo en cuenta que uso aut_verifica.inc.php en todos mis scripts????

supongo por una parte que es cuando en mi index.html, escribo el nombre de usuario,contraseña y contraseña de empresa, esta debe de llevar a una pagina "pasarela", es decir de lujo o intermedia y esta que redireccione automaticamente a la pagina donde se hacen todas la operaciones del sistema, es asi como me explicaste que se debe hacer???

me han servido indudablemente tus explicaciones, por que no entendia mucho del tema.
__________________
Solo el que se basa en conocimiento basico y cultiva el aprendizaje obtendra sabiduria
  #368 (permalink)  
Antiguo 20/10/2006, 13:16
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 11 meses
Puntos: 129
Esto es una redirección:

Header ("Location: $pag?");

Si lees el comentario que en el código indico es por una razón: Dejar disponible los valolres reales de las variables de sesión .. y como efecto secundario .. nos "deshacemos" de todo lo que "POST" pueda tener .. por eso no te platea problemas al recargar la página con el código original pero si lo quitas SI.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #369 (permalink)  
Antiguo 20/10/2006, 13:18
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 11 meses
Puntos: 129
Cita:
supongo por una parte que es cuando en mi index.html, escribo el nombre de usuario,contraseña y contraseña de empresa, esta debe de llevar a una pagina "pasarela", es decir de lujo o intermedia y esta que redireccione automaticamente a la pagina donde se hacen todas la operaciones del sistema, es asi como me explicaste que se debe hacer???
Esto no es necesario .. es decir esa página "pasarela". Ya te comenté que el hecho de redireccionar (a la misma página) tras el proceso de validación que toma tus variables del formulario y realiza la autentificación .. con eso sobra para solventar el problema del "Postdata" que mencionas.

El caso es tratar el tema como "peticiones" .. cada vez que pides un URL ya sea por un "header()" de tipo location, un link, una redirección en javascript .. etc .. eso se una "petición" al servidor HTTP que haces para obtener un resultado .. en estos casos, la ejecución de un script PHP el cual al ejecutarse devuelve su salida (una "página").

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #370 (permalink)  
Antiguo 21/10/2006, 09:32
Avatar de Stickmaster2004  
Fecha de Ingreso: septiembre-2004
Ubicación: Barranquilla
Mensajes: 568
Antigüedad: 20 años, 3 meses
Puntos: 0
quedan disponibles con Header ("Location: $pag?");

bueno si lo creo y ya estoy entendiendo el funcionamiento y como es el comportamiento de aut_verifica.inc.php, bien tengo entendido que la linea:
Header ("Location: $pag?"); asi quedan las variables disponibles, es decir como que las libra de ese $_POST y se pueden utilizar, esto evita que al nosotros hacer cosas como f5 salga ese mensaje de postdata, pero alli esta mi problemilla y es el siguiente:

al el hacer esto "deja las variables disponibles", al yo abrir otro usuario con el mismo explorador, comienzo a realizar mis operaciones, de pronto me devuelvo a donde esta antes con el anterior usuario, que pasa.....??, que cuando le doy f5 las variables disponibles que tiene son las del usuario mas reciente que ha entrado al sistema.

por que sucederà esto, no tengo una explicacion logica y racional para ello, si yo tuviera un sistema en donde una persona tuviera un usuario pues seria excelente, pues controla acceso por historial, boton hacia atras y entradas directamente por url, pero no logro encontrar el error, si tienes tiempo puedo darte 2 usuarios con sus respectivas contraseñas para que veas que es lo que es exactamente lo que te quiero decir.

uhyyy maestro muchas gracias he aprendido un resto en estos dias, gracias por el tiempo y por los consejos tan valiosos.
__________________
Solo el que se basa en conocimiento basico y cultiva el aprendizaje obtendra sabiduria
  #371 (permalink)  
Antiguo 21/10/2006, 22:04
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 11 meses
Puntos: 129
Yo no sé como explicartelo más .. las sesiones de PHP nativas se comportan así si tu propagas el SID en cookies, no le des mas vueltas.

No puedes decir que no le encuentras lógía a algo que no sabes como funciona 100% .. hasta yo tengo mis dudas al respecto y hago muchas "suposiciones" de pruebas y experiencias personales con el uso de sesiones desde hace bastante tiempo ya. Por ejemplo .. yo no sé "técnicamente" ni en que documento oficial de PHP indica como PHP "identifica" al cliente cuando usa sesiones en propagación del SID en cookies .. supongo que por IP domino/directorio por qué no sería el uso de sesiones en sí lo que define ese comportamiento sino el de las cookies y estas como tal tienen su respectiva "teoría" (que por mi parte tampoco me la he ido a repasar al 100%). Por ende .. la explicación lógica a este comportamiento la tienes en como PHP "identifica" al "cliente" que crea la sesión .. y en concreto como esa cookie se crea y para que "dominio" o "directorio" está activa. Cuando esto lo puedas corroborar con documentos "oficiales" .. veras más claro el tema. Yo aquí sólo hago "suposiciones" .. estaré equivocado o no .. realmente no me he interesado más en el tema (no estoy haciendo una cátedra sobre "sesiones") .. suelo interesarme de los temas según requiero y así voy profundizando.

En tu caso, tu estás en el mismo domino/directorio .. pues usas la -misma- aplicación para ingresar a tu sistema con dos usuarios diferentes usando y escribiendo sobre la misma sesión.

Este comportamiento ya te comento que es própio de PHP si propagas el SID por cookies (o más bien tendríamos que decir: "de las cookies", por qué las cookies no es un tema que defina PHP .. cookies puedes crear en otros lenguajes, son un tema independiente de por sí que forman parte del protocolo HTTP y de los navegadores), esto te lo puedo corroborar hasta poniendo de ejemplo estos mismos foros: ejemplo .. entra a forosdelweb.com sin hacer tu login .. abre otra ventana de tu navegador y entra con tu login .. luego vuelve a la página abierta de forosdelweb.com que no hicistes el login y dale a refrescar página a tu naveador (olvidadete de las "teclas .. si es F5 o no en tu navegador por muy standard que sea dicha tecla .. lo que hacemos es "refrescar" .. ). Observa lo que sucede: exactamente lo que expones .. la página que no tenía el "login" hecho y se supone que debería seguir así .. ahora lo tiene (entró a la sesión).

Ya te lo he comentado tamién: si las sesiones de PHP no te acomodan . .no le des más vueltas, no las uses, tendrás que desarrollar tu própio sistema!!!.

Mi sistema "Autentificator" se basa en los "pro's" y "contras" de las sesiones nativas que PHP usa.

Yo no sé realmente para que en tu aplicación tienes que tener a "Personas" con más de una "cuenta" en tu sistema, hasta aquí podría ser comprensible .. pero el hecho de que tengan o puedan hacer "login" en el sistema simultáneamente y en el mismo navegador es lo que no entiendo. Yo tambien manejo aplicaciones bajo sesiones donde soy "Administrador" por ejemplo pero también debo entrar en ocasiones como -otro- usuario para hacer pruebas en condicione reales, .. siempre hago lo que tenga que hacer con la sesión del que corresponda .. nunca tengo ambas sesiones abiertas (entre otras cosas por qué no corresponde).

Bueno .. en cualquier caso .. como te expongo .."Autentificator" ya no tiene nada que ver con este problema. Si tienes más dudas al respecto, inicia un nuevo tema, aquí ya has aprendido como funcionan las sesiones (o casí ..) y sabes sus "defectos" .. así que si hay alguna otra alternativa que pudieras usar .. sería cosa de tratarlo en otro tema.

Por lo demás te hice el comentario de que podrías probar el comportamiento de las sesiones propagando el SID en el URL -no en cookies- .. no sé si esto lo has podido probar realmente o si tienes la certeza de que en tus pruebas propagastes el SID realmente y 100% por el URL, pero sería una prueba más a realizar.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 21/10/2006 a las 22:09
  #372 (permalink)  
Antiguo 15/11/2006, 12:41
Avatar de annibal23  
Fecha de Ingreso: julio-2006
Ubicación: Buenos Aires - Argentina
Mensajes: 3
Antigüedad: 18 años, 5 meses
Puntos: 0
Ayuda

Hola tengo el siguiente problema, estoy usando el autentificador para mostrar una base que entre sus datos tiene una imagen
y cuando quiero transformar el binario de la bd a una imagen me da un error que ya envio los header.
El codigo es el siguiente:

Código PHP:
require("aut_verifica.inc.php"); // incluir motor de autentificación.
$nivel_acceso=5// definir nivel de acceso para esta página.
if ($nivel_acceso $_SESSION['usuario_nivel']){
header ("Location: $redir?error_login=5");
exit;
}

require (
"aut_config.inc.php"); // incluir configuracion.
$pag=$_SERVER['PHP_SELF'];  // el nombre y ruta de esta misma página.

function cabeceraHTML(){
echo <<< HTML
<html>
<head>
<title>Gesti&oacute;n de Operadores</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
 .botones {  font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 9pt; color: #FFFFFF; background-color: #0099FF; border-color: #000000 ; border-top-width: 1pix; border-right-width: 1pix; border-bottom-width: 1pix; border-left-width: 1pix}
 .imputbox {  font-size: 10pt; color: #000099; background-color: #FFFFFF; font-family: Verdana, Arial, Helvetica, sans-serif; border: 1pix #000000 solid; border-color: #000000 solid; font-weight: normal}
 A:VISITED  { font-weight: normal; color: #0000CC; TEXT-DECORATION:none; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10pt}
 A:LINK     { font-weight: normal; color: #0000CC; TEXT-DECORATION:none; font-family: Verdana, Arial, Helvetica, sans-serif; border-color: #33FF33 #66FF66; clip:  rect(   ); font-size: 10pt}
 A:ACTIVE   { font-weight: normal; color: #FF3333; TEXT-DECORATION:none; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10pt}
 A:HOVER    { font-weight: normal; color: #0000CC; font-family: Verdana, Arial, Helvetica, sans-serif; font-weight: normal; text-decoration: underline; font-size: 10pt}
body {
    background-color: #ECFE78;
}
.Estilo3 {color: #000000; font-weight: bold; }
.Estilo4 {color: #FFFFFF}
.Estilo5 {color: #FFFFFF; font-weight: bold; }
-->
</style>

</head>

<body>

HTML;
}

$db_conexionmysql_connect("$sql_host""$sql_usuario""$sql_pass") or die("No se pudo conectar a la Base de datos") or die(mysql_error());
mysql_select_db("$sql_db") or die(mysql_error());

if (!isset(
$_GET['accion'])){

$usuario_consulta mysql_query("SELECT * FROM $sql_tabla2") or die("No se pudo realizar la consulta a la Base de datos");

cabeceraHTML();
echo <<< HTML
<table width="500" border="2" align="center" cellpadding="5" cellspacing="0" bordercolor="#A8C225" bgcolor="#ECFE78">
  <!--DWLayoutTable-->
  <tr bordercolor="#017A1D" bgcolor="#017A1D">
    <td height="90" colspan="9" valign="top" bgcolor="#ECFE78"><div align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><b><font color="#FFFFFF"><a href="aut_logout.php"><img src="../logout.jpg" width="500" height="80" border="0" /></a></font></b></font></div></td>
  </tr>
  <tr bgcolor="#A8C225">
    <td width="138" bordercolor="#000000">
    <div align="center" class="Estilo3 Estilo4"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Especie</font></div>    </td>
    <td width="144" bordercolor="#000000">
    <div align="center" class="Estilo5"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Variedad</font></div>    </td>
    <td width="168" bordercolor="#000000">
    <div align="center" class="Estilo5"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Procedencia</font></div>    </td>
    <td width="149" bordercolor="#000000">
    <div align="center" class="Estilo5"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Envase</font></div>    </td>
    <td width="103" bordercolor="#000000">
    <div align="center" class="Estilo5"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">KG</font></div>    </td>
    <td width="134" bordercolor="#000000">
    <div align="center" class="Estilo5"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Calidad</font></div>    </td>
    <td width="137" bordercolor="#000000">
    <div align="center" class="Estilo5"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Tamaño</font></div>    </td>
    <td width="125" bordercolor="#000000">
    <div align="center" class="Estilo5"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Grado</font></div>    </td>
    <td width="54" bordercolor="#000000">
    <div align="center" class="Estilo5"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Datos</font></div></td>
  </tr>

HTML;

while(
$resultados mysql_fetch_array($usuario_consulta)) {

echo <<< HTML
<tr>
    <td bordercolor="#A8C225" bgcolor="#ECFE78"><div align="center"><strong><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">$resultados
[especie] $resultados[imagen]</font></strong></div></td>
    <td bordercolor="#A8C225" bgcolor="#ECFE78"><div align="center"><strong><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">$resultados
[variedad]</font></strong></div></td>
    <td bordercolor="#A8C225" bgcolor="#ECFE78"><div align="center"><strong><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">$resultados
[procedencia]</font></strong></div></td>
    <td bordercolor="#A8C225" bgcolor="#ECFE78"><div align="center"><strong><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">$resultados
[envase]</font></strong></div></td>
    <td bordercolor="#A8C225" bgcolor="#ECFE78"><div align="center"><strong><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">$resultados
[kg]</font></strong></div></td>
    <td bordercolor="#A8C225" bgcolor="#ECFE78"><div align="center"><strong><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">$resultados
[calidad]</font></strong></div></td>
    <td bordercolor="#A8C225" bgcolor="#ECFE78"><div align="center"><strong><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">$resultados
[tamano]</font></strong></div></td>
    <td bordercolor="#A8C225" bgcolor="#ECFE78"><div align="center"><strong><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">$resultados
[grado]</font></strong></div></td>
    <td bgcolor="#FFFFFF"> 
      <div align="center">
        <p><a href="$pag?accion=nivel&amp;id=$resultados
[cod_esp]"><img src="../ingreso.jpg" width="49" height="65" border="0" /></a></p>
      </div>    </td>
  </tr>
HTML;
}
echo 
"</table>
"
;
mysql_free_result($usuario_consulta);
mysql_close();


Última edición por Cluster; 15/11/2006 a las 13:21
  #373 (permalink)  
Antiguo 15/11/2006, 13:31
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 11 meses
Puntos: 129
Si el código que presentas pertenece a un mismo script .. por favor indicalo y afirmalo, por qué dá la impresión que son dos. O .. realmente no entiendo para que haces -dos- veces el:

require ("aut_config.inc.php"); // incluir configuracion

por qué en:

require("aut_verifica.inc.php");

ya se incluye (en el original por lo menos lo hace) y es necesario para ajustar las conexiones a la BBDD y nombre de la sesión que se asigna a las sesiones creadas.

Por lo demás .. dices "me dá un error" pero no reportas textualmente cual es.

Pero .. "creo" que el problema no es con el uso de Autentificator que haces . sino en como gestionas tu imagen "binaria" .. No indicas que campo contiene ese dato "binario" ni se observa tratamiento especial (como es requerida este tipo de acciones) para un campo con contenido "binario".


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #374 (permalink)  
Antiguo 17/11/2006, 12:47
Usuario baneado!
 
Fecha de Ingreso: marzo-2006
Ubicación: Cd. de México
Mensajes: 44
Antigüedad: 18 años, 8 meses
Puntos: 0
Ya corregiste el bug que descubrió sdc????
  #375 (permalink)  
Antiguo 17/11/2006, 13:20
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 18 años, 4 meses
Puntos: 70
Excelente!!!

Alguna vez lo ví y me gustó mucho, por falta de tiempo no lo he probado como debería, pero tan pronto haya un hueco, te comentaré y te diré que mas pasa. Bien por ti..., lo de la aprobación en hotscripts.

Saludos.

Pdt. Tarde que temprano te postearé sobre él.
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #376 (permalink)  
Antiguo 17/11/2006, 21:00
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 11 meses
Puntos: 129
Cita:
Iniciado por ing_amc Ver Mensaje
Ya corregiste el bug que descubrió sdc????
No he subido la nueva versión todavía .. entre otras cosas por qué me faltan algunas pruebas.

De hecho el famoso "bug" que reportaron y que por eso cerré la descarga de Autentificator hasta el momento por mi parte no he podido reproducirlo.

He probado a inyectar SQL tanto en configuraciones de "magic_quote_gpc" a ON como a OFF (sobre todo a OFF es donde más afectaría el problema) y .. que quieren que les diga .. por mi parte no he podído hacer nada ...

Yo sé que no filtro (en la versión a la fecha de Autentificator) las variables que me llegan por "POST" al realizar la validación del usuario .. tal vez la "confianza" en que PHP siempre ha estado por defecto "magic_quote_gpc" a ON y que uso en la construcción del SQL algo tipo variable='$_POST['variable']' (con comillas simples) y sumado a que por un lado obtengo el usuario y luego valido su contraseña (no todo en una misma sentencia SQL) .. realmente me hacen dudar sobre la efectividad del fallo de seguridad, pero igualmente no la descarto, sólo que por más que intento no he podido reproducir el "bug" de seguridad.

De hecho .. el script lleva publicado desde el 18/08/2002 (versión 2.x donde empecé a usar los arrays supeglobales) .. y hasta la fecha del reporte del fallo de seguridad: "Sep 02 2006" .. nunca he recibido reclamo de -nadie- sobre algún "hackeo" de sistemas autentificados con "Autentificator" .. será por qué ahora está de moda el tema de "SQL inyectión" .. (pues ese problema -siempre ha existido- para todo el que maneje datos externos y ataquen a sentencias SQL ... ), o no sé .. pero me parece "extraño" que ahora despues de tantos años (unos 4 años!) reporten el problema.

Si alguien me puede documentar un ejemplo práctico y los resultados que puede obtener con ese ejemplo le estaría agradecido.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #377 (permalink)  
Antiguo 17/11/2006, 21:04
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 11 meses
Puntos: 129
Cita:
Iniciado por Carxl Ver Mensaje
Alguna vez lo ví y me gustó mucho, por falta de tiempo no lo he probado como debería, pero tan pronto haya un hueco, te comentaré y te diré que mas pasa. Bien por ti..., lo de la aprobación en hotscripts.

Saludos.

Pdt. Tarde que temprano te postearé sobre él.
Hace tiempo que ya no está en Hotscripts .. Realmente "Hotscripts" no aprueba nada .. tu lo publicas y listo .. la validación es "automática" (o por lo menos así era antes cuando es su época lo publiqué .. ).

Es decir .. no tiene mérito alguno que esté o no en "Hotscripts.com". De hecho lo que si que veo es que cientos de otros sitios que recopilan "scripts" o código PHP en general .. toman los scripts publicados en Hotscripts para publicarlos por otros sitios (así he visto el mio "regado" por muchos otros sitios más con la misma descripción que estaba en "Hotscripts" en su momento).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #378 (permalink)  
Antiguo 22/11/2006, 14:34
 
Fecha de Ingreso: agosto-2006
Mensajes: 78
Antigüedad: 18 años, 3 meses
Puntos: 0
Acceso incorrecto utilizo un windows.open

Hola,

Aunque he leido y se que mi problema son las sessiones, utilizo el autentificator el esquema es el siguiente ;

El usuario manda por formulario el user y pass

pagina1.php

<form action="granada.php" method="post">
<p>Usuario:
<input type="text" name="user">
</p>
<p> Passwor:
<input type="password" name="pass">
<input type="submit" name="Submit" value="Entrar">
</p>
</form>
<?PHP

luego es redireccionado a granada.php

<?
// Autentificator
// Gestión de Usuarios PHP+Mysql+sesiones
// by Pedro Noves V. (Cluster)
// [email protected]
// ------------------------------------------
require("aut_verifica.inc.php");
$nivel_acceso=3;
if ($nivel_acceso = $_SESSION['usuario_nivel']){
}
else{
header ("Location: $redir?error_login=5");
exit;
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Granada ciudad</title>
<meta http-equiv="" content="text/html; charset=iso-8859-1">
<script language="JavaScript">

function abreSinNavegacion(){
open('leergranada.php?id=granada', 'principal', 'location=no,menubar=no,status=no,toolbar=no,scrol lbars= 1');
cerrar();
}

function cerrar() {
var ventana = window.self;
ventana.opener = window.self;
ventana.close();
}

</script>

Bien el error me lo indica cuando intenta abrir la pagina leergranada.php ya
Acceso incorrecto, ya que supongo tiene que ver que no lleva la session,
he probado con session_start, pero sigue indicandome acceso incorrecto.

el ?d=granada que le paso es una tabla de mysql.

Gracias por vuestra ayuda!
  #379 (permalink)  
Antiguo 22/11/2006, 14:43
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 11 meses
Puntos: 129
En este mismo mensaje (ya sé que tiene 13 páginas de resultados a la fecha) e comentado várias veces el problema ..

Se refiere a la validación que se hace contra "HTTP_REFERER"; .. ese valor no puedes obtenerlo (o no es entregado mejor dicho) en situaciones como las que describes (un window.open)

Modifica el código de aut_verifica.inc.php y quita el "IF()" y código que usa HTTP_REFERER .. deja fija $redir = al URL de tu formulario de login y listo. (o no la uses .. por qué si hay un problema en tu caso concreto en el "login" por un acceso incorrecto (o directo al scritp que levantas en tu ventana) saldrá el "login" en esa ventana .. lo cual no será muy "estético" que digamos).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #380 (permalink)  
Antiguo 24/11/2006, 05:31
 
Fecha de Ingreso: agosto-2006
Mensajes: 78
Antigüedad: 18 años, 3 meses
Puntos: 0
Cita:
Iniciado por Cluster Ver Mensaje
En este mismo mensaje (ya sé que tiene 13 páginas de resultados a la fecha) e comentado várias veces el problema ..

Se refiere a la validación que se hace contra "HTTP_REFERER"; .. ese valor no puedes obtenerlo (o no es entregado mejor dicho) en situaciones como las que describes (un window.open)

Modifica el código de aut_verifica.inc.php y quita el "IF()" y código que usa HTTP_REFERER .. deja fija $redir = al URL de tu formulario de login y listo. (o no la uses .. por qué si hay un problema en tu caso concreto en el "login" por un acceso incorrecto (o directo al scritp que levantas en tu ventana) saldrá el "login" en esa ventana .. lo cual no será muy "estético" que digamos).

Un saludo,
Hola Cluster,

Aunque en el $redir no puedo poner el formulario de login, ya que ;

Hay 2 paginas de login ;

01.php
02.php

Las dos una vez se logea el usuario van a parar a una pagina diferente y esta abre una pagina igual para las dos lee.php, lo pongo el esquema para que se entienda mejor.

01.php (usuario se logea) -> granada.php -> lee.php
02.php (usuario se logea) -> sevilla.php -> lee.php

Tengo que decir que me funciona pues he dejado el $redir en otra pagina donde no hay el formulario de login, ya que si lee.php da un error al no pasarle la variable de la pagina que viene, no se si viene de 01.php o 02.php
pero me funciona, no me preguntes porque, tambien he quitado el if() supongo que por eso funciona ya que no controla que venga del formulario.

gracias por la ayuda!
  #381 (permalink)  
Antiguo 24/11/2006, 10:12
 
Fecha de Ingreso: noviembre-2006
Mensajes: 4
Antigüedad: 18 años, 1 mes
Puntos: 0
Disculpa pero no puedo descargar el autentificador porque dice que la descarga esta temporamente desactivado no se si podrian mandarlo a mi correo web es [email protected] muchas gracias
  #382 (permalink)  
Antiguo 01/12/2006, 05:08
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 11 meses
Puntos: 129
Cita:
Iniciado por royer84 Ver Mensaje
Disculpa pero no puedo descargar el autentificador porque dice que la descarga esta temporamente desactivado no se si podrian mandarlo a mi correo web es [email protected] muchas gracias
La descarga está desactivada por lo mismo que en el mismo mensaje indico, hay un bug sobre "SQL injection" que todavía no he actualizado pues estoy haciendo otras modificaciones.

De todas formas si quieren ir "parcheando" la versión que usen actualmente de Autentificator sólo deben aplicar la función mysql_real_escape_string() a toda variable externa ($_POST).

Basicamente el problema afecta a configuraciones de PHP con magic_quote_gpc a OFF (por defecto y en la mayoría de casos PHP está configurado a ON).

www.php.net/mysql_real_escape_string

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #383 (permalink)  
Antiguo 01/12/2006, 07:41
 
Fecha de Ingreso: noviembre-2006
Mensajes: 102
Antigüedad: 18 años
Puntos: 0
Warning: Cannot modify header information - headers already sent by (output started at /www/docs/miweb.com/public_html/at_panel/aut_verifica.inc.php:155) in /www/docs/myweb.com/public_html/at_panel/aut_gestion_usuarios.php on line 204


me da este error, pero sólo al editar el nivel de usuario o borrar uno, el resto me va de marvillas, gracias cluster, esperamos la nueva descarga con ansias.
  #384 (permalink)  
Antiguo 01/12/2006, 11:41
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 11 meses
Puntos: 129
Cita:
Iniciado por miczoe Ver Mensaje
Warning: Cannot modify header information - headers already sent by (output started at /www/docs/miweb.com/public_html/at_panel/aut_verifica.inc.php:155) in /www/docs/myweb.com/public_html/at_panel/aut_gestion_usuarios.php on line 204


me da este error, pero sólo al editar el nivel de usuario o borrar uno, el resto me va de marvillas, gracias cluster, esperamos la nueva descarga con ansias.
No sé si la línea "155" corresponderá a ?> o alguna línea fuera del código PHP (de <? .. ?>) .. en cualquier caso revisa que no tengas espacios o saltos de línea despues del último ?> en: aut_verifica.inc.php

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #385 (permalink)  
Antiguo 04/12/2006, 06:32
 
Fecha de Ingreso: noviembre-2006
Mensajes: 102
Antigüedad: 18 años
Puntos: 0
Si tal cual cambié ese archivo y funciona perfecto, gracias cluster, ahora me surge otra duda:

en cada página que quiero restingir el ingreso pongo esto:
Código PHP:
<?php
require("aut_verifica.inc.php"); // incluir motor de autentificación.
if ($_SESSION['usuario_nivel'] == 3){
header ("Location: index.php?error_login=5");
exit;
}

// etc tu script/página ...
?>

asi que lo puse asi: y va bien
Código PHP:
<?php
if ($_SESSION['usuario_nivel'] > 1){

?>
pero puedo ingresar igual como usuario nivel 1 y 2 di modifico sólo esto y lo cambio por 1 no ingreso.
Código PHP:
if ($_SESSION['usuario_nivel'] == 3){ 
que puede ser, solo problema de operadores?

Última edición por miczoe; 04/12/2006 a las 06:40
  #386 (permalink)  
Antiguo 04/12/2006, 16:14
Avatar de manu_el_3  
Fecha de Ingreso: febrero-2006
Ubicación: La Paz - Bolivia
Mensajes: 31
Antigüedad: 18 años, 10 meses
Puntos: 0
respecto a rentringir

Cita:
Iniciado por miczoe Ver Mensaje
Si tal cual cambié ese archivo y funciona perfecto, gracias cluster, ahora me surge otra duda:

en cada página que quiero restingir el ingreso pongo esto:
Código PHP:
<?php
require("aut_verifica.inc.php"); // incluir motor de autentificación.
if ($_SESSION['usuario_nivel'] == 3){
header ("Location: index.php?error_login=5");
exit;
}

// etc tu script/página ...
?>

asi que lo puse asi: y va bien
Código PHP:
<?php
if ($_SESSION['usuario_nivel'] > 1){

?>
pero puedo ingresar igual como usuario nivel 1 y 2 di modifico sólo esto y lo cambio por 1 no ingreso.
Código PHP:
if ($_SESSION['usuario_nivel'] == 3){ 
que puede ser, solo problema de operadores?
gracias, todo va super bien con el autentificador, tengo la version 201, lo que pasa es que cuando restrinjo las paginas:

require ("aut_verifica.inc.php");
$nivel_acceso=0;
if ($nivel_acceso > $_SESSION['usuario_nivel']){

header ("Location: $redir?error_login=5");
exit;
}

me muetra la misma pagina y ningun mensaje de error, ya probe aumentando errores pero nada, que estoy haceindo mal?

gracias, atte.

Manuel.
__________________
Atte. Manuel. [email protected]
!!! viva el ireport 1.1.0 !!!
(perdón, es que soy muy nostálgico.)
  #387 (permalink)  
Antiguo 04/12/2006, 16:21
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 11 meses
Puntos: 129
Cita:
Iniciado por miczoe Ver Mensaje
Si tal cual cambié ese archivo y funciona perfecto, gracias cluster, ahora me surge otra duda:

en cada página que quiero restingir el ingreso pongo esto:
Código PHP:
<?php
require("aut_verifica.inc.php"); // incluir motor de autentificación.
if ($_SESSION['usuario_nivel'] == 3){
header ("Location: index.php?error_login=5");
exit;
}

// etc tu script/página ...
?>

asi que lo puse asi: y va bien
Código PHP:
<?php
if ($_SESSION['usuario_nivel'] > 1){

?>
pero puedo ingresar igual como usuario nivel 1 y 2 di modifico sólo esto y lo cambio por 1 no ingreso.
Código PHP:
if ($_SESSION['usuario_nivel'] == 3){ 
que puede ser, solo problema de operadores?
Pero .. segúro que incluyes "aut_verifica.inc.php" como en los ejemplos se describe?

En ese archivo se inicia el uso de sesiones (session_start()), si no está .. en $_SESSION no tendrás el valor real de tus variables de sesión.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #388 (permalink)  
Antiguo 04/12/2006, 16:25
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 11 meses
Puntos: 129
Cita:
Iniciado por manu_el_3 Ver Mensaje
gracias, todo va super bien con el autentificador, tengo la version 201, lo que pasa es que cuando restrinjo las paginas:

require ("aut_verifica.inc.php");
$nivel_acceso=0;
if ($nivel_acceso > $_SESSION['usuario_nivel']){

header ("Location: $redir?error_login=5");
exit;
}

me muetra la misma pagina y ningun mensaje de error, ya probe aumentando errores pero nada, que estoy haceindo mal?

gracias, atte.

Manuel.
Verifica el valor de tus variables de sesión:

Código PHP:
print_r($_SESSION); 
Tienes que ver los valores esperados para el usuario autentificador.

También cambia el código original de Autentificator, donde veas <? .. usa <?php (esto es otro de los cambios que quiero implementar).

Para estas pruebas, .. quita el "header()" por el momento que redirecciona y muestra ahí algún dato (echo "algo";) para verificar que tu condición se cumple (if) ...

Y usalo tipo:
Código PHP:
if ($_SESSION['usuario_nivel'] > $nivel_acceso){ 

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #389 (permalink)  
Antiguo 05/12/2006, 08:15
 
Fecha de Ingreso: noviembre-2006
Mensajes: 102
Antigüedad: 18 años
Puntos: 0
mmmm me dejas una duda yo uso esto para restringir.

Código PHP:
<?php
require("aut_verifica.inc.php"); // incluir motor de autentificación.
if ($_SESSION['usuario_nivel'] > 1){
header ("Location: index.php?error_login=5");
exit;
}

// etc tu script/página ...
?>

está bien?
  #390 (permalink)  
Antiguo 05/12/2006, 14:30
(Desactivado)
 
Fecha de Ingreso: enero-2004
Mensajes: 19
Antigüedad: 20 años, 11 meses
Puntos: 0
Descarga

No puedo descargarlo del web de Cluster, dice que la descarga esta desactivada temporalmente, alguien tiene el zip ?

gracias.
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.
Tema Cerrado

SíEste tema le ha gustado a 10 personas




La zona horaria es GMT -6. Ahora son las 12:36.