Avatar Image
Usuario habitual
Usuario habitual

Teno un gran problema, llego a establecer mis sessiones con session, este es mi archivo de comprobacion:


<?php
session_name('pd');
session_start();
session_register('login');
session_register('masterlogin');
session_register('codigo');
session_register('name');

$user=$HTTP_POST_VARS['user'];
$pass=$HTTP_POST_VARS['pass'];

if ($user==null AND $pass==null){header("location: login.php&quot;
}else{
session_name('pd');
session_start ();
include("cone.php&quot;
$tabla="usuarios";
$query = mysql_query ("SELECT codigo FROM $tabla WHERE codigo='$user' AND clave='$pass'", $conexion);
if (mysql_num_rows($query)==1) {
session_register ('login');
session_register ('codigo');
$_SESSION['login']=true;
$_SESSION['codigo']=$user;
header("location: presentacion.php&quot;
}else{
$tabla="admin";
$query = mysql_query ("SELECT codigo FROM $tabla WHERE nombre='$user' AND pass='$pass'", $conexion);
if (mysql_num_rows($query)==1) {
session_register ('masterlogin');
session_register ('name');
$_SESSION['masterlogin']=true;
$_SESSION['name']=$user;
header("location: presentacion.php&quot;
}else{ header("location: error.php&quot;}
}} ?>


y bueno me funciona y todo cuando entro solo, pero cuando entran 2 personas o mas se me malogra todo, parece q se mezclan los datos y la gente puede entrar a esta pagina sin estar logeado:


<?php

session_name('pd');
session_start();
session_register('login');
session_register('codigo');

if ($_SESSION['login']==true AND isset($_SESSION['codigo'])){
include("cone.php&quot;
$tabla="usuarios";
$codigo=$_SESSION['codigo'];
$query = mysql_query ("SELECT codigo,nombre,apepat,nota1,nota2,nota3,nota4 FROM $tabla WHERE codigo='$codigo'", $conexion);
$user = mysql_fetch_array($query);
$tabla_mod="modapren"; ?>


Se suponia q estaba restringido para q no entraran si no estubiesen logeados, pero nada igual uingresan, alguien me ayuda porfas, no tengo mucha experiencia en sessiones, o creen q tengo q pasar toda la session id en la url para mayor seguridad o alguna alternativa, porfas?

Avatar Image
@man / @woman
@man / @woman

Pon el archivo de login, donde te pide nombre de usuario y contraseña.

Avatar Image
Usuario habitual
Usuario habitual

pues este e smi arhivo de login, con el no tengo problema, ya q llego a logear y todo:

<?php
session_name('pd');
session_start();
session_register('login');
session_register('masterlogin');
session_register('codigo');
session_register('name');
session_destroy()
?>
<table width="212" border="0" cellspacing="1" height="133">
<tr>
<td valign="top">
<form action="comprobar.php" method="post">
Código:<br>
<input type="text" name="user" size="13" maxlength="12">
<br>
Contraseña:<br>
<input type="password" name="pass" solid" size="12" maxlength="8">
<br>
<br>
<input type="submit" value="Entrar" >
</form>
</td>
</tr>
</table>

Como vez al comienzo destruyo la sesion porq aun no ahgo el boton de logout y este a aparte de login cumple la funcion de logout a la vez

Avatar Image
@man / @woman
@man / @woman

Yo le modificaría un poco para probar... y me cargaría todo el código php... esto es porque session_start te lo pone automáticamente, el pid de la sesión idem.... porque session_destroy te puede dar la lata, ya que es para acabar con ella... y porque en otra web tengo el login sin nada de php y parece que funciona.

Avatar Image
Usuario habitual
Usuario habitual

umm....como q modificaria? tons quitaria todo el php del login, eso dices???

Pero debe habr algo mas de eso, porq el problema es q ponte yo hago login aca en mi maquina, y le di la direa un amigo a una pagina q para entrar se supione debes ahcer primero login y pudo entrar normal, o ponte entre con un codigo 20040002 y al ver sus datos me da los datos del 20040001, no se porq, no llego a hallar el error, debe estar en el archivo de comprobacion, pero si no estoy mal lo hago bien, porq recojo la variable:

$user=$HTTP_POST_VARS['user'];
session_register ('masterlogin');
session_register ('name');
$_SESSION['masterlogin']=true;
$_SESSION['name']=$user;

Pero se filtran...no se porq no me respeta eso, o tengo q poner una variable distinta para cada usuario, no creo....

Avatar Image
@man / @woman
@man / @woman

Pues no lo se... de sesiones no ando muy bien aún...

En el sistema que yo tengo, en el login no hay nada de php. Después va a un php para comprobar el usuario.

Después para comprobar si en una página se puede entrar o no, sería con mirar la sesion y hacer un if si esta registrado que entre y sino lo esta que no, pero creo que lo que haces es después del if un header a una página y si va a mano se saltaría la validación... es decir que la validación tiene que estar en la misma página que quieras proteger.

Avatar Image
Usuario habitual
Usuario habitual

a ver te explico, lo que hago con el login es comprobar si el usuario existe y si la contraseña es la uqe tengo en la base de datos. el header al comienzo lo hago por si el usuario o la contraseña estan en blanco q regrese a la misma pagina del login.
Luego hay dos pasos, primero verfica si es un usario comun y registra la varible login como true y el codigo del usuario, si no es un usuario verifica si es el administrador y en ese caso registra las variables masterlogin true (para diferenciar) y codigo como algo sin importancia, para terminar si no esta en ninguna de las 2 tablas de la bd (porq los usuarios y el admin estan en tablas distintas) redirecciona a una pagina que da error.

Con eso en las paginas q se necesita haberse logeado al comienzo de la pagina tengo esto:

if ($_SESSION['login']==true AND isset($_SESSION['codigo'])){

en caso de ser usuario comun, y:

if ($_SESSION['masterlogin']==true AND isset($_SESSION['name'])){

en caso de ser administrador.

ATENCIÓN: Este tema no tiene actividad desde hace más de 6 MESES,
te recomendamos abrir un nuevo tema en lugar de responder al actual
Opciones:
Ir al subforo:
Permisos:
TU NO PUEDES Escribir nuevos temas
TU NO PUEDES Responder a los temas
TU NO PUEDES Editar tus propios mensajes
TU NO PUEDES Borrar tus propios mensajes
Temas similares
TemaUsuariosRespuestasVisitasActividad
Por: , el 25/Feb/2005, 16:19
jaduvar Bodyfire1892Feb/05
Por: , el 11/Jun/2004, 02:20
rykyMeroMero El_pAnDiT12kJun/04