goldrazor06 Posté 25 Juin 2007 Posté 25 Juin 2007 (modifié) Bonjour tout le monde, J'ai un probleme avec un formulaire. J'ai créé une page qui permet de récuperer des valeurs dans une base mysql pour les injecter dans les cases d'un formulaire. Donc jusque là, c'est impecable, tout fonctionne. Mais le problème intervient lorsque je souhaite valider les nouvelles informations. J'ai beau remplir la case 'titre' mais à chaque fois ca m'affiche l'erreur ==> la case doit etre rempli. Voyez vous une erreur flagrante ? Code: if ($_REQUEST['enregistre'] =='oui'){if (empty($_POST['titre']))die("Erreur : Tous les champs doivent être remplis.");$sql = "UPDATE concours SET ........mysql_query ($sql);echo ("Changement effectué");}<form action="edit_concours.php" method="POST" ><input type ="hidden" name="enregistre" value="oui" /><input type="hidden" name="edit_concours" value="<?php echo $_POST['edit_concours']; ?>" /><input name="titre" type="text" id="titre" value="<?php echo $concours->titre; ?>"><input type="submit" name="Submit" value="Modifier le concours"></form> Merci beaucoup parce que j'ai essayé de chercher jusqu'a 5h du mat et la je viens de me reveiller et j'arrive toujours pas. Encore merci. ----------------------------------------------------------------------------------------------------------------------------------------------------- Ha apparemment ca l'air de passer puisque ca m'affiche le message "changement effectué". Mais malheureusement les données reste inchangé dans la base, ca doit etre une erreur au niveau de la requete sql. Code: $sql = "UPDATE concours SET titre='".$_POST['titre']."' "." WHERE id = '".$_REQUEST['edit_concours']."'";mysql_query ($sql);echo ("Changement effectué"); Merci beaucoup ! Modifié 25 Juin 2007 par goldrazor06
Himself Posté 25 Juin 2007 Posté 25 Juin 2007 (modifié) Si tu ne met pas d'acolades à ta condition... if (empty($_POST['titre'])) {die("Erreur : Tous les champs doivent être remplis.");} else $sql = "UPDATE concours SET ........mysql_query ($sql);echo ("Changement effectué"); Modifié 25 Juin 2007 par Him
goldrazor06 Posté 25 Juin 2007 Auteur Posté 25 Juin 2007 (modifié) Salut, m merci pour ta rapidité mais malheureusement ta technique injecte automatiquement des données vides dans la table sans que je puisse avoir recours au formulaire. C'est a dire que ya directement le message "changement effectué" qui s'affiche. Si tu penses avoir une idée n'hesite pas, merci Modifié 25 Juin 2007 par goldrazor06
goldrazor06 Posté 25 Juin 2007 Auteur Posté 25 Juin 2007 Voici plus de precision sur mon code : <?phpbla blaif ($_REQUEST['enregistre'] =='oui'){if (empty($_POST['titre'])) die("Erreur : Tous les titre doivent être remplis.");if (empty($_POST['titre_page'])) die("Erreur : Tous les titre_page doivent être remplis.");$sql = "UPDATE concours SET titre='".$_POST['titre']."', "."titre_page='".$_POST['titre_page']."' "." WHERE id = '".$_REQUEST['edit_concours']."'";mysql_query ($sql);echo ("Changement effectué");?><form action="edit_concours.php" method="POST" ><input type ="hidden" name="enregistre" value="oui" /><input type="hidden" name="edit_concours" value="<?php echo $_POST['edit_concours']; ?>" /><input name="titre" type="text" id="titre" value="<?php echo $concours->titre; ?>"><input name="titre-page" type="text" id="titre_page" value="<?php echo $concours->titre_page; ?>"><input type="submit" name="Submit" value="valider"></form> Le probleme intervient lorsque je clique sur "valider", ca me change aucune info dans ma base. Pitiez aidez moi LOL Merci !
KaRaK Posté 25 Juin 2007 Posté 25 Juin 2007 (modifié) Bonsoir, Pour trouver ton probleme, dans un premier temps, tu peux : - Afficher le contenu de $sql - Afficher le contenu de $_POST['edit_concours'] - Afficher le contenu de $concours->titre; Afin de t'assurer qu'ils contiennent bien ce que tu veux Si c'est OK alors tu peux modifier ta ligne : mysql_query ($sql); en (par exemple) : $req = mysql_query($sql) or die('Erreur SQL ! '.$sql.' '.mysql_error()); Cela te permettra d'afficher une éventuelle erreur SQL. Bon courage Modifié 25 Juin 2007 par KaRaK
goldrazor06 Posté 25 Juin 2007 Auteur Posté 25 Juin 2007 Merci beaucoup Karak pour ta reponse, Je vais faire ce que tu m'a dis, bonne courage à toi aussi. +++
goldrazor06 Posté 25 Juin 2007 Auteur Posté 25 Juin 2007 (modifié) Ça marche !!!!!! Alleluia !!! Je vous aime tous !!!!!! Merci beaucoup Karak et Him pour vos conseils !!!!!!!!!!!!!!!!!!!!!!!!! Bonne continuation ! Modifié 25 Juin 2007 par Dudu Pas la peine de HURLER, non plus ;-)
Himself Posté 25 Juin 2007 Posté 25 Juin 2007 pour parer l'insertion de champs vide, bases toi plus tot sur un !empty
Nanane Posté 26 Juin 2007 Posté 26 Juin 2007 (modifié) Bonjour, Personnellement pour eviter ce genre de problemes, je fais des requetes directement sur la base de données ou avec l'aide d'une interface style phpmyadmin. Comme ca je vois exactement la tete de la requete, je copie colle et je place mes variables dedans... ca marche tres bien jusque la et ca evite de faire des tests de partout dans les scripts pour voir Le probleme etant que parfois les interfaces rajoutent des parametres automatiquement aux requetes... mais a la fin on s'habitue Modifié 26 Juin 2007 par Nanane
captain_torche Posté 26 Juin 2007 Posté 26 Juin 2007 Par contre, ce qui est dommage, c'est que lors d'une erreur (champ non rempli), tu effectues un die(), qui empêche de recommencer, à moins de revenir en arrière via le navigateur. Pourquoi ne pas enregistrer l'erreur, ne pas traiter l'envoi, et réafficher le formulaire contenant déjà les infos entrées, ainsi que le message d'erreur ? Ca simplifierait de beaucoup la tâche de tes internautes.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant