Bonjour,
J'ai suivi le tuto concernant la création d'un portofolio de A à Z mais hiersoir j'ai commencé la partie 4 comme il se faisait tard j'ai arrété
Ce matin en voulant continué sur ma lancé, j'arrive plus a me connecté via le formulaire login.php
Dans le débug session j'ai toujours en visualisation un csrf
array (size=1)
'csrf' => string 'f8237b339b74f99b43b98b89f9d772e6' (length=32)
Ma page login.php est la suivante
<?php
$auth = 0;
include 'lib/includes.php';
/**
* TRAITEMENT DU FORMULAIRE
**/
if(isset($_POST'username']) && isset($_POST'password'])){
$username = $db->quote($_POST'username']);
$password = sha1($_POST'password']);
$select = $db->query("SELECT * FROM users WHERE name=$username AND password='$password'");
if($select->rowCount() > 0){
$_SESSION'Auth'] = $select->fetch();
setFlash('Vous être maintenant connecté');
header('Location:'.WEBROOT.'admin/index.php');
die();
}
}
/**
* Inclusion du header
**/
include 'partials/header.php';
?>
<form action="#" class="login" method="post">
<div class="form-group">
<label for="username">Nom d'utilisateur</label>
<?= input('name'); ?>
</div>
<div class="form-group">
<label for="password">Mot de passe</label>
<input type="password" class="form-control" name="password" id="password">
</div>
<button type="submit">Connexion</button>
</form>
<?php include 'lib/debug.php';?>
<?php include 'partials/footer.php'; ?>
et le fichier auth.php
<?php
session_start();
if(!isset($auth)){
if(!isset($_SESSION'Auth']'id'])){
header('location:'.WEBROOT.'login.php');
die();
}
}
if(!isset($_SESSION'csrf'])){
$_SESSION'csrf'] = md5(time() + rand());
}
function csrf(){
return 'csrf='.$_SESSION'csrf'];
}
function csrfInput(){
return '<input type="hidden" value="'.$_SESSION'csrf'].'" name="csrf">';
}
function checkCsrf(){
if(
(isset($_POST'csrf']) && $_POST'csrf'] == $_SESSION'csrf']) ||
(isset($_GET'csrf']) && $_GET'csrf'] == $_SESSION'csrf']))
{
return true;
}
header('Location:' .WEBROOT.'csrf.php');
die();
}
?>
Merci de votre aide
Cafreunion
Re,
Le problème a été résolu, une erreur de ma part sur un champs du formulaire
<div class="form-group">
<label for="username">Nom d'utilisateur</label>
<?= input('name'); ?>
</div>
j'ai mis name au lieu de username a ce niveau
<div class="form-group">
<?= input('name'); ?>
</div>
Cafreunion
Re,
Ci-joint les fichiers manquante
Session.php
<?php
function flash(){
if(isset($_SESSION'Flash'])){
extract($_SESSION'Flash']);
unset($_SESSION'Flash']);
return "<div class='alert alert-$type'>$message</div>";
}
}
function setFlash($message,$type = 'success'){
$_SESSION'Flash']'message'] = $message;
$_SESSION'Flash']'type'] = $type;
}
index.php
<?php
$auth =0;
include 'lib/includes.php';
include 'partials/header.php';
?>
<h1>Mon portfolio en PHP !</h1>
<?php
include 'lib/debug.php';
include 'partials/footer.php';
?>
Merci de votre aide
Cafreunion