Header php true or false ?

WRInaute accro
Bonjour,

Je dois rediriger
---https://monsite.fr/code_s.php?id=1189
vers
---https://monsite.fr/code/php/applications/1189_calculette-basique-en-php-et-html

Vu que j'ai pas loin de 1k d'urls a traiter, je veux être certain de bien utiliser les headers

voici le code, est-ce bon ?

PHP:
if (isset($_GET['id'])) {
    
    $id_esc = $_GET['id'];
    $q_s = $conn->query("SELECT * FROM $table_mysql WHERE idx = '$id_esc' ");

    $r_s = mysqli_fetch_array($q_s);

    // La requête est vide
     if ($q_s->num_rows == 0) {
        header('Status: 301 Moved Permanently', FALSE, 301);
        header('Location: ' . $url_site);
        exit;
    }
    else {
    // C'est correct, on fait la redirection sur la page 
    $url = url_code_source($r_s['idx'], $r_s['cat'],$r_s['titre']);
    $url = $url_site.$url;
    header('Location: ' . $url, TRUE, 301);

    }
  }
 else
 {
 // Pas de $_GET['id'] identifié
 header('Location: ' . $url_site,  FALSE, 301);

 }
 
WRInaute accro
Attention à la faille d'injection SQL :
Code:
?id=' OR 1=1; DROP TABLE users;--

Sinon ça à l'air bon, suffit de tester les entêtes avec un outil.
 
WRInaute impliqué
Ça ne serait pas plus simple comme ça ?

PHP:
$page = "";
if (is_numeric($_GET['id'])) {
   $sql = "SELECT * FROM $table_mysql WHERE idx = " . (int) $_GET['id']
   $qr = $conn->query($sql);
   // page trouvée
   if ($qr->num_rows) {
      $row = mysqli_fetch_array($qr);
      $page = url_code_source($row['idx'], $row['cat'],$row['titre']);
   }
}

header('Location: ' . $url_site . $page,  TRUE, 301);
exit;
 
Dernière édition:

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut