La Communauté Webmaster  forum rss


  Forum-webmaster
  Technique - programmation
  PHP / MySQL
(Modérateurs: Shain, Jey, erwinol, Lilian, lauryv, ToToMaStEr)
  [Résolu] Erreur de script (formulaire)
« Précédent Suivant »
Pages: [1] 2 Descendre
Répondre    Aviser des réponses    Envoyer le sujet    Imprimer
  Auteur  Sujet: [Résolu] Erreur de script (formulaire)  (Lu 1454 fois)
[Résolu] Erreur de script (formulaire)
« sur: le 07-08-2008 a 01:12:32 »
GoldRazor
P'tit nouveau
**

Hors-Ligne

Messages: 79





Voir le Profil
Répondre avec citation

Bonjour,

J'ai un petit problème avec mon formulaire.

Le probleme est le suivant, lorsque je clique sur une annonce pour la modifier, les formulaires se remplissent de leur données anciennes mais lorsque je fais une modifications, l'erreur "veuillez saisir une description" s'affiche et les champs sont vides alors que les données ont été modifié dans la bdd.

Si une âme charitable peut y jeter un coup d'oeil, j'implorerai le ciel pour que joie et volupté lui soit apporté :

Code:

<?php

$titre = $_POST["titre"];
$categorie = $_POST["categorie"];
$prix = $_POST["prix"];
$quantite = $_POST["quantite"];
$description = $_POST["description"];
$photo = $_POST["photo"];
$session_id2 = $_SESSION["id"];
$id = $_GET["act"];
$session_id = $utilisateurs->id;

          $affichform=true;
         
          if($_GET['act']){
         
          $affichform=false;
         
          //test titre
          if($_POST['titre']<>""){
          //test categorie
          if($_POST['categorie']<>""){     
          //test prix
          if($_POST['prix']<>""){     
          //test quantite
          if($_POST['quantite']<>""){
          //test description
          if($_POST['description']<>"");
         
         
$query= "UPDATE annonces SET titre='$titre', categorie='$categorie', prix=$prix, quantite=$quantite, description='$description', photo='$photo' WHERE id=$id AND nomembre=$utilisateurs->id";

mysql_query ($query);
         
if($utilisateur=mysql_fetch_object(mysql_query("SELECT * FROM `membres` WHERE `email`='".$_SESSION['email']."'"))){
     
$erreur="<center>F&eacute;licitation, votre annonce a bien &eacute;t&eacute; modifi&eacute;e.</center>";

         
          // fin test description
          } else {$erreur="Erreur : Veuillez saisir une description";$affichform=true;}   
          // fin test quantite
          } else {$erreur="Erreur : Veuillez saisir la quantite";$affichform=true;}   
          // fin test prix
          } else {$erreur="Erreur : Veuillez saisir le prix";$affichform=true;}   
          // fin categorie
          } else {$erreur="Erreur : Veuillez saisir la catégorie";$affichform=true;}   
          // fin test titre
          } else {$erreur="Erreur : Veuillez saisir un titre d'annonce";$affichform=true;}
         
          }
         
          ?>

<?php
echo $erreur; 
if($affichform==true){
?>

<?php
$lot=mysql_fetch_object(mysql_query("SELECT * FROM annonces WHERE id='".$_GET['id']."' AND nomembre=$utilisateurs->id"));
?>

<form action="modif_annonces.php?act=<?php echo $lot->id; ?>" method="post" name="form1" id="form1"> ....


Si jamais vous voyez une explication, n'hésitez pas, merci.

« Dernière Édition: le 14-08-2008 a 19:14:22 par ToToMaStEr » Rapporter au modérateur  

Re:Erreur de script (formulaire)
« Répondre #1 sur: le 08-08-2008 a 13:09:49 »
GoldRazor
P'tit nouveau
**

Hors-Ligne

Messages: 79





Voir le Profil
Répondre avec citation

Personne ne semble avoir une idée ?

Rapporter au modérateur  
Re:Erreur de script (formulaire)
« Répondre #2 sur: le 08-08-2008 a 22:45:56 »
pppplus
Habitué
***

Hors-Ligne

Messages: 482



php / mysql

Voir le Profil    WWW
Répondre avec citation

1- refaire le script avec moins de if else imbirqués

=> exemple : tester les conditions les unes après les autres.
if($lacondition!='montest_ok')$erreur.="message d'erreur lacondition";
idem pour toutes les conditions à la suite

Et juste avant d'envoyer à la bdd, vérifier si $erreur est vide ou pas.
if($erreur=="") j'envoie à la bdd et j'arrête mon script
else echo $erreur;

2- je pense qu'après validation de votre site et envoie à la bdd, le script recommence à vérifier les conditions, mais il n'y a plus de données.

Rapporter au modérateur  

capsules rechargeables Dolce Gusto et Nespresso
jeux flash gratuits avec la plus grosse boutique cadeaux du net
Accessoires cuisine pratiques
Re:Erreur de script (formulaire)
« Répondre #3 sur: le 08-08-2008 a 23:38:42 »
Krash
P'tit nouveau
**

Hors-Ligne

Sexe: Male
Messages: 181





Voir le Profil    E-Mail
Répondre avec citation

Moi je vois plutot

Citation:
if($_POST['description']<>"");

remplaces le ; par un {

soit

Citation:
if($_POST['description']<>"") {

et ensuite tu rajoutes un } comme ici en rouge

Citation:
if($utilisateur=mysql_fetch_object(mysql_query("SELECT * FROM `membres` WHERE `email`='".$_SESSION['email']."'"))){
   
$erreur="<center>F&eacute;licitation, votre annonce a bien &eacute;t&eacute; modifi&eacute;e.</center>";

}

par contre étant donné que le message "Veuillez saisir une description" s'affiche, il semblerait que la condition

Citation:
if($utilisateur=mysql_fetch_object(mysql_query("SELECT * FROM `membres` WHERE `email`='".$_SESSION['email']."'")))

ne soit pas rempli, pour ca il faudrait plus d'infos

Rapporter au modérateur  
Re:Erreur de script (formulaire)
« Répondre #4 sur: le 10-08-2008 a 02:21:41 »
GoldRazor
P'tit nouveau
**

Hors-Ligne

Messages: 79





Voir le Profil
Répondre avec citation

Merci beaucoup pour vos precisions. Krash, j'ai suivi ton conseil, celui de mettre une accolade et donc les champs s'actualise avec les nouvelles données.

Par contre, j'ai un autre problème. Si je laisse un champ vide et que je valide, le message d'erreur approprié apparait mais les valeurs ne s'affiche plus, et donc les champs sont vides.

Rapporter au modérateur  
Re:Erreur de script (formulaire)
« Répondre #5 sur: le 10-08-2008 a 10:11:34 »
Krash
P'tit nouveau
**

Hors-Ligne

Sexe: Male
Messages: 181





Voir le Profil    E-Mail
Répondre avec citation

c'est possible de voir la suite de ton code ?

Rapporter au modérateur  
Re:Erreur de script (formulaire)
« Répondre #6 sur: le 10-08-2008 a 14:21:48 »
GoldRazor
P'tit nouveau
**

Hors-Ligne

Messages: 79





Voir le Profil
Répondre avec citation

Salut Krash, je te remercie grandement pour ton aide,

J'ai hebergé ma page pour que tu puisse y avoir accés, ca sera beaucoup plus clair que si je poste le code ici.

MP envoyé

Rapporter au modérateur  
Re:Erreur de script (formulaire)
« Répondre #7 sur: le 10-08-2008 a 14:34:29 »
Krash
P'tit nouveau
**

Hors-Ligne

Sexe: Male
Messages: 181





Voir le Profil    E-Mail
Répondre avec citation

Ok je vois

en fait s'il y a une erreur, le code suivant ne se lance pas.

Citation:
if($utilisateur=mysql_fetch_object(mysql_query("SELECT * FROM `membres` WHERE `email`='".$_SESSION['email']."'"))){
          $erreur="<center>F&eacute;licitation, votre annonce a été modifiée avec succès.<br><br> <a href=\"http://www.destock.biz/V2/moncompte.php\">Retour à votre espace membre</a></center>";
        }

donc $utilisateur n'existe pas et

Citation:
$lot=mysql_fetch_object(mysql_query("SELECT * FROM annonces WHERE id='".$_GET['id']."' AND nomembre=$utilisateurs->id"));

retourne une erreur car la condition nomembre=$utilisateurs->id" n'est pas vérifiée.

Il faudrait donc, si $affichform==true, initialiser la variable $utilisateur pour récupérer les infos correspondantes.

« Dernière Édition: le 10-08-2008 a 14:35:05 par Krash » Rapporter au modérateur  
Re:Erreur de script (formulaire)
« Répondre #8 sur: le 10-08-2008 a 14:40:37 »
GoldRazor
P'tit nouveau
**

Hors-Ligne

Messages: 79





Voir le Profil
Répondre avec citation

hum okay merci, je vais essayer de voir ça  , ca promet

« Dernière Édition: le 10-08-2008 a 14:41:13 par GoldRazor » Rapporter au modérateur  
Re:Erreur de script (formulaire)
« Répondre #9 sur: le 10-08-2008 a 14:43:31 »
Krash
P'tit nouveau
**

Hors-Ligne

Sexe: Male
Messages: 181





Voir le Profil    E-Mail
Répondre avec citation

ah nan attends je vais revoir car les autres fois c'est utilisateurs alors que l'autre c'est $utilisateur

Rapporter au modérateur  
Re:Erreur de script (formulaire)
« Répondre #10 sur: le 10-08-2008 a 14:51:13 »
Krash
P'tit nouveau
**

Hors-Ligne

Sexe: Male
Messages: 181





Voir le Profil    E-Mail
Répondre avec citation

mais en fait tu veux faire quoi ?
Tu veux récupérer des données que la personne avait déjà entrée ultérieurement ou récupérer les données correctes entrées avant validation du formulaire et affichage de l'erreur car dans ce cas au lieu de mettre
Citation:
<input name="titre" type="text" id="titre" size="50" maxlength="60" value="<?php echo $lot->titre; ?>">

tu mets plutot
Citation:
<input name="titre" type="text" id="titre" size="50" maxlength="60" value="<?php echo $titre; ?>">

etc pour les autres champs

Rapporter au modérateur  
Re:Erreur de script (formulaire)
« Répondre #11 sur: le 10-08-2008 a 14:58:06 »
GoldRazor
P'tit nouveau
**

Hors-Ligne

Messages: 79





Voir le Profil
Répondre avec citation

Je voudrais "récupérer les données correctes entrées avant validation du formulaire et affichage de l'erreur"

Je vais voir si ta solution fonctionne.

Merci

Rapporter au modérateur  
Re:Erreur de script (formulaire)
« Répondre #12 sur: le 10-08-2008 a 15:15:54 »
GoldRazor
P'tit nouveau
**

Hors-Ligne

Messages: 79





Voir le Profil
Répondre avec citation

non ca fonctionne pas, car au premier chargement de la page, ya aucune valeur dans les champs, et après validation, il y a certe les nouvelles valeurs qui remplissent les champs mais ca les change pas dans la bdd et normallement il devrait y avoir le message suivant "Félicitation, votre annonce a été modifiée avec succés"

Je vais continuer à plancher dessus, mais en tout cas, merci pour ta contribution, c'est trés gentil 

Rapporter au modérateur  
Re:Erreur de script (formulaire)
« Répondre #13 sur: le 10-08-2008 a 15:23:43 »
Krash
P'tit nouveau
**

Hors-Ligne

Sexe: Male
Messages: 181





Voir le Profil    E-Mail
Répondre avec citation

ligne 295 à 302

remplaces

Citation:
$titre = $_POST["titre"];
$categorie = $_POST["categorie"];
$prix = $_POST["prix"];
$quantite = $_POST["quantite"];
$description = $_POST["description"];
$photo = $_POST["photo"];
$session_id = $_SESSION["id"];
$id = $_GET["act"];

par

Citation:
$titre = (isset($_POST["titre"])) ? $_POST["titre"] : $utilisateurs->titre;
$categorie = (isset($_POST["categorie "])) ? $_POST["categorie "] : $utilisateurs->categorie ;
$prix = (isset($_POST["prix "])) ? $_POST["prix "] : $utilisateurs->prix ;
$quantite = (isset($_POST["quantite "])) ? $_POST["quantite "] : $utilisateurs->quantite ;
$description = (isset($_POST["description "])) ? $_POST["description "] : $utilisateurs->description ;
$photo = (isset($_POST["photo"])) ? $_POST["photo"] : $utilisateurs->photo;
$session_id = $_SESSION["id"];
$id = $_GET["act"];

Rapporter au modérateur  
Re:Erreur de script (formulaire)
« Répondre #14 sur: le 10-08-2008 a 15:40:51 »
GoldRazor
P'tit nouveau
**

Hors-Ligne

Messages: 79





Voir le Profil
Répondre avec citation

ALELOUIIAAAAAAAAAAA ALLEELOUIAAAAAAAAAAA 

Merciiiiiiiiiii !!!!!!!!!! JE VOUS AIME  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 

T'es vraiment un pro ! Ça fonctionne nikel ! Longue vie à Krash ! Merci beaucoup

Rapporter au modérateur  
Répondre    Aviser des réponses    Envoyer le sujet    Imprimer
Pages: [1] 2 Monter
« Précédent Suivant »
Sauter à: 

Votre statut : Invité
Vous devez être membre pour participer.
 
 
Let’s Encrypt : le certificat SSL gratuit
Tester votre site internet sur différents navigateurs
[WordPress] Des problèmes avec l’administration ?
Rappel : Mettez à jour vos CMS et vos sites E-commerce
Le .fr fête ses 25 années d’existence !
Mesurer votre audience en temps réel avec BubbleStat
Porter réclamation contre Google Panda ?
Zlio n’est plus …
 
 
 
 
 

Copyright (c) Devclic 2002 - 2026 - Tous droits réservés

creation site internet strasbourg