Permettre à l'utilisateur de modifier le css

Ce topic a été résolu
Blast0Kd

Blast0Kd Le 6 juin 2016 à 21:32 (Édité le 25 janvier 2019 à 17:51)

Salut à tous !
Alors j'ai un site web, super comme info bref, ma demande serait de savoir si l’utilisateur peut éditer le fichier css sur un point en particuler, en l'occurence sur mon site ce sera uniquement la couleur. Mon site comporte des couleur un peu comme sur pimfx.com, mais quand on sera sur notre profil, au lieu d'avoir la couleur bleu, on propose à l'utilisateur de modifier la couleur du fichier css.
J'espère avoir été asser claire, sinon n'hésitez pas à me poser des questions  ;)
Ranarxhag

Ranarxhag Le 6 juin 2016 à 22:50

Yo !

Pour la couleur, l'utilisateur aurait un panel de couleurs illimitées (genre il rentre le code couleur dans un champ et hop ça s'enregistre) ou il choisirait parmi certaines couleurs que tu proposes ? 😀 
Blast0Kd

Blast0Kd Le 6 juin 2016 à 22:54

La première option un panel de couleur illimité qui converti la couleur choisi en code hexadécimal. Je pense que ça se fait avec javascript ca
Ranarxhag

Ranarxhag Le 7 juin 2016 à 19:11 (Édité le 7 juin 2016 à 19:12)

Salut !

Au début, je pensais tout t'expliquer mais au final, j'ai trouvé ce lien qui explique tout très bien ! Si tu as des questions, n'hésite pas.

http://www.alsacreations.com/astuce/lire/1433-utiliser-php-pour-gerer-vos-styles-css.html

Pour ton cas et en te basant sur le lien ci-dessus, je pense qu'il serait judicieux de créer une colonne dans ta table membre nommée "color" avec la couleur par défaut de ton site par exemple.

Ensuite, lors de la connexion du membre, tu crées une variable de session $_SESSION['color'] contenant le code hexadécimal.

Ensuite dans ton fichier style.php (que tu ne chargeras que sur la page de profil), à chaque endroit où la couleur doit être modifiée, tu fais un petit

<?php echo $_SESSION['color']; ?>

<!-- Par exemple :

p
{
   color: <?php echo $_SESSION['color']; ?>
}

-->
Et normalement, tout devrait être bon. Par contre, j'insiste bien sur le fait qu'il ne faut charger le fichier QUE sur la page de profil pour éviter de provoquer des erreurs sur les autres pages 😉

J'espère avoit été clair sinon hésite pas à poser des questions 😀

Ranarxhag
Blast0Kd

Blast0Kd Le 7 juin 2016 à 20:06

C'est très clair je vais tester cela merci 
Blast0Kd

Blast0Kd Le 7 juin 2016 à 21:24

Problème apparu @Ranarxhag :
Le test manuel fonctionne, c'est à dire que quand je modifie la valeur de la couleur dans ma table, elle change la couleur du profil, ais lorsque j'essaie avec une requete update, ça n'update rin du tout
voici la requete : 
     if(isset($_POST['color'])) {
      $newcolor = htmlspecialchars($_POST['color']);
      $insertcolor = $bdd->prepare("UPDATE membres SET color = ? WHERE id = ?");
      $insertcolor->execute(array($newcolor, $_SESSION['id']));
      header('Location: profil.php?id='.$_SESSION['id']);
       }
Et voici pour modifier le css :
<?php
if($userinfo['color'] == 'blue'){
   ?>
         <link rel="stylesheet" href="../css/style.css">
   <?php
} else if($userinfo['color'] == 'red'){
   ?>
      <link rel="stylesheet" href="css/red.css">
   <?php
} else if($userinfo['color'] == 'yellow'){
   ?>
   <link rel="stylesheet" href="css/yellow.css">
<?php
} else if($userinfo['color'] == 'green'){
   ?>
   <link rel="stylesheet" href="css/green.css">
   <?php
} else if($userinfo['color'] == 'pink'){
   ?>
   <link rel="stylesheet" href="css/pink.css">
   <?php
} else {
   ?>
<link rel="stylesheet" href="../css/style.css">
   <?php
}
?>
Blast0Kd

Blast0Kd Le 7 juin 2016 à 21:30

Problème résolu, c'était un soucis d'ordre de requête
SlappySlap

SlappySlap Le 7 juin 2016 à 22:55

ou alors tu recupere le code exadecimal recupere dans ta page de profil et tu met dans ton header un color = '<?php echo $color?>'
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte