empêcher l'envoi d'un formulaire si l'utilisateur n'est pas connecté

a marqué ce sujet comme résolu.

Bonjour tout le monde, j’ai un formulaire que j’envoie à une deuxième page, mais avant de le faire j’aimerai checker si l’utilisateur est connecté ou pas, s’il est connecté c’est bon, la redirection se fait, sinon je l’envoie à la page d’authentification, et c’est là ou ca bloque :'( X/ ca me redirige vers la page (test.php) même si l utilisateur n est pas authentifié de l’aide svp svp svp!!

$adresse_courriel = $_SESSION["adresse_courriel"];
$result = sqlUtilisateur($conn,$adresse_courriel);
var_dump($result);
if(isset($_POST['tri'])){
    if(isset($_SESSION['adresse_courriel']) && $result['adresse_courriel']!='') {
            header("LOCATION:test.php");
        exit;
    } else {
            header("LOCATION:authentification.php");
    }
            
}

formulaire:

        <form action="test.php" method="POST" id="tri">
        <?php if (count($liste) > 0) : ?>
        <table>
            <tr>
                <th>Produit</th>
                <th>Description</th>
                <th>Prix</th>
                 <th>Marque</th>
                 <th>categorie</th>
                 <th>Commander</th>
            </tr>
            <?php foreach ($liste as $row) : ?> 
            <tr>
                <td><?php echo $row['nom_produit'] ?></td>
                <td><?php echo $row['description_produit'] ?></td>
                <td><?php echo $row['prix_produit'] ?></td>
                <td><?php echo $row['nom_marque'] ?></td>
                <td><?php echo $row['nom_categorie_produit'] ?></td>
            <td> <input type="checkbox" name="checkbox[]"value="<?= $row['id_produit'] ?>"/></td> 
            </tr>
            <?php endforeach; ?>
        </table> 
        <?php else : ?>
        <p>Aucun produit trouvé trouvé.</p>
        <?php endif; ?>
       <input type="submit" name="tri" value="Commander">
        </form>

requete sql:

function sqlUtilisateur($conn, $adresse_courriel) {
$req = "SELECT * FROM utilisateurs WHERE adresse_courriel=?";   
 $stmt = mysqli_prepare($conn, $req);
    mysqli_stmt_bind_param($stmt, "s", $adresse_courriel);
    if (mysqli_stmt_execute($stmt)) {
        $result = mysqli_stmt_get_result($stmt);
        $nbResult = mysqli_num_rows($result);
    $row = array();
        if ($nbResult) {
            mysqli_data_seek($result, 0);
            $row = mysqli_fetch_array($result, MYSQLI_ASSOC);       
        }
        mysqli_free_result($result);
        return $row;
    } else {
        errSQL($conn);
        exit;
    }
}

Je ne réponds pas à ta question.

Dans ton précédent message, j’ai vu une erreur que tu reproduis ici. "erreur" dans le sens où tu pourrais avoir une faille de sécurité si tu ne fais pas attention.

Quand tu rediriges l’utilisateur, je te conseille d’arrêter le script immédiatement (pour éviter que le code dessous s’affiche ou s’exécute). Accompagne toujours header avec la fonction die.

<?php
die(header("LOCATION:test.php"));
?>
+1 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte