Conditions else fonctionne pas !

Résolu
lina-24 Messages postés 63 Date d'inscription   Statut Membre Dernière intervention   -  
lina-24 Messages postés 63 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
je tiens à remercier Jordane45 pour l'aide précieuse il a vraiment simplifier mon script d'origine.

touts fonctionne correctement sauf le( else ) a la fin ne fonctionne pas!
confronté à un petit soucis. J'ai des actualités qui sont publiées et la page est de type :

/page.php?id=145

Le problème est que si la personne modifie l'ID dans l'url, il peut laisser un commentaire sur une news qui n'existe pas. L'article n'apparaît pas mais le formulaire de com est toujours là...

Il doit y avoir plusieurs solutions : une fonction qui ramènerait page 404 ?

J'avoue être paumé sur ce point-là...

Merci d'avance pour votre aide .

<?php

doDB();

//récupération PROPRE des variables AVANT de les utiliser
$id = !empty($_GET['id']) ? $_GET['id'] : NULL;

// Vérifier si la variable est vide. j'envois à  page not found 404!
if (!$id) {
  echo "<script>location.href='personal.php?pg=404';</script>";
  exit;
} else {

  $sql = "select * from article where id='$id'";
  if ($rs = $mysqli->query($sql)) {
    while ($row = $rs->fetch_assoc()) {
      // boucle pour traiter le résultat de la requête
      // ...
    }
  } else {
    //  Vérifier si le ID est ( faux  |  erroné  |  inexistant ) . j'envois à  page not found 404!	
    echo "<script>location.href='personal.php?pg=404';</script>";
    exit;
  }
}
?>





Configuration: Windows / Chrome 102.0.5005.63

2 réponses

_Ritchi_ Messages postés 21333 Date d'inscription   Statut Contributeur Dernière intervention   6 104
 
Bonjour,
Je n’ai jamais fait de php, mais ne manquerait-il pas un caractère = dans le dernier if à la lîgne 15 de ton code ?
A savoir:
if ( $rs == ....
Ritchi
1
lina-24 Messages postés 63 Date d'inscription   Statut Membre Dernière intervention   4
 
ça pourrait être une bonne piste mais ca ne marche pas.
merci de m'avoir accordé de votre temps
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
En effet,
petite correftion

<?php

doDB();

//récupération PROPRE des variables AVANT de les utiliser
$id = !empty($_GET['id']) ? $_GET['id'] : NULL;

// Vérifier si la variable est vide. j'envois à  page not found 404!
if (!$id) {
  echo "<script>location.href='personal.php?pg=404';</script>";
  exit;
} else {

  $sql = "select * from article where id='$id'";
  if ($rs = $mysqli->query($sql)) {

   /* Détermine le nombre de lignes du jeu de résultats */
   $row_cnt = $rs->num_rows;

   if($row_cnt){
    while ($row = $rs->fetch_assoc()) {
      // boucle pour traiter le résultat de la requête
      // ...
    }
   }else{
       //  Vérifier si le ID est ( faux  |  erroné  |  inexistant ) . j'envois à  page not found 404! 
    echo "<script>location.href='personal.php?pg=404';</script>";
    exit;
   }
  } else {
   // Erreur dans la requête SQL
    echo("Error description: " . $mysqli -> error);
    exit;
  }
}



0
lina-24 Messages postés 63 Date d'inscription   Statut Membre Dernière intervention   4
 
jordane45 The king of PHP scripting language .
Merci.
0