Comunidad de diseño web y desarrollo en internet online

Ayuda con sesiones en HTACCES y como destruirlas!!!!!

Citar            
MensajeEscrito el 18 May 2009 11:21 pm
Hola a Todos: que pena los erroes pero soy nuevo aqui aunque ya he publicado un tema todavia no me acostumbro....

Necesito ayuda con lo siguiente:
Se me ha pedido el favor que cree una especie de intranet para un colegio, ya saben solamente publicar notas y las personas que faltaron a clase, bueno en fin... ya tengo esa parte lista, aunque hasta ahora soy un "DISEÑADOR PRIMIPARO" lo cierto es que como el colegio no poseia muchos recursos me idee la forma de hacer un login de usuarios con HTACCES ya saben esa ventanita que se abre autiomaticamente(y asi al colegio no le salia tan caro$$$$)..... ahora el problema es que al salir del navegador o cerrar la pagina y luego volver a entrar a ver las notas ya no me pide el user ni el password.(esta es la primera vez que utilizo lo de HTACCES)
he escuchado y visto en algunos foros como cerrar o destruir sesiones con algo asi como

Código :

sesion.destroy()
o algo asi, pero creo que esto es solo para sesiones con php y mysql (me parece no estoy seguro) ......alguien me puede ayudar con esto o alguien sabe si lo de sesion.detroy() me sirve???, si es asi les agradezco inmensamente desde COLOMBIA, GrAcIaS GrAcIaS GrAcIaS GrAcIaSGrAcIaS GrAcIaS GrAcIaS :D

Por oscarsuarez27

15 de clabLevel



 

msie8
Citar            
MensajeEscrito el 19 May 2009 07:36 pm
brother creo q es bastante dificil pero no imposible lo q sucede es q el htacces no crea una sesion el lo hace por validacion http entonces cuando se realiza la primera entrada quedan guardados los datos en cache lo mejor seria un login con php saludos

Por talcual

686 de clabLevel



 

Colombia

firefox
Citar            
MensajeEscrito el 21 May 2009 10:46 pm
Talcual: gracias por tu respuesta, justo en estos momentos estoy trabajando en un login con php(claro que dreamweaver me ha echo casi todo, solo es crear el formulario y elegir el asitente), ahora queria saber si alguien sabe una forma de que despues de que el login haya logueado al usuario, dependiendo el usuario se redirija a x pagina, me explico si se logueo fulanito de tal , pues que se redirija a fulanitodetal.php o que si pepito perez se logueo pues se redirija a pepitoperez.php y que fulanito de tal solo tego acceso a su pagina y que pepito perez solo tega acceso a su pagina por ej: si pepito perez es muy inteligente he ingresa la url de fulanitodetal.php pues que no pueda ingresar a fulanitodetal.php, algo asi como (USTED NO TIENE AUTORIZACION PARA VER ESTA PAGINA WEB).

alguien me puede ayudar???


DESDE BOYACA, COLOMBIA LES DIGO ANTICIPADAMENTE GRACIAS

Por oscarsuarez27

15 de clabLevel



 

msie8
Citar            
MensajeEscrito el 22 May 2009 01:33 am
bueno compa lo q debes de hacer es que despues de haber verificado que tu usuario existe en la base de datos debras generar una sesion para ese usuario y redirigirlo a la pagina que vas a usar por medio de un header("location:pagina.php") y en pagina.php colocar un comprobador a ver si la sesion existe si esta existe dejar pasasar sino salir de la web saludos desde Arenosa , Quilla Town o Siemplemente Mi Linda Barranquilla

Por talcual

686 de clabLevel



 

Colombia

firefox
Citar            
MensajeEscrito el 24 May 2009 02:56 am
Hola Tal Cual, Gracias por tu Ayuda....

Desde login.php dreamweaver (UTILIZO DREAMWEAVER CS4) me genera automaticamente este codigo:

Código :

<?php require_once('../Connections/iesd.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  if (PHP_VERSION < 6) {
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }

  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}
?>
<?php
// *** Validate request to login to this site.
if (!isset($_SESSION)) {
  session_start();
}

$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($_GET['accesscheck'])) {
  $_SESSION['PrevUrl'] = $_GET['accesscheck'];
}

