Foros del Web » Programando para Internet » PHP »

Validar inicio de sesion php

Estas en el tema de Validar inicio de sesion php en el foro de PHP en Foros del Web. tengo estos archivo index.php Código HTML: <form action= "validar.php" method= "post" name= "form" > <center> <table border= "0" > <tr> <td> Usuario: </td> <td> <input ...
  #1 (permalink)  
Antiguo 28/01/2011, 10:54
 
Fecha de Ingreso: agosto-2009
Mensajes: 30
Antigüedad: 14 años, 7 meses
Puntos: 0
Pregunta Validar inicio de sesion php

tengo estos archivo
index.php
Código HTML:
<form action="validar.php" method="post" name="form">
<center>
<table border="0">
<tr>
	<td>
	Usuario:
	</td>
    <td>
<input name="login" type="text" id="login" />
	</td>
</tr>
<tr>
	<td>
	Clave:
	</td>
	<td>
<input name="password" type="password" id="password" />
	</td>
</tr>
<tr>
	<td>
	<input type="submit" value="Enviar" />
	</td>
	<td>
	<input type="reset" value="Borrar" />
	</td>
</tr>
</table>
</center>
</form> 
validar.php
Código PHP:
<?php
if ($_REQUEST['login']!="" and $_REQUEST['password']!="")
{
// Abro base de datos
$tabla "usuarios";
require(
'conectarse.php');
$link=conectarse();
$consulta "select activo from $tabla where login='$_REQUEST[login]' and password='$_REQUEST[password]'";
$resultado=mysql_query($consulta,$link);
$numregistros=mysql_numrows($resultado);
     if(
$numregistros!=0)
    {
        
$_REQUEST['activo']=mysql_result($resultado,$i,'activo');
        if (
$_REQUEST['activo']=='1')
        {
            echo 
"Es un usuario Administrativo.";
            
?>&nbsp;&nbsp;&nbsp;
             <A href='menuadmin.php'>Continuar</a>
             <?php
        
}
        else
        {
        echo 
"Usuario ingreso correctamente.";
           
?>
           &nbsp;&nbsp;&nbsp;
             <A href='comentario.php'>Continuar</a>
          
         <?php
        
}
    }
    else
    {
        echo 
"Login o password incorrectos.";
        echo 
"&nbsp;&nbsp;<a href='index.php'>Intentar de Nuevo";
    }
}
else
   {
        echo 
"Login o password incorrectos.";
        echo 
"&nbsp;&nbsp;<a href='index.php'>Intentar de Nuevo";
    }
 
?>
y un comentario.php que es solo un formulario que guarda todo en una BD...
El problema que tengo es que cuando yo ingreso directamente a comentario.php sin iniciar sesion me carga el formulario y me deja enviar un mensaje,
Como hago para que cuando yo ingrese directamente a comentario.php me pida haber iniciado sesion?
Gracias!!
  #2 (permalink)  
Antiguo 28/01/2011, 10:59
 
Fecha de Ingreso: enero-2011
Ubicación: 127.0.0.1
Mensajes: 53
Antigüedad: 13 años, 3 meses
Puntos: 3
Respuesta: Validar inicio de sesion php

Hola

Valida tu archivo comentario.php con sesiones, es decir debes crear una variable de sesión cuando alguien ingrese y en comentario.php ver si existe una variable de sesión en caso de que si le muestras el contenido y sino lo mandas al inicio de sesión
  #3 (permalink)  
Antiguo 28/01/2011, 11:01
Avatar de Artificium  
Fecha de Ingreso: enero-2011
Mensajes: 492
Antigüedad: 13 años, 3 meses
Puntos: 81
Respuesta: Validar inicio de sesion php

Pues debes leer sobre maneja de sesiones en PHP, pero aquí te explico algo. OK, en cada archivo que quieras restringir con la sesión debes colocar antes de imprimir cualquier cosa esto:

session_start();

Bien, debes jugar con variables de sesión, de esta manera:

$_SESSION["sesion"];

Eso es una variable superglobal en la que puedes guardar las variables de sesión. Si inicias sesión debes asignarle un valor a esa variable, se suele poner el id del usuario logueado. Bien, si esa variable tiene un valor mayor que cero o diferente de vacío entonces la sesión está activa. Ahi tienes tu respuesta. En comentarios.php debes poner al principio algo así:

Código PHP:
<?php 
 
if ($_SESSION['sesion'] > 0) {  // SI los ids de los usuarios son números
?>
<!-- Aquí vendría todo el contenido de la página -->
<?php
 
}
?>
Esa es la manera. Espero que te sirva.

Etiquetas: inicio
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 11:22.