Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/01/2011, 15h45   #1
Invité de passage
 
Inscription : décembre 2008
Messages : 3
Détails du profil
Informations forums :
Inscription : décembre 2008
Messages : 3
Points : 0
Points : 0
Par défaut Problème formulaire PHP/SQL

Bonjour à tous,
J'ai besoin de votre lumière pour m'éclairer un peu ^^
Je vous explique, je souhaite créer un script qui me permette de modifier une donnée dans ma base SQL.
En théorie, rien de bien compliqué, mais en pratique je bloque sur ce coup là.

La subtilité est que le formulaire de modif doit contenir du html ( par conséquent, la table SQL aussi ).

Je vous donnes le bout de code ou je bloque ça sera plus simple ;
L'appel de mes variables;
Code :
1
2
3
4
5
$titre = htmlentities($_POST['titre']);
$datedeb = mysql_real_escape_string($_POST['datedeb']);
$datefin = mysql_real_escape_string($_POST['datefin']);
$corp = htmlentities($_POST['corp']);
$img = mysql_real_escape_string($_POST['img']);
Ma requête SQL ;
Code :
UPDATE $table SET `titre` = '".$titre."', `corp` = '".$corp."', `datedeb` = '".$datedeb."', `datefin` = '".$datefin."', `img` = '".$img."' WHERE `promos`.`ID` ='".$_GET['id']."'
Déjà, comme indiqué plus haut, le champ " corp " et " titre " doivent me retourner, lors d'un appel de la BDD dans une autre page, du code HTML brut (<b></b>, <i></i>, etc... ), donc un premier temps, les fonctions appliquées sur les chaines de caractère sont-elles correctes ou totalement fausses ?, quels sont les fonctions les plus adéquats dans un tel cas ?

Ensuite, le problème un peu plus important;
Lors de ma modif, malgré le fait que j'ai bien mon message de confirmation de modif, ainsi qu'un mysql_error() qui ne me retourne aucune erreur, aucune modification est faite sur la BDD, d'ou peut venir ce problème ?

Voilà, j'ai essayé d'être le plus clair possible dans mes explications :s

Merci d'avance pour vos réponses !

Cdt,
Maxou73 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2011, 16h04   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Si tu veux stocker du HTML, il ne faut pas utiliser htmlentities().

Pour ta requête, es-tu d'avoir un paramètre GET en plus de ton formulaire ?
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2011, 16h53   #3
Membre éclairé
 
Homme Jérémy
Étudiant
Inscription : octobre 2009
Messages : 236
Détails du profil
Informations personnelles :
Nom : Homme Jérémy
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : octobre 2009
Messages : 236
Points : 322
Points : 322
Bonjour à toi, pour tes chaînes je te conseille de créer une fonction qui t'évitera des oublis :
Code :
1
2
3
4
function protect($str)
	{
		return htmlentities(addslashes($str));
	}
Ensuite fait un echo de ta requête afin de vérifier si tes paramètres sont correctement envoyés et je te conseille si tu veut gérer une modification d'utiliser le même formulaire que pour l'ajout et d'y insérer les valeurs actuelle, pourrais tu par ailleurs nous montrer ton formulaire.
gwharl est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 27/01/2011, 17h38   #4
Invité de passage
 
Inscription : décembre 2008
Messages : 3
Détails du profil
Informations forums :
Inscription : décembre 2008
Messages : 3
Points : 0
Points : 0
@gwharl : Merci pour cette petite fonction je vais mettre ça en place , et le fait de mettre ajout/modif sur la même page j'y songeais justement

@sabotage : Impeccable, merci, mon problème venait en effet de mon GET, dans le formulaire j'avais complètement oublié de le renseigner, donc automatiquement, la requête était bonne mais l'ID introuvable

Par contre au vue de vos réponses, je n'ai pas bien compris, je doit utiliser htmlentities() pour stocker mon HTML ou non ? :s

De plus, après pour récupérer mon HTML sous forme "brut", quelle fonction est la plus adaptée ?
Maxou73 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2011, 18h12   #5
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Il ne faut pas utiliser htmlentities.
Et pour la requête, il faut utiliser mysql_real_escape_string() et non addslashes()
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 27/01/2011, 19h19   #6
Invité de passage
 
Inscription : décembre 2008
Messages : 3
Détails du profil
Informations forums :
Inscription : décembre 2008
Messages : 3
Points : 0
Points : 0
Ok super, tout est en ordre
Merci de votre aide !
Maxou73 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h29.


 
 
 
 
Partenaires

Hébergement Web