PHP y PEAR
Hola a todos, tengo dudas usando php con pear. Para eso realice lo que dice el manual de pear una forma de autenticar usuarios. El codigo es el siguiente:
<?
require_once("PEAR.php");
require_once("DB.php");
require_once("DB/mysql.php");
require_once("Auth/Auth.php");
$params = array(
"dsn" => "mysqli://root:admin@localhost/prueba",
"table" => "usuario",
"username" => "username",
"password" => "password"
);
$a = new Auth("DB", $params );
$a->start();
if ($a->getAuth()) {
if($_GET[act] == "logout") {
// Log user out
$a->logout();
echo "You have been logged out!<br />n";
echo "<a href="$PHP_SELF?act=login">Login</a><br />n";
} else {
printf("Welcome user <b>%s</b>!<br />n", $a->getUsername() );
echo "<a href="$PHP_SELF?act=logout">Logout</a><br />n";
}
} else {
echo "<center>No estas autenticado.<br />n";
}
?>
pero el detalle es que despues de estar logueado y luego deslogueado se puede regresar al estado logueado retornando con el boton hacia atras del browser y eso es un problema grave en el codigo. Como se podria mejorar el codigo ya que no se usa las variables S_SESSION usando pear?
Gracias por las respuestas que me puedan dar.
<?
require_once("PEAR.php");
require_once("DB.php");
require_once("DB/mysql.php");
require_once("Auth/Auth.php");
$params = array(
"dsn" => "mysqli://root:admin@localhost/prueba",
"table" => "usuario",
"username" => "username",
"password" => "password"
);
$a = new Auth("DB", $params );
$a->start();
if ($a->getAuth()) {
if($_GET[act] == "logout") {
// Log user out
$a->logout();
echo "You have been logged out!<br />n";
echo "<a href="$PHP_SELF?act=login">Login</a><br />n";
} else {
printf("Welcome user <b>%s</b>!<br />n", $a->getUsername() );
echo "<a href="$PHP_SELF?act=logout">Logout</a><br />n";
}
} else {
echo "<center>No estas autenticado.<br />n";
}
?>
pero el detalle es que despues de estar logueado y luego deslogueado se puede regresar al estado logueado retornando con el boton hacia atras del browser y eso es un problema grave en el codigo. Como se podria mejorar el codigo ya que no se usa las variables S_SESSION usando pear?
Gracias por las respuestas que me puedan dar.
Yo tengo un ejemplo bastante parecido al tuyo pero en mi caso no puedo iniciar sesion por que siempre me dice Wrong Login Data. No se que hacer, sera que me puedes ayudar
<?php
/**
* Prueba de PEAR + Auth
*
* Marconi 19/05/2006
* @version $Id$
* @copyright 2006
*/
require_once 'libPEAR.php';
require_once 'libDB.php';
require_once 'libDBmysql.php';
require_once 'libAuth.php';
$parametros = array(
"dns" => "mysql://root:test@localhost/test",
"table" => "usuario",
"usernamecol" => "login",
"passwordcol" => "passwd"
);
$a = new Auth("DB", $parametros);
$a->start();
if ($a->getAuth()) {
if ($_GET[act]=="logout") {
$a->logout();
echo "Has salido de la sesion";
echo "<a href="$PHP_SELF?act=login">Login</a><br />n";
}
else {
printf ("Welcome User <b>%s</b>",$a->getUsername());
echo "<a href="$PHP_SELF?act=logout">Logout</a><br />n";
}
}
else {
echo "No esta autentificado<br>";
echo "Intente con pp/pp o karen/karen";
}
?>
<?php
/**
* Prueba de PEAR + Auth
*
* Marconi 19/05/2006
* @version $Id$
* @copyright 2006
*/
require_once 'libPEAR.php';
require_once 'libDB.php';
require_once 'libDBmysql.php';
require_once 'libAuth.php';
$parametros = array(
"dns" => "mysql://root:test@localhost/test",
"table" => "usuario",
"usernamecol" => "login",
"passwordcol" => "passwd"
);
$a = new Auth("DB", $parametros);
$a->start();
if ($a->getAuth()) {
if ($_GET[act]=="logout") {
$a->logout();
echo "Has salido de la sesion";
echo "<a href="$PHP_SELF?act=login">Login</a><br />n";
}
else {
printf ("Welcome User <b>%s</b>",$a->getUsername());
echo "<a href="$PHP_SELF?act=logout">Logout</a><br />n";
}
}
else {
echo "No esta autentificado<br>";
echo "Intente con pp/pp o karen/karen";
}
?>