if (isset($_POST['username'])) {
  $loginUsername=$_POST['username'];
  $password=$_POST['contrasena'];
  $MM_fldUserAuthorization = "";
  $MM_redirectLoginSuccess = "../index-login-si.php";
  $MM_redirectLoginFailed = "../error-login.php";
  $MM_redirecttoReferrer = false;
  mysql_select_db($database_iesd, $iesd);
  
  $LoginRS__query=sprintf("SELECT username, password FROM users WHERE username=%s AND password=%s",
    GetSQLValueString($loginUsername, "int"), GetSQLValueString($password, "text")); 
   
  $LoginRS = mysql_query($LoginRS__query, $iesd) or die(mysql_error());
  $loginFoundUser = mysql_num_rows($LoginRS);
  if ($loginFoundUser) {
     $loginStrGroup = "";
    
    //declare two session variables and assign them
    $_SESSION['MM_Username'] = $loginUsername;
    $_SESSION['MM_UserGroup'] = $loginStrGroup;         

    if (isset($_SESSION['PrevUrl']) && false) {
      $MM_redirectLoginSuccess = $_SESSION['PrevUrl'];   
    }
    header("Location: " . $MM_redirectLoginSuccess );
  }
  else {
    header("Location: ". $MM_redirectLoginFailed );
  }
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
<style type="text/css">
<!--
body {
   background-image: url(../backgroundbluelight.gif);
}
-->
</style></head>

<body>
<div align="center">
  <table width="340" border="1">
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td colspan="2"><form id="login" name="login" method="POST" action="<?php echo $loginFormAction; ?>">
        <div align="center">
          <table width="200" border="1">
            <tr>
              <td>Nombre de Usuario</td>
              <td><input type="text" name="username" id="username" /></td>
            </tr>
            <tr>
              <td>Contraseña</td>
              <td><input type="password" name="contrasena" id="contrasena" /></td>
            </tr>
            <tr>
              <td colspan="2"> <div align="center">
<input type="submit" name="button" id="button" value="Enviar" />
              </div></td>
              </tr>
          </table>
        </div>
      </form></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
  </table>
</div>
</body>
</html>

Ahora necesito saber si alguien sabe en que parte se dicta el nombre de la sesion(en el codigo); y necesito lo que TALCUAL decia, lo del comprobador de si la sesion esta iniciada o si no se ha iniciado la sesion; que codigo debo usar???
si alguien sabe le agradezco desde ya
SALUDOS DESDE BOYACÁ

Por oscarsuarez27

15 de clabLevel



 

msie8
Citar            
MensajeEscrito el 24 May 2009 06:53 am
en esta parte es donde se le asigna un valor a la sesion

$_SESSION['MM_Username'] = $loginUsername;
$_SESSION['MM_UserGroup'] = $loginStrGroup;

despues puedes hacer una confirmacion con el session_registered espero me entiendas

Por talcual

686 de clabLevel



 

Colombia

firefox
Citar            
MensajeEscrito el 24 May 2009 06:35 pm
ok por fin entendi bien el codigo, gracias TALCUAL, ahora el problema que tengo es que no se que codigo utilizar para hacer la confirmacion en el index-login-si.php....
me pueden ayudar????
dsde ya GRACIAS

Por oscarsuarez27

15 de clabLevel



 

msie8
Citar            
MensajeEscrito el 25 May 2009 02:54 am
Hola de nuevo:
que pena ya estoy solucionando mi problema, he hecho ciertos cambios en el codigo que dreamwevaer cs4 me genera aca les dejo el codigo con mis arreglos:

Código :

<?php require_once('Connections/iesd.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  if (PHP_VERSION < 6) {
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }

  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}
?>
<?php
// *** Validate request to login to this site.
if (!isset($_SESSION)) {
  session_start();
}

$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($_GET['accesscheck'])) {
  $_SESSION['jardin08001223'] = $_GET['accesscheck'];
}

if (isset($_POST['username'])) {
  $loginUsername=$_POST['username'];
  $password=$_POST['password'];
  $MM_fldUserAuthorization = "";
  $MM_redirectLoginSuccess = "preescolar/jardin/ana alfonso/index-08001223.php";
  $MM_redirectLoginFailed = "preescolar/cuenta-bloqueada.php";
  $MM_redirecttoReferrer = false;
  mysql_select_db($database_iesd, $iesd);
  
  $LoginRS__query=sprintf("SELECT username, password FROM users WHERE username=%s AND password=%s",
    GetSQLValueString($loginUsername, "int"), GetSQLValueString($password, "text")); 
   
  $LoginRS = mysql_query($LoginRS__query, $iesd) or die(mysql_error());
  $loginFoundUser = mysql_num_rows($LoginRS);
  if ($loginFoundUser) {
     $loginStrGroup = "";
    
    //declare two session variables and assign them
    $_SESSION['username08001223'] = $loginUsername;
    $_SESSION['MM_UserGroup'] = $loginStrGroup;         

    if (isset($_SESSION['jardin08001223']) && false) {
      $MM_redirectLoginSuccess = $_SESSION['jardin08001223'];   
    }
    header("Location: " . $MM_redirectLoginSuccess );
  }
  else {
    header("Location: ". $MM_redirectLoginFailed );
  }
}
?>

