Crear un PHP simple inicio de sesión de las sesiones y varios usuarios

Estoy en busca de una respuesta a cómo crear un $_SESSION de inicio de sesión.

El resultado que obtengo cada vez es Dexter. Incluso cuando me basta con pulsar el botón de inicio de sesión. Estoy usando sesiones, y no MySQL u otra base de datos. Estoy solo en el principio de aprender PHP y he mirado por aquí y utiliza google pero no puedo relacionar se que estoy haciendo mal.

La página de inicio de sesión se parece a esto:

        <?php 
        session_start();
        $_SESSION['usernamne1'] = "Dexter"; 
        $_SESSION['usernamne2'] = "River";
        $_SESSION['usernamne3'] = "Miro";

        $_SESSION['password1'] = "meow1";
        $_SESSION['password2'] = "meow2";
        $_SESSION['password3'] = "meow3";
        ?>
<?php //Header  include fil
$page_title = 'Login'; //Dynamic titel 
include('includes/header.html');
?> 
<?php 
echo "<h3>Login!</h3>";
echo "<br />";
?>

<form method="post" Action="sida7logged.php">

<fieldset><legend>Fyll i dina användaruppgifter</legend>

<p><label>Username: <br />
<input name="usernamne" type="text"></label></p>
<p><label>Password: <br />
<input name="password" type="password"></label></p>

<input type="Submit" value="Login">
    </fieldset>
    </form> 


<?php //Footer include file 
include('includes/footer.html');
?>

Y cuando haya iniciado sesión en:

    <?php 
$page_title = 'Logged in'; //Dynamisc title 
include('includes/header.html');
?> 
<?php 
session_start();

if($_SESSION['usernamne1']==true || ($_POST['username']=="Dexter" 
&& ($_SESSION['password1']==true || $_POST['password']="meow1"))) {
$_SESSION['usernamne1']=true;
echo "Hello Dexter";
}

elseif($_SESSION['usernamne2']==true || ($_POST['username']=="River" 
&& ($_SESSION['password2']==true || $_POST['password']="meow2"))) {
$_SESSION['usernamne2']=true;
echo "Hello River";
}

elseif($_SESSION['usernamne3']==true || ($_POST['username']=="Miro" 
&& ($_SESSION['password3']==true || $_POST['password']="meow3"))) {
$_SESSION['usernamne1']=true;
echo "Hello Miro";
}

else {
echo "Please login";
}
?>

<?php //Footer include file 
include('includes/footer.html');
?>
  • ¿Por qué está poniendo a los usuarios en el período de sesiones en el principio de su código? Es obvio por qué ya ha iniciado sesión con el primer nombre de usuario…
  • debe establecer la sesión después de loggedin
  • $_SESSION[‘usernamne1’]==true true si el valor es cualquier cosa verdadera-y, lo que básicamente significa que cuando se asigna una cadena que no está vacío, ‘0’ o «\0» es el valor de la verdad-y, por lo tanto el mal partido y registro en cuando no debería ser así. SIEMPRE use === cuando los tipos se van a claro(y aunque no es claro que es una buena práctica, de todos modos).
  • Como mejor práctica, el uso de isset($_SESSION['key']) en lugar de $_SESSION['key']==true o $_SESSION['key']===true.
InformationsquelleAutor DexterTheCat | 2014-05-13

1 Kommentar

  1. 1

    Usted tiene una mejor ejemplo aquí: Fácil script de inicio de sesión sin base de datos

    <?php
    session_start();
    
    $userinfo = array(
                    'user1'=>'password1',
                    'user2'=>'password2'
                    );
    
    if(isset($_GET['logout'])) {
        $_SESSION['username'] = '';
        header('Location:  ' . $_SERVER['PHP_SELF']);
    }
    
    if(isset($_POST['username'])) {
        if($userinfo[$_POST['username']] == $_POST['password']) {
            $_SESSION['username'] = $_POST['username'];
        }else {
            //Invalid Login
        }
    }
    ?>
    <!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>
            <title>Login</title>
        </head>
        <body>
            <?php if($_SESSION['username']): ?>
                <p>You are logged in as <?=$_SESSION['username']?></p>
                <p><a href="?logout=1">Logout</a></p>
            <?php endif; ?>
            <form name="login" action="" method="post">
                Username:  <input type="text" name="username" value="" /><br />
                Password:  <input type="password" name="password" value="" /><br />
                <input type="submit" name="submit" value="Submit" />
            </form>
        </body>
    </html>

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea