Ben bezig mijn website met PHP en Mysql te herschrijven, min of meer omdat provider de update maakt van versie 5.6 naar versie 7.
Heb inmiddels een eenvoudig inlogscript (als jullie nog gratis uitgebreider script weten...)
Maar lukt me niet om inlognaam mee te nemen naar andere pagina.

Het loginscript gebruikt S_Session
session_start();

<?php
require_once('connect.php');

if(isset($_POST) & !empty($_POST)){
    $username = mysqli_real_escape_string($connection, $_POST['username']);
    $password = md5($_POST['password']);

    $sql = "SELECT * FROM `login` WHERE username='$username' AND password='$password'";
    $result = mysqli_query($connection, $sql);
    $count = mysqli_num_rows($result);
    if($count == 1){
        [b]$_SESSION['username'] = $username;[/b]
    }else{
        $fmsg = "Invalid Username/Password";
    }
}
?>


Op de pagina na inlog wil ik de inlognaam meenemen en gebruiken

<?php
$username=$_SESSION['username'];
echo "user  : $username <br>"   ;
?>

Maar de gebruiksnaam gaat niet mee????
Wat doe ik fout??
Op de tweede pagina mist session_start();
Ben je op de pagina waar je de gebruikersnaam wil tonen
<?php
session_start();
?>
vergeten?
Het is wel leuk om een inlognaam op te slaan in een sessie. Maar je kan deze ook uit de database zelf halen, aan de hand van het ID-nummer die een gebruiker (hopelijk) heeft. Mocht iemand zijn naam willen veranderen, dan is het direct zichtbaar.

Verder raad ik af om md5() te gebruiken voor het hashen van wachtwoorden. Dit is inmiddels vanwege zijn zwakte zeer achterhaald. De beste oplossingen zijn [php]password_hash[/php] en [php]password_verify[/php]
Bedankt, jullie hadden gelijk de session_start(); miste op 2e blz.

Arjen, het is een tijdje geleden dat ik in php programmeerde, staat hier ook een inlog script met Password_has en Password_verify (geschikt voor versie 7) als voorbeeld?
het zijn gewoon twee functies die je juist moet toepassen. Je kan op de linkjes klikken voor uitleg, zodat je het zelf kan integreren. Het is echt geen rocket-science verder ;-)
Let wel even op als je van md5 wilt overschakelen naar een andere encryptie methode dat je bestaande gebruikers dan ineens niet meer kunnen inloggen. Je zult voor hen een overgangsprocedure moeten toepassen. Je zou een extra kolom in je database kunnen toevoegen die bijhoudt of de hash nog md5 is of niet. Vervolgens zou je als een gebruiker succesvol inlogt het niet-versleutelde wachtwoord opnieuw kunnen versleutelen naar de nieuwe hash en deze vervangen in de database voor de oude md5 hash waarbij je de waarde in die nieuwe kolom ook aanpast.

Reageren