Autor Tema: como evitar que usuarios que no inician sesion vean el contenido de la pagina?  (Leído 6501 veces)

0 Usuarios y 3 Visitantes están viendo este tema.

Desconectado .::SaWLeR::.

  • Sv Full Member
  • *
  • Mensajes: 734
hola amigos soy nuevo en el ambito de php y estoy haciendo un login y ya hice coneccion a base de datos ya ingresa cabal y todo pero auque no inicie sesion puedo ver el contenido de las paginas y quiero cambiar ese asunto para que solo usuarios logeados pueda ver ese contenido!


gracias!  :phew:

Desconectado ezrichard01

  • The Communiter-
  • *
  • Mensajes: 1493
Estas usando un administrador de contenido?
Tarde o temprano, la disciplina vencerá a la inteligencia.

Desconectado el-mago

  • The Communiter-
  • *
  • Mensajes: 2040
Lo que hiciste es un login, efectivamente, pero es una simple comparación entre los datos almacenados y los datos que ingresa el usuario, tenes que crear la sesion ademas de eso...

Leete esto:
http://www.webestilo.com/php/php12a.phtml
Te explica bien.
Y tambien podes ver este:
http://www.desarrolloweb.com/articulos/321.php

Paquete WebHosting + Dominio desde US$35.00/año cPanel || Consulta sin compromiso!

Desconectado .::SaWLeR::.

  • Sv Full Member
  • *
  • Mensajes: 734
gracias brother ahorita me lo leo y comento luego haber que ondas!  :)

Desconectado .::SaWLeR::.

  • Sv Full Member
  • *
  • Mensajes: 734
alguien que sabe de php que me diga en que puede estar erroneo este codigo! ayuda por favor  :sorry:


Código: [Seleccionar]
<?php
if(!$_POST["usuario"]!=""){


$usuario=$_POST["usuario"];
$password=$_POST["password"];
$sql="SELECT usuario,password,tipo FROM registro.formulario WHERE usuario='".$usuario."';";
$query=mysql_query($sql,@$con);

if(
mysql_num_rows($query)>0){
@
$usubdd=mysql_result($query,0,"usuario");
$passbdd=mysql_result($query,0,"password");
$tipo=mysql_result($query,0,"tipo");
}else{

$msg="datos no coinciden ";
}

if(@
$usubdd == $usuario && $passbdd == md5($password)){
$_SESSION["ok"]=1;
$_SESSION["user"]=$usubdd;
$_SESSION["tipo"]=$tipo;


@
header("Location:form.php");
exit;

}else{
$msg="no se pudo iniciar session ";
}
}else{


$msg="";
}

print 
$msg
?>


no me efectua ninguna de las intrucciones!

ken2

  • Visitante
if(!$_POST["usuario"]!="")

! $_POST ????????

No me parece lógico.

El ! es un operador de negación, si tienes True adentro te lo pone False.

! (True) = False

! (False) = True

! (Hombria) = Imposible.

Desconectado .::SaWLeR::.

  • Sv Full Member
  • *
  • Mensajes: 734
if(!$_POST["usuario"]!="")

! $_POST ????????

No me parece lógico.

El ! es un operador de negación, si tienes True adentro te lo pone False.

! (True) = False

! (False) = True

! (Hombria) = Imposible.

o si man es una @ la que tiene que ir alli, ya reparando eso me dice no se pudo iniciar session que es lo que deje en else ahora bien donde estara el error? ayuda por favor!  :-/

ken2

  • Visitante
Seria:

if($_POST["usuario"] != ""){

Desconectado .::SaWLeR::.

  • Sv Full Member
  • *
  • Mensajes: 734
no man no es ese el error aun quitando la @ me sigue diciendo que no se puede iniciar sesion!  :wacko:

ken2

  • Visitante
No se que deseas hacer aqui:

@$usubdd=mysql_result($query,0,"usuario");

Pero eso no es correcto, si deseas extraer la columna usuario tienes que usar
mysql_fetch_array()

Desconectado adolira

  • Sv Member
  • ***
  • Mensajes: 440
para q no pueda ver el contenido sin logearse primero en la pagina que queres q no la vea hace esto al principio de la pagina

<?php
session_start();
if ($_SESSION['validar']==false){
echo ' <script type="text/javascript">
window.location="login.php";
</script> ';

}
?>

veo q usas la variable ok  $_SESSION["ok"]=1;  y que con eso queres confirmar q si se inicio sesion, eso ponelo al principio de cada pagina para verificar q si inicio sesion
« Última Modificación: junio 19, 2011, 04:47:23 pm por adolira »
<a href="http://profile.mygamercard.net/eternal258">
<img src="http://card.mygamercard.net/community/360style/eternal258.png" border=0>
</a>

Desconectado hkadejo

  • Global Moderator
  • The Communiter-
  • *
  • Mensajes: 3345
Prueba asi y decime si te funciona:

Código: [Seleccionar]

<?php
if($_POST["usuario"]!=""){
$usuario=$_POST["usuario"];
$password=$_POST["password"];
$sql="SELECT usuario,password,tipo FROM registro.formulario WHERE usuario='".$usuario."';";
$query=mysql_query($sql,$con);

if(
mysql_num_rows($query)>0){
$row mysql_fetch_row($query);
$usubdd=$row[0];
$passbdd=$row[1];
$tipo=$row[2];
}else{
$msg="datos no coinciden ";
}

if(
$usubdd == $usuario && $passbdd == md5($password)){
$_SESSION["ok"]=1;
$_SESSION["user"]=$usubdd;
$_SESSION["tipo"]=$tipo;


@
header("Location:form.php");
exit;

}else{
$msg="no se pudo iniciar session ";
}
}else{


$msg="";
}

print 
$msg
?>



Desconectado moyo18

  • The Communiter-
  • *
  • Mensajes: 1719
pa empezar tu codigo asi es vulnerable a sql injection...

ahora lo q podrias hacer es una session o simplemente una cookie pero si es cookie tiene q encriptar y hacer comparaciones para q no sea spoofing igual con sessions.

creo q lo q t pone hkdejo t servira

prueba

Código: [Seleccionar]
if(isset($_POST["usuario")) {

 tu codifo aki

}

Desconectado hkadejo

  • Global Moderator
  • The Communiter-
  • *
  • Mensajes: 3345
pa empezar tu codigo asi es vulnerable a sql injection...

ahora lo q podrias hacer es una session o simplemente una cookie pero si es cookie tiene q encriptar y hacer comparaciones para q no sea spoofing igual con sessions.


No pues en eso tenes razón, pero me imagino que se trata de alguna tarea para la universidad así que no creí necesario hacerle esas observaciones. Primero que le funcione el código ya después que se preocupe por optimizarlo y asegurarlo como se debe.

Desconectado moyo18

  • The Communiter-
  • *
  • Mensajes: 1719
No pues en eso tenes razón, pero me imagino que se trata de alguna tarea para la universidad así que no creí necesario hacerle esas observaciones. Primero que le funcione el código ya después que se preocupe por optimizarlo y asegurarlo como se debe.

bueno si es cierto lo q dices.

pero seria bueno q desd la escuela vallan formando el habito d poner seguridad a las apps web.

pero cada kien con lo suyo y en las clases todos modos todo se pasa con solo q sirva.