[RESOLU] affichage script qui ne devrait pas

Eléphant du PHP | 345 Messages

27 mai 2021, 10:29

Bonjour,
Ce script PHP fonctionne mais s'affiche ensuite sur la page HTML de redirection. Comment virer cet affichage :?:
<?php
session_start();
require_once 'config.php';
$id = !empty($_SESSION['id']) ? $_SESSION['id'] : NULL;
$pdostat =  $bdd->prepare("UPDATE map INNER JOIN membres ON membres.pos_x = map.pos_x AND membres.pos_y = map.pos_y
SET map.def_animal = map.def_animal-1 WHERE membres.id= $id");
$pdostat->execute();
header('Location:erreur_animal_blesse.html');
?>

Mammouth du PHP | 2703 Messages

27 mai 2021, 12:55

toujours faire suivre une redirection d'un :
exit();

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

27 mai 2021, 13:52

En complément de la réponse d'or1, l'instruction header de php n'interrompt effectivement pas l'exécution du script et tout ce qui va suivre sera exécuté et renvoyé au serveur le cas échéant. Avec un exit() on indique explicitement qu'une fois la redirection transmise au serveur, le script ne doit pas aller plus loin dans l'exécution du code ;)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 345 Messages

29 mai 2021, 00:24

Je pensais que ce n'était pas obligatoire !

Eléphant du PHP | 153 Messages

29 mai 2021, 11:04

toujours faire suivre une redirection d'un :
exit();
Ho merci pour cette réponse, encore tout à l'heure j'ai mis sur un de mes programme :
exit;
Ça ne marchait pas, il faut donc mettre exit();

On en apprend tous les jours... (désolé de mettre incrusté en hors sujet)

Merci

Mammouth du PHP | 2703 Messages

29 mai 2021, 14:02

https://www.php.net/manual/fr/function.exit.php
"exit est une construction de langage et peut être appelé sans parenthèse si aucun paramètre status n'est passé."