Foros del Web » Programando para Internet » PHP »

Ayuda Sesiones Php

Estas en el tema de Ayuda Sesiones Php en el foro de PHP en Foros del Web. Hola!! Estoy trabajando en un proyecto en php y estoy utilizando los siguientes scripts para validar usuarios creados en la BD y de esta manera ...
  #1 (permalink)  
Antiguo 06/01/2004, 17:14
 
Fecha de Ingreso: enero-2004
Ubicación: Colombia
Mensajes: 80
Antigüedad: 20 años, 3 meses
Puntos: 0
Pregunta Ayuda Sesiones Php

Hola!!
Estoy trabajando en un proyecto en php y estoy utilizando los siguientes scripts para validar usuarios creados en la BD y de esta manera hacer segura la aplicación. Los usuarios se validan sin problema pero la palicacion no es segura, puedo abrir desde el navegador cualqueir pagina y no valida la seguridad. ¿ me podrián ayudar con esto?
Estos son los scripts que estoy utilizando:
index.php (Formulario devalidación de los usuarios)
<?include("snsec.php");?>
<html>
<td width="10%">
<div align="left"><font color="#000000"><b><font face="Geneva, Arial, Helvetica, san-serif" size="2" color="#333399">
<head>
<title>Boton desactibado</title>
<script language="JavaScript">
//(c) 1999-2001 Zone Web
function click() {
if (event.button==2) {
alert ('Este boton esta desabilitado.')
}
}
document.onmousedown=click
//-->
</script>
<title>Sistema Notificador </title>
</head>
<body>
<? include ("date.php"); ?>
<br>
<br>
<div align="center"><img src="escol.jpeg" width=80 height=70 border=0></div>
<div align="center"><b><h1>Sistema Notificador</h1></b></div>
<div align="center"><b><h4>Area Privada</h4></b></div>
<br>
<hr>
<div align="center">
<form action="control.php" method="POST">
<table aling="center" width="225" cellspadding="4" border="0">
<tr>
<td colspan="2" aling="center">
<?if($_GET["errorusuario"]=="SI"){
?>
<div align="center"><font color="#FB0000"><b>
<h3>Datos Incorrectos!!!</h3>
</b></font></div>
<?}else{?><bgcolor=#FB0000>
<?}?>
</td>
</tr>
<tr>
<div id="Layer1" style="position:absolute; left:229px; top:207px; width:302px; height:121px; z-index:1; background-color: #CCCCCC; layer-background-color: #CCCCCC; border: 1px none #000000">
<td aling="rigth"><font color="#CCCCCC"><font color="#000000"><b><font face="Geneva, Arial, Helvetica, san-serif" size="3" color="#333399">Usuario:</font></td>

<font color="#CCCCCC"></font></font>
<font color="#CCCCCC"></b></font>
<td>
<input type="Text" name="user_name" size="16" maxlength="50">
</td>
</tr>
<tr>
<td aling="rigth"><font color="#CCCCCC"><font color="#000000"><b><font face="Geneva, Arial, Helvetica, san-serif" size="3" color="#333399">Contraseña:</font></td>
<td><font color="#CCCCCC">
<input type="password" name="pws" size="16" maxlength="50">
</font></td>
<font color="#CCCCCC"></font></font></b>
</tr></font></b></font></div>
<tr>
<td colspan="2" aling="center">
<div align="center">
<input type="Submit" value="Entrar">
</div>
</td>
</div>
</tr>
</table>
</form>
</div>
<hr>
</body>
</font></b></font></div>
</html>

snsec.php (Modulo de Seguridad)
<?
//script de capa de seguridad
//Este archivo se encarga de dotar seguridad a toda la aplicación de acceso restringido
session_start();
//Inicio la Sesión
if($_SESSION["autenticado"!="SI"]){
// Comprueba que el usuario este autenticado
header("location:index.php");
//si el usuario no esta autenticado, se envia de nuevo a la pagina de validación
exit();
// Se cierra este script
}
?>

control.php (Modulo que conecta la BD y valida a los usuarios)
<? include("snsec.php");?>
<?
//conecto con la base de datos
$conn = mysql_connect("localhost","xx","xx");
//selecciono la BBDD
mysql_select_db("sndb",$conn);

//Sentencia SQL para buscar un usuario con esos datos
$ssql = "SELECT * FROM usuarios WHERE user_name='$user_name' and pws='$pws'";

//Ejecuto la sentencia
$rs = mysql_query($ssql,$conn);

//vemos si el usuario y contraseña es váildo
//si la ejecución de la sentencia SQL nos da algún resultado
//es que si que existe esa conbinación usuario/contraseña
if (mysql_num_rows($rs)!=0){
//usuario y contraseña válidos
//defino una sesion y guardo datos
session_start();
session_register("autenticado");
$autenticado = "SI";
header ("Location:menuppal.php");
}else {
//si no existe le mando otra vez a la portada
header("Location:index.php?errorusuario=SI");
}
mysql_free_result($rs);
mysql_close($conn);
?>
Les agradezco la ayuda que me puedan prestar.
Annt40
  #2 (permalink)  
Antiguo 06/01/2004, 17:20
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 22 años, 8 meses
Puntos: 9
porq no usas primero session_register() y despues session_start(); tienes mas a la mano los atributos y lo usarás mejor.
  #3 (permalink)  
Antiguo 06/01/2004, 18:38
 
Fecha de Ingreso: noviembre-2003
Mensajes: 52
Antigüedad: 20 años, 5 meses
Puntos: 0
tenes un error de sintaxis en

if($_SESSION["autenticado"!="SI"]){


esto es asi

if($_SESSION["autenticado"]!="SI"){

  #4 (permalink)  
Antiguo 07/01/2004, 06:35
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
lado2mx .. Hay que ponerse al dia y usar los arrays superglobales $_SESSION o minimo $HTTP_SESSION_VARS por tu seguridad de tus scripts y compatibilidad de configuraciones de "register_globals" (php.ini) (a partir de PHP 4.1.0 en adelante para $_SESSION o 4.0.6 para $HTTP_SESSION_VARS).

Un saludo,

PD: .. $_SESSION o $HTTP_SESSION_VARS no son "novedades" de PHP que ya llevan más de año y medio o más habilitadas.
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 08/01/2004, 11:23
 
Fecha de Ingreso: enero-2004
Ubicación: Colombia
Mensajes: 80
Antigüedad: 20 años, 3 meses
Puntos: 0
Hola de nuevo. Relaize el cambio en la sintaxis como me recomendaron de : if($_session["autenticado"!="SI"]){
a
if($_session["autenticado"]!="SI"){
pero ahora tengo un nuevo problema no autentica los usuarios, es decir el formulario no ejecuta ninguna tarea.
Por favor ayudenme con esto
  #6 (permalink)  
Antiguo 08/01/2004, 11:45
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
No puedes ir mezclando $_SESSION con session_register() ..

Código PHP:
session_start();
session_register("autenticado");
$autenticado "SI"
usa:

Código PHP:
session_start();
$_SESSION['autenticado']="SI"
Y a todo esto necesitas una versión de PHP superior a 4.1.0 (si vas a usar los arrays superglobales $_SESSION etc).

(usa $_SESSION preferentemente (en mayusculas)...)

Otro detallito ..

Código PHP:
if($_SESSION["autenticado"!="SI"]){
// Comprueba que el usuario este autenticado
header("location: index.php"); // <- ojo con el espacio para el location: index.php ...
//si el usuario no esta autenticado, se envia de nuevo a la pagina de validación
exit();
// Se cierra este script

Tambien recuerda que .. por la forma que tienes de uso de sesiones, debes usar la configuración de php (ver phpinfo() o php.ini)

session.use_trans_sid=1
session.use_cookies =1

Y un navegador que acepte cookeis .. ya que tu en tu código no propagas el SID de forma manual y "dejas" a PHP que lo haga el.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 07:45.