$query = "INSERT INTO UTILISATEURS (zonecouleur1,zonecouleur2, zonecouleur3) VALUES ('$couleur1', '$couleur2', '$couleur3')"; $sql = mysql_query($query) or die(mysql_error());
<?php /* configuration base de données */ define('DB_HOST', "localhost"); define('DB_USER', "root"); define('DB_PASSW', ""); define('DB_NAME', "tests"); /* affiche les messages de Deboggage (true) ou pas (false) */ define('DEBUG', true); /* bonus : une fonction de test pour les couleurs HTML ! afin d'eviter tout problème d'injection SQL ou d'enregistrer des données érronées (mauvais code couleur par exemple. */ function isHTMLColor($color){ // detecte les couleurs de format court #000 à #fff // et les couleurs format long #000000 à #ffffff return preg_match('/^#([a-f0-9]{3}){1,2}$/i',$color); } /* connection à la base via MySQLi */ $DB = new mysqli(DB_HOST, DB_USER, DB_PASSW, DB_NAME); // si erreur de connection if($DB->connect_errno) { echo "Une erreur du serveur empêche l'enregistrement des couleurs."; // DEBUG :: on affiche les erreur de connection de la base de données if(DEBUG) echo '<pre style="border:1px solid #c00">', $DB->connect_errno,' : ', $DB->connect_error,'</pre>'; } // sinon continuer else { // récupération des couleurs (note les paramètres GET court !) // car les URL sont limitée en caractères sur de nombreux navigateurs. $couleur1 = isset($_GET['zc1']) ? $_GET['zc1'] : false; $couleur2 = isset($_GET['zc2']) ? $_GET['zc2'] : false; $couleur3 = isset($_GET['zc3']) ? $_GET['zc3'] : false; /* en une seule condition : si A et B et C alors ... */ if(isHTMLColor($couleur1) && isHTMLColor($couleur2) && isHTMLColor($couleur3)){ /* on utilise toujours sprintf pour remplir les requêtes et on execute jamais une requête directement à la déclaration */ $sql = sprintf("INSERT INTO '%s' VALUES ('%s','%s','%s')", 'UTILISATEURS', $couleur1, $couleur2, $couleur3); // la requête s'execute avec succés if($DB->query( $sql )) { echo "Couleurs enregistrées."; } // sinon baaah .... ça marche pas :( else { echo "Erreur d'enregistrement des couleurs."; // DEBUG :: on affiche les erreur MySQL qui sont survenues if(DEBUG) echo '<pre style="border:1px solid #c00">', $DB->errno,' : ', $DB->error,'<br/><i>', $sql,'</i></pre>'; } } // si les couleurs ne sont pas définie else { echo "Il n'y a rien à enregistrer."; // DEBUG :: on dump $_GET pour voir ce que notre form/ajax à envoyé à notre PHP if(DEBUG){ print('<pre style="border:1px solid #c00">'); print_r($_GET); print('</pre>'); } } } // on finit par un petit formulaire basic pour tester. ?> <form method="GET" action=""> <p><label>zone couleur 1</label> <input type="text" name="zc1" value="#000"/></p> <p><label>zone couleur 2</label> <input type="text" name="zc2" value="#fff"/></p> <p><label>zone couleur 3</label> <input type="text" name="zc3" value="#4e4e4e"/></p> <hr> <p><input type="submit" value="Appliquer"/></p> </form>
$sql = sprintf("INSERT INTO 'UTILISATEURS' VALUES ('zonecouleur1','zonecouleur2','zonecouleur3')",
'UTILISATEURS', $couleur1, $couleur2, $couleur3);
// la requête s'execute avec succés
if($DB->query( $sql ))
{
echo "Couleurs enregistrées.";
}
// sinon baaah .... ça marche pas :(
else
{
echo "Erreur d'enregistrement des couleurs.";
// DEBUG :: on affiche les erreur MySQL qui sont survenues
if(DEBUG) echo '<pre style="border:1px solid #c00">', $DB->errno,' : ', $DB->error,'<br/><i>', $sql,'</i></pre>';
}
}
// si les couleurs ne sont pas définie
else
{
echo "Il n'y a rien à enregistrer.";
$sql = sprintf("INSERT INTO 'UTILISATEURS' VALUES ('zonecouleur1','zonecouleur2','zonecouleur3')", 'UTILISATEURS', $couleur1, $couleur2, $couleur3);
$sql = sprintf("INSERT INTO '%s' VALUES ('%s','%s','%s')", 'UTILISATEURS', $couleur1, $couleur2, $couleur3);
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question$sql = sprintf("INSERT INTO '%s' VALUES ('%s','%s','%s')",
'UTILISATEURS', $couleur1, $couleur2, $couleur3);12
function creerInstance(){
if(window.XMLHttpRequest){
/* Firefox, Opera, Google Chrome */
return new XMLHttpRequest();
}else if(window.ActiveXObject){
/* Internet Explorer */
var names = [
"Msxml2.XMLHTTP.6.0",
"Msxml2.XMLHTTP.3.0",
"Msxml2.XMLHTTP",
"Microsoft.XMLHTTP"
];
for(var i in names){
/* On teste les différentes versions */
try{ return new ActiveXObject(names[i]); }
catch(e){}
}
alert("Non supporte");
return null; // non supporté
}
};
function envoyerDonnees(){
var req = creerInstance();
/* On récupère la variable ici */
var ZoneCouleur1 = document.getElementById('titre').style.color;
var ZoneCouleur2 = document.getElementById('fonction').style.color;
var ZoneCouleur3 = document.getElementById('adresse').style.color;
req.onreadystatechange = function(){
/* Si l'état = terminé */
if(req.readyState == 4){
/* Si le statut = OK */
if(req.status == 200){
/* On affiche la réponse */
alert(req.responseText);
}else{
alert("Error: returned status code " + req.status + " " + req.statusText);
}
}
}
req.open("GET", "serveur.php?zc1="+ZoneCouleur1 + "&zc2="+ZoneCouleur2 + "&zc3="+ZoneCouleur3 ,true);
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
req.send(null);
}
<?php
/* configuration base de données */
define('DB_HOST', "localhost");
define('DB_USER', "mabase");
define('DB_PASSW', "pass");
define('DB_NAME', "mabase");
/* affiche les messages de Deboggage (true) ou pas (false) */
define('DEBUG', true);
/* bonus : une fonction de test pour les couleurs HTML !
afin d'eviter tout problème d'injection SQL ou d'enregistrer
des données érronées (mauvais code couleur par exemple.
*/
function isHTMLColor($color){
// detecte les couleurs de format court #000 à #fff
// et les couleurs format long #000000 à #ffffff
return preg_match('/^#([a-f0-9]{3}){1,2}$/i',$color);
}
/* connection à la base via MySQLi
*/
$DB = new mysqli(DB_HOST, DB_USER, DB_PASSW, DB_NAME);
// si erreur de connection
if($DB->connect_errno)
{
echo "Une erreur du serveur empêche l'enregistrement des couleurs.";
// DEBUG :: on affiche les erreur de connection de la base de données
if(DEBUG) echo '<pre style="border:1px solid #c00">', $DB->connect_errno,' : ', $DB->connect_error,'</pre>';
}
// sinon continuer
else
{
// récupération des couleurs (note les paramètres GET court !)
// car les URL sont limitée en caractères sur de nombreux navigateurs.
$couleur1 = isset($_GET['zc1']) ? $_GET['zc1'] : false;
$couleur2 = isset($_GET['zc2']) ? $_GET['zc2'] : false;
$couleur3 = isset($_GET['zc3']) ? $_GET['zc3'] : false;
/* en une seule condition :
si A et B et C alors ...
*/
if(isHTMLColor($couleur1) && isHTMLColor($couleur2) && isHTMLColor($couleur3)){
/* on utilise toujours sprintf pour remplir les requêtes
et on execute jamais une requête directement à la déclaration
*/
$sql = sprintf("INSERT INTO '%s' VALUES ('%s','%s','%s')",
'UTILISATEURS', $couleur1, $couleur2, $couleur3);
// la requête s'execute avec succés
if($DB->query( $sql ))
{
echo "Couleurs enregistrées.";
}
// sinon baaah .... ça marche pas :(
else
{
echo "Erreur d'enregistrement des couleurs.";
// DEBUG :: on affiche les erreur MySQL qui sont survenues
if(DEBUG) echo '<pre style="border:1px solid #c00">', $DB->errno,' : ', $DB->error,'<br/><i>', $sql,'</i></pre>';
}
}
// si les couleurs ne sont pas définie
else
{
echo "Il n'y a rien à enregistrer.";
// DEBUG :: on dump $_GET pour voir ce que notre form/ajax à envoyé à notre PHP
if(DEBUG){
print('<pre style="border:1px solid #c00">');
print_r($_GET);
print('</pre>');
}
}
}
?>
$sql = sprintf("INSERT INTO '%s' VALUES ('%s','%s','%s')",
'UTILISATEURS', $couleur1, $couleur2, $couleur3);
// Le code qui va créer ta requête: $sql = "select * from matable where id='$toto'"; // Affiche la requête sur ta page web Echo $sql;
select * from matable where id='10'
if(isHTMLColor($couleur1) && isHTMLColor($couleur2) && isHTMLColor($couleur3)){ //....... } // si les couleurs ne sont pas définie else { echo "Il n'y a rien à enregistrer."; // DEBUG :: on dump $_GET pour voir ce que notre form/ajax à envoyé à notre PHP if(DEBUG){ print('<pre style="border:1px solid #c00">'); print_r($_GET); print('</pre>'); }
// detecte les couleurs de format court #000 à #fff // et les couleurs format long #000000 à #ffffff
[zc1] => rgb(204, 102, 0) [zc2] => rgb(0, 204, 255) [zc3] => rgb(204, 102, 255)
if(isset($couleur1) && isset($couleur2) && isset($couleur3)){ // le reste du code..
$sql = "INSERT INTO UTILISATEURS (zonecouleur1,zonecouleur2, zonecouleur3) VALUES ('$couleur1', '$couleur2', '$couleur3') "; /* Avant de l'executer, histoire de voir si la requête est bonne Faisons un Echo de celle-ci ( tu pourras supprimer cette partie une fois que ton code fonctionnera correctement) */ Echo $sql;
#PATCH POUR LA TABLE UTILISATEUR ALTER TABLE 'UTILISATEURS' CHANGE 'zonecouleur1' 'zonecouleur1' VARCHAR(40) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, CHANGE 'zonecouleur2' 'zonecouleur2' VARCHAR(40) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, CHANGE 'zonecouleur3' 'zonecouleur3' VARCHAR(40) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL;
function ValidCSSColor($color){ /* detecte les chaines representation de couleurs au format CSS format court #RGB format long #RRGGBB fonction rgb rgb(0-255, 0-255, 0-255) avec ou sans espace après les virgules fonction rgba rgba(0-255, 0-255, 0-255, 0.0-1.0) avec ou sans espace après les virgules sans case sensitive, #ff = #FF, rgb() = RGB() */ return preg_match('/^#([a-f0-9]{3}){1,2}$/i',$color) || preg_match('/^rgb\( ?((((\d{1,2})|(1\d{1,2})|(2[0-4]\d{1})|(25[0-5]))), ?){2}'. '(((\d{1,2})|(1\d{1,2})|(2[0-4]\d{1})|(25[0-5]))){1} ?\)$/i', $color) || preg_match('/^rgba\( ?((((\d{1,2})|(1\d{1,2})|(2[0-4]\d{1})|(25[0-5]))), ?){3}'. '((0.\d{0,8})|(1(.0)?)){1} ?\)$/i', $color); }
// récupération des couleurs (note les paramètres GET court !) $couleur1 = isset($_GET['zc1']) ? $_GET['zc1'] : false; $couleur2 = isset($_GET['zc2']) ? $_GET['zc2'] : false; $couleur3 = isset($_GET['zc3']) ? $_GET['zc3'] : false; if(ValidCSSColor($couleur1) && ValidCSSColor($couleur2) && ValidCSSColor($couleur3)) {// si les couleurs sont valides /* on utilise toujours sprintf pour remplir les requêtes et on execute jamais une requête directement à la déclaration */ $sql = sprintf("INSERT INTO '%s' VALUES ('%s','%s','%s')", 'UTILISATEURS', $couleur1, $couleur2, $couleur3);
<form method="GET" action=""> <h3>Indiquez trois couleurs type CSS valides</h3> <p><label>zone couleur 1</label> <input type="text" name="zc1" maxlength="40" value="#000"/></p> <p><label>zone couleur 2</label> <input type="text" name="zc2" maxlength="40" value="#ffffff"/></p> <p><label>zone couleur 3</label> <input type="text" name="zc3" maxlength="40" value="rgb(0, 128, 190)"/></p> <hr> <p><input type="submit" value="Appliquer"/></p> </form>
$nom = "Marcel"; sprintf("bonjour %s !", $nom)
$nom = 57; sprintf("bonjour %s !", $nom);
<script src="js/class/users.class.js"></script> </head> <body> <div id="user_result"></div> <div id="user_form_content"> <form id="user_form"> <div id="user_add_msg"></div> <input type="hidden" name="adduser" value="1"/> <p><input type="text" maxlength="16" name="username" value="" placeholder="Nom de l'utilisateur"/></p> <p><input type="password" maxlength="32" name="password" value="" placeholder="Mot de passe"/></p> <p><input type="password" maxlength="32" name="passcheck" value="" placeholder="Confirmation"/></p> <p><input type="button" id="btn_user_form_add" value="Ajouter l'utilisateur"/></p> </form> </div> <content style="display:none;width:0;height:0;"> <div id="msg_user_list_fail"> <p class="msg warning">Pas d'utilisateurs dans la base.</p> </div> <div id="msg_user_list_error"> <p class="msg error">Une erreur s'est produite dans l'appel des données demandées.</p> </div> <div id="msg_user_add_success"> <p class="msg success">Utilisateur ajouté.</p> </div> <div id="msg_user_add_fail"> <p class="msg warning">Echec de l'enregistrement de l'utilisateur</p> </div> <div id="msg_user_add_error"> <p class="msg error">Une erreur s'est produite dans l'appel des données demandées.</p> </div> </content>
/* users.class.js */ var Users = { list : function(){ $.ajax({ type:"GET", url:"actions/users.php", success:function(result) { if(result == '0') { $('#users_result').html( $('#msg_user_list_fail').html() ); } else { $('#users_result').html(result); } }, error:function() { $('#users_result').html( $('#msg_user_list_error').html() ); } }); }, add : function(){ $.ajax({ type:"POST", url:"actions/users.php", data:$('#user_form').serialize(), success:function(result) { if(result == '1') { $('#user_add_msg').html( $('#msg_user_add_success').html() ); Users.list(); } else if(result == '0') { $('#user_add_msg').html( $('#msg_user_add_fail').html() ); } else { $('#user_add_msg').html( $('#msg_user_add_error').html() ); } }, error:function() { $('#user_add_msg').html( $('#msg_user_add_error').html() ); } }); } } $(document).ready(function(){ $('#btn_user_form_add').on('click', function(){ Users.add(); }); Users.list(); });
<?php /* actions/users.php */ require_once("../config/settings.inc.php"); require_once("../class/database.class.php"); require_once("../class/tools.class.php"); require_once("../class/users.class.php"); if(Tools::PostCheck('adduser', 'username', 'password')) { if(Tools::PostValue('password') !== Tools::PostValue('passcheck')) { exit(string '0'); } $sql = sprintf(" INSERT INTO bm_users VALUES(NULL, '%s','%s','%s') ", Tools::PostValue('username', vlESCAPE), Tools::PostValue('password', vlCRYPTED128), Tools::PostValue('passcheck', vlHASH) ); if($DB->query($sql)) { exit(string '1'); } else { exit(string '0'); } } else { $sql = "SELECT id_user, username FROM bm_users"; if($result = $DB->query($sql)) { echo '<ul id="userlist">'; while($row = $result->fetch_assoc) { echo '<li id="user_', $row['id_user'], '">', '<span>', Tools::Unescape( $row['username'] ), '</span>', '</li>'; } echo '</ul>'; $result->free(); } else { exit(string '0'); } } ?>