Comment inclure une variable session dans une page CSS

Résolu/Fermé
clé de 12 Messages postés 119 Date d'inscription samedi 19 juin 2010 Statut Membre Dernière intervention 28 novembre 2022 - 13 juin 2017 à 17:26
clé de 12 Messages postés 119 Date d'inscription samedi 19 juin 2010 Statut Membre Dernière intervention 28 novembre 2022 - 15 juin 2017 à 20:36
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


1 réponse

Kuartz Messages postés 850 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 15 février 2019 57
13 juin 2017 à 18:09
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.
0
clé de 12 Messages postés 119 Date d'inscription samedi 19 juin 2010 Statut Membre Dernière intervention 28 novembre 2022 1
14 juin 2017 à 10:28
Je dois donc enregistrer mon css en tant que page php et changer le link de mon head html? Je vais essayer, merci...
Le but du php dans mon css, c'est aussi d'offrir de façon aléatoire par tirage au sort mt_rand() un fond, une image, un background....
Allez, je creuse :o)
0
Utilisateur anonyme > clé de 12 Messages postés 119 Date d'inscription samedi 19 juin 2010 Statut Membre Dernière intervention 28 novembre 2022
Modifié le 14 juin 2017 à 11:23
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".
0
clé de 12 Messages postés 119 Date d'inscription samedi 19 juin 2010 Statut Membre Dernière intervention 28 novembre 2022 1 > Utilisateur anonyme
Modifié le 14 juin 2017 à 22:47
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.
0
clé de 12 Messages postés 119 Date d'inscription samedi 19 juin 2010 Statut Membre Dernière intervention 28 novembre 2022 1 > clé de 12 Messages postés 119 Date d'inscription samedi 19 juin 2010 Statut Membre Dernière intervention 28 novembre 2022
15 juin 2017 à 08:32
0
Kuartz Messages postés 850 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 15 février 2019 57 > clé de 12 Messages postés 119 Date d'inscription samedi 19 juin 2010 Statut Membre Dernière intervention 28 novembre 2022
Modifié le 15 juin 2017 à 18:16
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>
0