Salut à tous,
j'aimerais savoir si c'est possible d'ouvrir une page après avoir compléter un formulaire, mais qu'elle soit visible que par ceux qui ont remplit ce formulaire?

Par exemple si on a le lien et qu'on va dessus cela nous renvoie directement vers la page du formulaire parce qu'on aura pas remplie le formulaire avant

Merci d'avance,
Non seulement c'est possible, mais c'est ce qui se passe quand on veut accéder à la partie d'un site réservée aux utilisateurs enregistrés.
Une façon de faire: mettre une protection par mot de passe dans le .htaccess du répertoire contenant les pages "protégées"
Bien entendu on peut le faire "à la main" en vérifiant qu'un cookie a bien été rempli.
Il faudrait en savoir un peu plus sur le contexte pour pouvoir t'aider.
Modifié par PapyJP (08 Oct 2019 - 11:45)
je voudrais pas de mot de passe,
en fait c'est un formulaire d'inscription et la page d'après c'est juste "Merci de vous êtes inscrit".
Du coup les mots de passe ne servent à rien, c'est juste que les utilisateurs ne doivent pas aller sur cette page sauf s'ils se sont inscrit
Modérateur
Et l'eau,

- l'arborescence de tes 3 fichiers
- ton formulaire

<?php
    if(!empty($_POST['pseudo'])){
        $pseudo = $_POST['pseudo']."\n";
        $path_to_file = './membres.txt';
        $membres = file($path_to_file, FILE_SKIP_EMPTY_LINES);
        if(in_array($pseudo, $membres)){
            $_POST['erreur']['pseudo'] = "ce membre existe déjà. Veuillez choisir un autre noms de membre";
        }else{
            $file = fopen($path_to_file, 'a+');
            fwrite($file, $pseudo);
            fclose($file);
            setcookie('membre', 1, time() + (60 * 60 * 24 * 365 * 5)); //5 ans
            header('location:page.php');
        }
    }
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post">
        <div class="text input">
            <label for="pseudo">votre pseudo</label>
            <input type="text" id="pseudo" name="pseudo" value="<?= isset($_POST['pseudo'])? $_POST['pseudo'] : ''  ?>">
            <?php if(!empty($_POST['erreur']['pseudo'])): ?>
            <span class="error"><?= $_POST['erreur']['pseudo'] ?></span>
            <?php endif; ?>
        </div>
        <div class="input submit"><input type="submit" value="s'enregistrer"></div>
    </form>
</body>
</html>


la page cible :

<?php 
    if(!isset($_COOKIE['membre']) || $_COOKIE['membre'] != 1){
        header('location:'.$_SERVER['HTTP_REFERER']);
    }
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <h1>page destination</h1>
    <p>Merci de vous être inscrit</p>
</body>
</html>

Modifié par niuxe (15 Nov 2019 - 01:17)