Signaler

Comment inclure une variable session dans une page CSS [Résolu]

Posez votre question clé de 12 81Messages postés samedi 19 juin 2010Date d'inscription 9 septembre 2017 Dernière intervention - Dernière réponse le 15 juin 2017 à 20:36 par clé de 12
Bonjour,
Lorsque on arrive sur ma page index, je récupère les dimensions de l'écran pour en faire des variables session... Ça me permet de faire des tableaux à mes dimensions.
Impossible, à mon niveau de connaissance, d'inclure ces valeurs dans du css.
Pourtant, j'aimerai arriver à faire un truc très dur:
dans mon CSS décrivant le menu, j'aimerai créer un truc style j'ai 4 onglets, chaque onglet aura une largeur de 25% ou 100%/4... Je n'aurai qu'à modifier le nombre d'onglets pour que leurs largeurs <ul><li> etc.. varient automatiquement... Est ce possible?
Si oui, est ce possible de mettre dans mon CSS la valeur $_SESSION['Largeur'] comme élément de calcul pour définir des tables, des colonnes, etc.. par exemple
Merci pour vos remarques


Utile
+0
plus moins
Bonjour,

Oui c'est possible. A condition du coup d'avoir ouvert la session au début de la feuille CSS.

Et ensuite :

width:<?php echo $_SESSION['Largeur']; ?>px;


Par contre ça reste vraiment spécial de passer par une variable de session pour ça. Mais bon, ça peut fonctionner.

Cordialement.
le père. 5972Messages postés mardi 15 mai 2012Date d'inscription 15 octobre 2017 Dernière intervention - 14 juin 2017 à 11:21
Effectivement, ça peut marcher comme ça. Mais il ne faut pas oublier de mettre :
<?php header("Content-Type: text/css"); ?>

au début de ton fichier css (avec le nom en .php) pour bien indiquer que le fichier doit être compris comme du css, sinon le serveur va l'envoyer comme du "text/html".
Répondre
clé de 12 81Messages postés samedi 19 juin 2010Date d'inscription 9 septembre 2017 Dernière intervention - 14 juin 2017 à 22:44
Bonjour le père,
constant dans la qualité et la pertinence des réponses!
J'ai mis en 1ere lignes de ma feuille styles.php :
<?php session_start(); /*merci Kuartz */
header("Content-Type: text/css");
$Hauteur= $_SESSION['hauteur'];
$Largeur= $_SESSION['largeur'];
?>
et dans mon entete html <head> :
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="./css/styles.php" media="all" type="text/css" />
<style type="text/css">
@import "./css/menu.php";
</style>
Et tout marche nickel... ma variable session est bien interprétée. Tout le reste va couler de source.
Répondre
clé de 12 81Messages postés samedi 19 juin 2010Date d'inscription 9 septembre 2017 Dernière intervention - 15 juin 2017 à 08:32
voici une page qui explique bien aussi :
http://css4design.developpez.com/tutoriels/css/feuille-de-style-css-dynamique-avec-php/
Répondre
Kuartz 836Messages postés vendredi 13 février 2015Date d'inscription 1 septembre 2017 Dernière intervention clé de 12 - 15 juin 2017 à 18:11
Alors là franchement, j'utiliserais personnellement du Javascript. Surtout pour un truc événementiel comme celui-ci. En plus, tu peux directement coder le nombre aléatoire en javascript également et changer la propriété css de ton choix en fonction du résultat. Du coup ici, pour moi oublie le PHP.

Tu peux écrire par exemple :

<script type=text/javascript>

var nb = Math.floor(Math.random() * 51);

if (nb == 1)
{
     $('body').css("background-image", "url")
}
else if..

</script>
Répondre
clé de 12 81Messages postés samedi 19 juin 2010Date d'inscription 9 septembre 2017 Dernière intervention - 15 juin 2017 à 20:36
Pitié!!!
J'ai bientôt 70 ans et je ne connais pas encore le javascript. J'ai eu envie d'essayer mais c'était plus par curiosité que par nécessité. J'ai un peu de paresse d'apprendre le JS si le php comble mes besoins....mais je m'y mettrai un jour si ..... car je crois que le JS est bien pour les objets.
Pour l'instant, un select case me permettra de faire avancer mon projet....
Merci quand même pour ton aide
Répondre
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !