De hecho, no pude entender por qué usamos "$ _SESSION ['authuser'] = 1;" en código php, mi código es el siguiente

<?php
session_start();
$_SESSION['username'] = $_POST['user'];
$_SESSION['userpass'] = $_POST['pass'];
$_SESSION['authuser'] = 1;
//Check username and password information

if(($_SESSION['username'] == 'joe') and
($_SESSION['userpass'] == '123')) {
$_SESSION['authuser'] = 1;
} 
else 
{
echo 'Sorry, but you don\'t have permission to view this page!';
exit();
}

?>
-4
user6864832 14 dic. 2016 a las 23:00

2 respuestas

La mejor respuesta

Porque el soporte de sesión (y cookies) lo necesita por muchas razones.

Es decir, de lo contrario, sería necesario que usted (y sus visitantes) ingresen el nombre de usuario y la contraseña cada vez que haga CLIC en cualquier enlace de su página.

    <?php
    session_start();
    $_SESSION['username'] = $_POST['user'];
    $_SESSION['userpass'] = $_POST['pass'];
    $_SESSION['authuser'] = 0; // user is not authenticated (just a GUEST), default is 0...


// if visitor is priviledged, show him in, let him see the page

    if(($_SESSION['username'] == 'joe') and
    ($_SESSION['userpass'] == '123')) {
    $_SESSION['authuser'] = 1;  // insert 1 into DB and set cookie as 1 for user not to enter username and pswd anymore during browsing
    } 
    else 
    {
//else, keep guest away from a page
    echo 'Sorry, but you don\'t have permission to view this page!';
    exit(); // shut down 
    }

    ?>
0
Joe May 14 dic. 2016 a las 20:31

En su caso, el uso de SESSION para el nombre de usuario y el userpass parece ser redundante. Esto podría ser posible.

<?php
session_start();
/*Do not set sessions for username and userpass, only use them in the POST array
 *Initialize authuser to 0 because by default a user is not logged in
 */
$_SESSION['authuser'] = 0;
//Check username and password information
if(($_POST['user'] == 'joe') and
  ($_POST['pass'] == '123')) { //Check the user and set it as authenticated
    $_SESSION['authuser'] = 1;
} else { //If the user is not valid, stop execution
    echo 'Sorry, but you don\'t have permission to view this page!';
    exit();
}
?>

Lo que estoy haciendo aquí es:

  • Sesión de inicio
  • Inicializar al usuario como no autenticado (esto es opcional)
  • Comprobando nombre de usuario y contraseña
    • Si son válidos, configurar el usuario como autenticado
    • De lo contrario, detener la ejecución.

Tenga en cuenta que podría ser útil establecer una sesión para el nombre de usuario y la contraseña una vez que el usuario esté autenticado, en lugar de recordar solo que el usuario está conectado.

0
AnthonyB 14 dic. 2016 a las 20:20