8768 sujets

Développement web côté serveur, CMS

Bonjour,

J'ai un petit soucis .
Je souhaite faire une feuille de style dynamique donc style.php (eh oui c'est fesable Smiley cligne )
La voici :
<?php include "lib/function.php"; ?>

<?php
header("Content-type: text/css; charset=UTF-8");
$couleurs = 'white';
?>
body {
   background-color:<?php echo $couleurs; ?>;
}


Je stock la couleur dans une variable appelée $couleurs.

Je souhaiterais changer cette couleur a travers un formulaire que voici :

<form method="post">
					<label for="couleurs">Couleur:</label>
					<select id="couleurs" name="couleurs">
					<option value="blue"> Bleu</option>
					<option value="red"> Rouge</option>
					<option value="green"> Vert</option>
					<option value="yellow"> Jaune</option>
					<option value="orange"> Orange</option>
					<option value="black"> Noir</option>
					<input type="submit" name="submit" value="couleurs"/>
					</form></center>


Voici comment j'appele ma requête pour mon bouton submit :

<?php 
					if (!empty($_POST["submit"]) && isset($_POST["submit"]) && $_POST["submit"] == "submit")
					{
						InsertCouleur($_POST['couleurs']); 
					}
					?>


Ma fonction qui fait ma requête :

function InsertCouleur($couleurs) {
querys("UPDATE variable SET couleurs = '.$couleurs.' WERE id = 1");
}


Quand j'envoie le formulaire avec le bouton submit, le background est sensé changer de couleur et me mettre l'update dans ma bdd mais la rien ne se produit

Pourriez-vous m'aidez ?

Cordialement; Sonycsl.
Salut,

Plusieurs problèmes sont présents dans ton script :
- tu ne rentres jamais dans ta condition car tu cherches à valider une valeur de 'submit' égale à 'submit' alors que ton formulaire envoie une valeur égale à 'couleurs'...
- inutile de vérifier si $_POST['submit'] est vide puisque tu vérifies si il prend une valeur précise
- tu ne sécurises pas du tout la valeur de $_POST['couleurs'] au passage en BDD et ça c'est pas bien...
Il faudrait :
<?php if (isset($_POST["submit"]) && $_POST["submit"] == "couleurs"){
    InsertCouleur(htmlspecialchars($_POST['couleurs'])); 
  }
?>

Ensuite, ta requête en complètement erronée... WERE s'écrit WHERE, ta concaténation est mauvaise et/ou inutile, à quoi correspond cette fonction querys() ? Ta table s'appelle bien 'variable' ? Si c'est le cas c'est un peu vague comme nommage...
Il faudrait :
function InsertCouleur($couleurs) {
  querys("UPDATE variable SET couleurs = '" . $couleurs . "' WHERE id = 1");
}

Pour finir, avec tout ça corrigé, ça ne te donnera rien puisque tu déclares "$couleurs = 'white';" juste avant "<?php echo $couleurs; ?>" donc ton background sera toujours blanc...
Rarement vu autant d'erreurs en si peu de lignes Smiley murf
Teste les choses une par une en parsemant ton code au debuggage de var_dump().
Modifié par MatthieuR (28 Sep 2015 - 00:32)