y ahora para comprobar en:(preescolar/jardin/ana alfonso/index-08001223.php) que el usuario esta logueado en preescolar/jardin/ana alfonso/index-08001223.php anexé este codigo:

Código :

<?php
include "seguridad.php";
?>

y ahora este es el codigo de de seguridad.php:

Código :

<?php 
//inicio la sesion
session_start();
//compruebo que el usuario esta autenticado
if($SESSION[jardin08001223]){
   
}
else{
   //si el usuario no esta autenticado redirigir a login.php
   header("Location: login.php");
}
?>

y para salir añado un lik que dice SALIR que lleva a salir.php este es el codigo de salir.php:

Código :

<?php
session_start();
$_SESSION = array();
session_destroy();
?>
<html>
<head>
<title>titulo</title>
</head>
<body>
Ahora se ha cerrado la sesion.
<br>
<br>
<a href="login.php">Autenticar usuario</a>
</body>

he subido todo esto al servidor pero en:(preescolar/jardin/ana alfonso/index-08001223.php) me vota estos errores:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/iesdeduc/public_html/calificaciones/preescolar/jardin/ana alfonso/index-08001223.php:1) in /home/iesdeduc/public_html/calificaciones/preescolar/jardin/ana alfonso/seguridad.php on line 3

Warning: Cannot modify header information - headers already sent by (output started at /home/iesdeduc/public_html/calificaciones/preescolar/jardin/ana alfonso/index-08001223.php:1) in /home/iesdeduc/public_html/calificaciones/preescolar/jardin/ana alfonso/seguridad.php on line 10

Ademas el salir.php tampoco funciona pero ahy no bota ningun error...

Ayudenme por favor, me estoy muriendo del estres...

desde ya GRACIAS....

Por oscarsuarez27

15 de clabLevel



 

msie8
Citar            
MensajeEscrito el 25 May 2009 05:47 am
para realizar la verificacion puedes usar session_registered para saber si la sesion esta registrada si esta esta registrada significa que el usuario inicio sesion si no es entonces porq no lo ha echo y deberia mandarte a la web de el login

Por talcual

686 de clabLevel



 

Colombia

firefox
Citar            
MensajeEscrito el 27 May 2009 12:33 am
Hola TALCUAL:

pues te cuento elabore el siguiente codigo:

Código :

<?php 
//compruebo que el usuario esta autenticado
if(session_registered){
   
}
else{
   //si el usuario no esta autenticado redirigir a login.php
   header("Location: login.php");
}
?>
pero no me funciona me deja entra a la pagina siempre asi haya o no inicado sesion.

en la pagina a la cual quiero resgtrigir el acceso he colocado

Código :

<?php
include "seguridad.php";
?>
y seguridad.php es el codigo de arriba.

Tal cual me puedes colaborar POR FAVOR SIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII



Gracias

Por oscarsuarez27

15 de clabLevel



 

msie7
Citar            
MensajeEscrito el 27 May 2009 02:44 am
mira seria algo como esto :

Código :

<?php
session_start();
   if ( session_is_registered("nombre_de_la_sesion") ){
    echo'Aqui puedes colocar el include a el archivo de configuracion';
   }else{
    //Seguridad
     echo'Aqui lo q haces es devolver en caso de que no se halla registrado esa sesion ';
     exit();
   }
?>


espero que te sirva el codigo saludos desde Quilla

Por talcual

686 de clabLevel



 

Colombia

firefox
Citar            
MensajeEscrito el 27 May 2009 08:27 pm
ok TALCUAL gracias.

en la parte de "echo'aqui puedes coocar el archivo ........' " no se que poner, que pena contigo tanta molestia pero no se, en la parte de "aqui puedes colcar el include a el archivo de configuracion" ¿que coloco, el codigo html de lo que quiero mostrar o una especie de link hacia el archivo que quiero mostrar si se ha iniciado la sesion, pero entonces no falta el inteligente que se aprende la url y entra directo....?tu que dices, me puedes ayudar...
DESDE YA TE LO AGRADESCO, y si necesitas alguna ayuda en FLASH no dudes en decirme ya que de flash si soy casi un experto CASI

Por oscarsuarez27

15 de clabLevel



 

msie7
Citar            
MensajeEscrito el 06 Jun 2009 12:23 am
Pues les Cuento que ya solucione el problema, gracias tal cual x la ayuda..............

efectivamente en el echo de aya arriba coloque el html

pero siempre me mostraba error

así que utilicé al asistente de dreamweaver........

y me sirvió aunque me muestra un error algo de session_start cant not set cache limiter o algo asi, pero igual ahí medio sirve


Si alguien necesita el codigo solamente pidanlo...........

Por oscarsuarez27

15 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.