Forum Clubic

[PHP] Changement du background d'un site - en fonction de l'id de chaque rubrique

Salut,
Je cherche à changer l’image de fond de mon site en fonction de la rubrique dans laquelle on se rend.
Par exemple, si on va dans la rubrique foot, j’aimerai afficher une image de foot, si on va dans la rubrique tennis, j’aimerai afficher une image de tennis, ect…

Biensur, mon site est en php, de la forme /index.php?Rubrique=foot
Donc j’aimera savoir comment faire pour changer le fond dans le code de la page index.php en fonction de l’id de la rubrique.

Merci pour votre aide :slight_smile:

<?php
  $rubrique = $_GET['rubrique'];
  $fonds = array('foot.jpg', 'tennis.jpg', 'bowling.jpg');
  // Ton paramètre "rubrique" doit être comprise entre 0 et ton nombre de rubriques - 1
  if(array_ket_exists($rubrique, $fonds)) {
     $fond = $fonds[$rubrique];
  } else {
     $fond = 'default.jpg';
     // Si il y a une erreur dans la rubrique, t'affiches le fond que tu veux...
  }

  // pleins de code
  
  echo '<style type="text/css">background-image: url(', $fond, ');</style>';
  // tu peux rajouter tes autres styles, comme le background-repeat, etc

  // pleins de code
?>

Merci
Par contre, la fonction c’est “array_key_exists” avec un Y

Sinon, pour afficher le background, faut ajouter body non ?

body { background-image: url(", $fond, " }

Mais dans ce cas, la variable “$fond” n’est pas reconnu :confused:

Je continu à chercher en bidouillant, mais si tu as la solution…

<?php
 $rubrique = $_GET['rubrique'];
 $fonds = array('foot.jpg', 'tennis.jpg', 'bowling.jpg');
 // Ton paramètre "rubrique" doit être comprise entre 0 et ton nombre de rubriques - 1
 if(array_key_exists($rubrique, $fonds)) {
    $fond = $fonds[$rubrique];
 } else {
    $fond = 'default.jpg';
    // Si il y a une erreur dans la rubrique, t'affiches le fond que tu veux...
 }

 // pleins de code
 
 echo '<style type="text/css">background-image: url(', $fond, ');</style>';
 // tu peux rajouter tes autres styles, comme le background-repeat, etc

 // pleins de code
?>

C’est array_key_exists :wink: !

Edit : Grillé :grrr:

Pas forcément si tu mets un div qui contient l’ensemble, ça revient alors au même.

Sinon tu mets :
<style type=“text/css”>
body
{
background-image: url(’, $fond, ');
}
</style>

$fond, c’est une variable PHP, faut juste l’afficher… et c’est vrai que j’ai oublié le body.
Par contre, pour array_key_exists, vous êtes méchants, j’ai fait une faute de frappe, stou !

Salut,
Ca marche :clap:

Par contre, cette ligne n’est pas tres pratique :
$fonds = array(‘foot.jpg’, ‘tennis.jpg’, ‘bowling.jpg’);

j’ai plus de 100 rubriques differentes, et à chaque fois que j’en rajouterai une, il faudrait que j’édite mon fichier php pour l’ajouter à ce niveau :whistle:

On pourrait pas mettre un code qui permet de voir ce qu’il y a dans la table “rubriques” de ma base, et verifier donc si la rubrique existe (et donc afficher l’image de fond) sinon mettre l’image par default… :slight_smile:

Merci pour votre aide :super:

ou mettre le nom/chemin de l’image dans la table rubriques :neutre:

un truc simple à mettre en place.

créer un dossier spécifique pour les images de fond.

nommer toutes tes images avec : nom_rubrique.jpg

ensuite


if(file_exists($_GET['rubrique'] . ".jpg") {
 $fond = $_GET['rubrique'] . ".jpg";
} else {
 $fond = "default.jpg";
}

Ca marche impec, sauf qu’il faut que je mette les images dans la racine de mon site. Comment pointer le file_exists sur un repertoire d’images ?

file_exists(“le_dossier/” . $_GET[‘rubrique’] . “.jpg”)

:smiley: