Bonjour,
Je débute sur php et je fais mon portfolio en brut
Le soucis que je rencontre est que la fonction unset() bloque le traitement de mon formulaire dans le fichier login.php
Lorsque je me connecte le message générer par setFlash() doit s'afficher. Et unset() doit me permettre a la l'actualisation de la page index.php de faire disparaître le message setFlash() grâce au die() qui interrompt le script.
Lorsque je commente la fonction unset() dasn session.php mon message
reste et ne disparaît pas lors de l'actualisation.
========================
if ($select->rowCount() > 0) {
$_SESSION['Auth'] = $select->fetch();
setFlash('Vous êtes maintenant connecté');
header('Location:' . WEBROOT . 'admin/index.php');
die();
}
========================
Merci de votre aide et j’espère avoir été clair.
en vous remerciant par avance de votre œil extérieur;
cdt
======================================
Fichier session.php
=====================================
<?php
function flash()
{
if (isset($_SESSION['Flash'])) {
extract($_SESSION['Flash']);
// var_dump($_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;
}
=============================================
Fichier login .php
==============================================
<?php
$auth = 0;
include 'lib/include.php';
// traitement du formulaire====================================================
if (isset($_POST['username']) && isset($_POST['password'])) {
$username = $db->quote($_POST['username']);
// protege des caracteres comme les guillemets ou autre
$password = sha1($_POST['password']);
$select = $db->query("SELECT * FROM users WHERE username=$username AND password = '$password'");
if ($select->rowCount() > 0) {
$_SESSION['Auth'] = $select->fetch();
setFlash('Vous êtes maintenant connecté');
header('Location:' . WEBROOT . 'admin/index.php');
die();
}
}
// inclusion du header=========================================================
include 'partial/header.php';
?>
<form action="#" method="post">
<!-- methode par defaut de form = GET les variable se retrouve dans l'url
nous on veux post pour pouvoir les recuperer dans la variable $_POST -->
<div class='form-group'>
<label for="username">Nom d'utilisateur</label>
<?= input('username'); ?>
</div>
<div class='form-group'>
<label for="password">Password</label>
<input type="password" class="form-control" id='password' name="password">
</div>
<button type='submit' class="btn btn-default">Se connecter</button>
</form>
<?php include 'lib/debug.php';?>
<?php include 'partial/footer.php';?>
========================
fichier header.php
=========================
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/boot ... ap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
<title>Portfolio</title>
</head>
<body>
<div class="navbar navbar-fixed-top navbar-inverse" role="navigation">
<div class="container">
<div class="navbar-header">
<a class="navbar-brand" href="#">Mon portfolio PHP</a>
</div>
</div>
</div>
<div class="container">
<p> </p>
<p> </p>
<p> </p>
<?= flash(); ?>
========================
fichier index.php
=========================
<!-- contient plusieurs include -->
<?php $auth = 0; ?>
<?php include 'lib/include.php'; ?>
<?php include 'partial/header.php'; ?>
<h1>Le fameux portfolio en PHP</h1>
<?php include 'lib/debug.php'; ?>
<?php include 'partial/footer.php';?>