<div dir="ltr">Leo, <div><br></div><div>Solo en el index.php asigno los valores, después en ningún otro script:</div><div><br></div><div><div>$_SESSION['email']=$row['email'];</div><div>$_SESSION['pass']=$row['pass'];</div></div><div><br></div><div>y ningún script redirige a index.php, solo la funcion de chequeo, si el logueo falla, pero destruye la sesión antes de dirigirla, así que no sé...</div><div><br></div><div>Si no lo logro solucionar mañana, voy a tratar de ir 10 minutos antes de que empiece la clase.</div><div>Si llego a ver algo más, vuelvo a escribir.</div><div><br></div><div>¡Gracias Leo!</div><div>¡Saludos!</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">El 13 de octubre de 2015, 7:44 p. m., Leonardo Tadei - Pegasus Tech Supply<span dir="ltr"><<a href="mailto:leonardot@pegasusnet.com.ar" target="_blank">leonardot@pegasusnet.com.ar</a>></span> escribió:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hola Carolina,<br>
<br>
en tu código no se ve nada raro...<br>
<br>
Hacé una búsqueda en todos los archivos buscando $_SESSION['email'] y<br>
buscá en dónde aparece en el lado izquierdo de una asignación.<br>
<br>
Te estás pasando algo por alto: por ejemplo, en ninguna parte del<br>
código que enviás se ve en dónde toman valor $_SESSION['email'] y<br>
$_SESSION['pass'], que es en dónde es probable que esté el error.<br>
<br>
Los valores de sesión no se cambian solos...<br>
<br>
Saludos!<br>
<br>
<br>
PD: mañana miércoles tenemos clase de 18 a 22hs. Podés ir un rato antes<br>
o en la pausa y lo vemos sobre el código...<br>
<div><div class="h5"><br>
<br>
<br>
El mar, 13-10-2015 a las 19:31 -0300, Silverzero escribió:<br>
> Hola,<br>
><br>
><br>
> Gracias por las respuestas.<br>
><br>
><br>
> >>>>>>>>> Sebastian:<br>
><br>
><br>
> la tabla tiene id incremental.<br>
><br>
><br>
> >>>>>>>>> Leo:<br>
><br>
><br>
> En index.php (donde uno se loguea) el formulario tiene:<br>
><br>
><br>
> <input name="email" type="email"><br>
><br>
> <input name="pass" type="password"><br>
><br>
><br>
> y una vez que valida crea las variables de sesión $_SESSION['email']<br>
> y $_SESSION['pass']<br>
><br>
><br>
> ========================================================<br>
> Luego en cada script se incluye una función de chequeo de login:<br>
><br>
><br>
><br>
><br>
> /***** funciones.php *****/<br>
><br>
><br>
> //el servidor tiene una versión que no soporta mysqli<br>
><br>
><br>
> function usr_exists($e, $p, $link){<br>
><br>
> $sql="SELECT * FROM usr WHERE email='$e' AND pass='$p';";<br>
> $result=mysql_query($sql,$link)or die(mysql_error());<br>
> $cant=mysql_num_rows($result);<br>
><br>
> return($cant==1)?TRUE:FALSE;<br>
><br>
> }<br>
><br>
><br>
><br>
><br>
> Que la invoco debajo de ésta, al comienzo de cada script:<br>
><br>
><br>
> /***** check.php *****/<br>
><br>
><br>
><br>
> session_start();<br>
><br>
> if (usr_exists($_SESSION['email'], $_SESSION['pass'], $link) == FALSE)<br>
> {<br>
> session_destroy();<br>
> header("Location:index.php")<br>
><br>
> }<br>
><br>
><br>
> ==========================================================<br>
> En el script donde doy de alta una persona el formulario tiene, entre<br>
> otros campos, los de email y contraseña. Estos campos NO tiene los<br>
> mismos nombres que en index.php.<br>
><br>
><br>
> <input type="email" name="email_usr" value="<?=$email?>"><br>
><br>
> <input type="password" name="pass_usr" value="<?=$pass?>"><br>
><br>
><br>
><br>
> El action del formulario apunta al mismo script, o sea action=""<br>
><br>
><br>
> Entonces cuando se envía por POST lo que tiene el script resumidamente<br>
> es:<br>
><br>
><br>
> include ("funciones.php");<br>
> include ("check.php");<br>
><br>
><br>
> if (isset($_POST['enviar'])){<br>
><br>
><br>
><br>
> $email = $_POST['email_usr'];<br>
> $pass = $_POST['pass_usr'];<br>
><br>
><br>
> //chequeo si no es un email existente y si no es inserto en la DB<br>
><br>
><br>
> $sql="INSERT INTO usr SET email='$email', pass='$pass';";<br>
> $result=mysql_query($sql,$link)or die(mysql_error());<br>
><br>
><br>
> if ($result){<br>
> $_SESSION['output'] = "El telemarketer se ha agregado exitosamente.";<br>
> header ('Location: telemarketers.php');<br>
> }<br>
><br>
><br>
> ============================================================<br>
><br>
><br>
> En telemarketers.php se muestra el listado de los que hay dados de<br>
> alta y ahi tengo un print_r($_SESSION) que me muestra que las<br>
> $_SESSION['email'] y $_SESSION['pass'] son reemplazadas por las que<br>
> acabo de dar de alta. Obviamente, no me cierra la sesión porque a<br>
> pesar que no es mi logueo, sigue siendo un logueo valido.<br>
><br>
><br>
> En este script tengo resumidamente:<br>
><br>
><br>
> include ("funciones.php");<br>
> include ("check.php");<br>
><br>
><br>
> print_r ($_SESSION);<br>
><br>
><br>
><br>
><br>
><br>
> if (isset($_SESSION['output'])){<br>
><br>
><br>
> print $_SESSION['output'];<br>
> unset ($_SESSION['output']);<br>
> }<br>
><br>
><br>
> Y luego una llamada a la DB para listar los telemarketers.<br>
><br>
><br>
> ==========================================================<br>
><br>
><br>
> Espero que se entienda.<br>
> ¡Muchas gracias!<br>
><br>
><br>
><br>
> El 13 de octubre de 2015, 5:45 p. m., Leonardo Tadei - Pegasus Tech<br>
> Supply<<a href="mailto:leonardot@pegasusnet.com.ar">leonardot@pegasusnet.com.ar</a>> escribió:<br>
> Hola Carolina,<br>
><br>
> El mar, 13-10-2015 a las 15:35 -0300, Silverzero escribió:<br>
> > Hola,<br>
> ><br>
> ><br>
> > Sé que esto es una consulta fuera del curso actual, pero<br>
> quería ver si<br>
> > alguien me puede dar una pista porque no encuentro las<br>
> palabras clave<br>
> > justas para que google me encuentre la respuesta que busco.<br>
><br>
> La idea de la lista es usarla. Las preguntas de los<br>
> egresados son muy<br>
> enriquecedoras, porque suelen ser de situaciones reales.<br>
><br>
> > Tengo un sistema donde me logueo y una vez dentro, entre<br>
> otras cosas,<br>
> > puedo dar de alta nuevas personas para que se puedan loguear<br>
> como yo.<br>
> ><br>
> ><br>
> > El tema es que cuando la doy de alta con email y contraseña,<br>
> me<br>
> > sobreescribe mis variables de sesión con esos datos. El<br>
> script sólo<br>
> > inserta los datos en la DB, no hace nada con variables<br>
> sesion, y los<br>
> > inputs del formulario tiene otros nombres diferentes a las<br>
> variables<br>
> > de sesion. ¿A alguien le pasó algo parecido? ¡No sé qué se<br>
> me está<br>
> > pasando por alto!<br>
><br>
> Sin ver el código es difícil diagnosticar, pero es de<br>
> suponer que al<br>
> principio de cada script estás incluyendo el código que valida<br>
> al<br>
> usuario o a la sesión.<br>
> Este código debería tener una lógica tal que, si el<br>
> usuario está<br>
> ingresando, lo loguea tomando los los datos de los INPUTs, y<br>
> sino lo<br>
> valida contra los datos de la sesión (más o menos como vimos<br>
> en el<br>
> curso)<br>
> Entonces, si al dar de alta un usuario nuevo los INPUT<br>
> se llaman igual<br>
> que los de la pantalla de login, y si la evaluación de los<br>
> input se<br>
> ejecuta primero que la sesión, lo que te está pasando es que<br>
> para el<br>
> script de auntentificación los datos de alta de un usuario<br>
> pasan por un<br>
> nuevo login, con lo que se te actualizan las variables de<br>
> sesión y<br>
> quedás logueada como el usuario recién creado.<br>
><br>
> Si esto es así, bastarían con que los nombres de los<br>
> INPUT de los<br>
> usuarios nuevos sean distintos de los de la pantalla de inicio<br>
> de<br>
> sesión...<br>
><br>
> > Lo que noto es que el navegador me rellena automáticamente<br>
> los campos<br>
> > de email y contraseña con los míos de sesion, sospecho que<br>
> puede venir<br>
> > por ahí...¿puede ser que el navegador me los cambie<br>
> asumiendo que<br>
> > estoy cambiando los datos de mi propio logueo a pesar de que<br>
> los<br>
> > inputs tengan nombres diferentes a las variables de sesion?<br>
> ¿Será por<br>
> > el input type email / password? Probé en varios navegadores<br>
> y en todos<br>
> > sucede lo mismo.<br>
><br>
> No, no puede ser.<br>
> El navegador completa datos guardados automáticamente<br>
> si son del mismo<br>
> dominio y se llaman igual que los guardados.<br>
> Pero que el navegador los complete no implica que se<br>
> envíen y además es<br>
> imposible para el navegador cambiar datos de una sesión si no<br>
> envía<br>
> datos.<br>
><br>
><br>
> > ¡Saludos!<br>
> > ¡Gracias!<br>
><br>
><br>
> Por nada.<br>
> Después contanos!<br>
><br>
> --<br>
> Leonardo Tadei<br>
> <a href="mailto:leonardot@pegasusnet.com.ar">leonardot@pegasusnet.com.ar</a><br>
> Web: <a href="http://leonardo.tadei.com.ar" rel="noreferrer" target="_blank">http://leonardo.tadei.com.ar</a><br>
> Firma pública:<br>
> <a href="http://www.pegasusnet.com.ar/LeonardoTadei-public.key" rel="noreferrer" target="_blank">http://www.pegasusnet.com.ar/LeonardoTadei-public.key</a><br>
><br>
> _______________________________________________<br>
> Lista de correo: Php-avanzado<br>
> Mensajes a la lista: <a href="mailto:Php-avanzado@pato2.fi.mdp.edu.ar">Php-avanzado@pato2.fi.mdp.edu.ar</a><br>
> Administración Web:<br>
> <a href="http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado" rel="noreferrer" target="_blank">http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado</a><br>
> Desubscripción:<br>
> <a href="http://php-avanzado-request@pato2.fi.mdp.edu.ar?subject=unsubscribe" rel="noreferrer" target="_blank">php-avanzado-request@pato2.fi.mdp.edu.ar?subject=unsubscribe</a><br>
><br>
><br>
><br>
><br>
><br>
> --<br>
> Carolina<br>
> _______________________________________________<br>
> Lista de correo: Php-avanzado<br>
> Mensajes a la lista: <a href="mailto:Php-avanzado@pato2.fi.mdp.edu.ar">Php-avanzado@pato2.fi.mdp.edu.ar</a><br>
> Administración Web: <a href="http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado" rel="noreferrer" target="_blank">http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado</a><br>
> Desubscripción: <a href="http://php-avanzado-request@pato2.fi.mdp.edu.ar?subject=unsubscribe" rel="noreferrer" target="_blank">php-avanzado-request@pato2.fi.mdp.edu.ar?subject=unsubscribe</a><br>
<br>
--<br>
<br>
</div></div>Leonardo Tadei<br>
<a href="mailto:leonardot@pegasusnet.com.ar">leonardot@pegasusnet.com.ar</a><br>
Pegasus Tech Supply<br>
Tel: (+54)(+223) 471-2880<br>
La Salle 1131 - Mar del Plata - Argentina<br>
<a href="http://www.pegasusnet.com.ar" rel="noreferrer" target="_blank">http://www.pegasusnet.com.ar</a><br>
<a href="http://www.grupopegasus.com" rel="noreferrer" target="_blank">http://www.grupopegasus.com</a><br>
<div class="HOEnZb"><div class="h5">Firma pública: <a href="http://www.pegasusnet.com.ar/LeonardoTadei-public.key" rel="noreferrer" target="_blank">http://www.pegasusnet.com.ar/LeonardoTadei-public.key</a><br>
<br>
_______________________________________________<br>
Lista de correo: Php-avanzado<br>
Mensajes a la lista: <a href="mailto:Php-avanzado@pato2.fi.mdp.edu.ar">Php-avanzado@pato2.fi.mdp.edu.ar</a><br>
Administración Web: <a href="http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado" rel="noreferrer" target="_blank">http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado</a><br>
Desubscripción: <a href="http://php-avanzado-request@pato2.fi.mdp.edu.ar?subject=unsubscribe" rel="noreferrer" target="_blank">php-avanzado-request@pato2.fi.mdp.edu.ar?subject=unsubscribe</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">Carolina</div>
</div>