Bonjour à tous,
Si je viens vous voir, c'est après avoir lu la documentation PHP (sûrement mal du coup :/ ), donc en dernier recours.
Voilà, j'ai donc une url contenant une variable (mapage.com?jeuxsport=2).
Voici le code que j'utilise actuellement (j'ai élagué bien sûr en laissant l'essentiel) et qui fonctionne parfaitement pour générer le contenu de la page correspondant au jeu de sport ayant pour id le "2" :
Ce code me permet donc de générer mon h1.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 <?php try { $bdd = new PDO('mysql:host=mysql;dbname=jeu', 'jeu', 'jeu'); } catch(Exception $e) { die('Erreur : '.$e->getMessage()); } $answer= $bdd->query('SELECT * FROM jeu where id="'.$_GET['id'].'" '); while ($contenu= $answer->fetch()) { ?> <h1 class="vue-produit"><?php echo $contenu['nom']; ?></h1> <?php } $reponse->closeCursor(); // Termine le traitement de la requête ?>
En plaçant ce même bout de code dans <head>, maintenant, j'aimerai faire deux choses :
1) Ajouter un "empty" à mon code pour contrôler le contenu de $answer et, si la requête ne répond à rien ...
2) si la requête ne répond à rien, générer une erreur 404 (une vraie, réponse http du serveur).
J'ai donc utilisé la fonction empty pour vérifier $answer :
- Si la requête renvoie quelque chose, alors je ne fais rien.
- Si la requête ne renvoie rien, alors je génère dans <head> le code pour générer une page 404.
Pour ces deux opérations, j'ai donc fait cela que j'ai placé avant mon doctype (la documentation disant "N'oubliez jamais que header() doit être appelée avant que le moindre contenu ne soit envoyé, soit par des lignes HTML habituelles dans le fichier, soit par des affichages PHP.") :
Quand la requête ne renvoie rien, il ne se passe rien...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 <?php try { $bdd = new PDO('mysql:host=mysql;dbname=jeu', 'jeu', 'jeu'); } catch(Exception $e) { die('Erreur : '.$e->getMessage()); } $answer= $bdd->query('SELECT * FROM jeu where id="'.$_GET['id'].'" '); if (empty($answer)) { } else { header("HTTP/1.0 404 Not Found"); } $reponse->closeCursor(); // Termine le traitement de la requête ?>
J'ai l'impression que ma condition n'est pas bonne alors qu'elle me semble bien écrite..
Auriez-vous une piste ? (ou carrément un domaine skiable vu que mon erreur est sûrement énorme).
Merci d'avance et encore à ce forum !
Partager