Problème d'accolades dans un if ?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème d'accolades dans un if ?

par Truc » 11 juil. 2006, 22:12

je ne me suis servi de ce truc que très peu de temps et pas par choix
Moi j'ai choisi d'arrêter ce truc :langue:

par 2501gigi » 11 juil. 2006, 20:18

Bon voila j'ai résolu mon probleme merci à tous pour votre aide. :lol:

par 2501gigi » 11 juil. 2006, 19:24

j'ai trouve rechecher/remplacer je ne connaisser pas merci Bravo.

Mais bon ca ne me regle pas mon plus gros probleme.

par Cyrano » 11 juil. 2006, 19:21

Je ne connais pas DW, je ne me suis servi de ce truc que très peu de temps et pas par choix, je ne l'ai jamais ré-installé depuis, mais je sais que WebExpert permet de faire ça très facilement.

par 2501gigi » 11 juil. 2006, 19:14

C'est dreamweaver mx .
ca se trouve où ?

par Cyrano » 11 juil. 2006, 19:12

Certains éditeurs permettent de faire un "Rechercher/Remplacer dans les fichiers" qui pourrait accélérer notablement l'opération... Vérifie dans ton propre éditeur.

par Invité » 11 juil. 2006, 19:09

Pour le $HTTP_POST_VARS[] et $_POST[] je sais c'est une erreur mais je sais que les deux marche donc je mettrais tout en $_POST[] plus tard.

par 2501gigi » 11 juil. 2006, 19:07

Voila j'ai enlevé le if n°5 et j'ai fermé le if 4 il n'y à plus l'erreur ais il ne me verifie pas si les champs sont vident enfin tout au moin il pas a la page que j'ai mis dans header sans verifier les champs. que je coche la case idem ou pas.

par albat » 11 juil. 2006, 19:04

Pourquoi utilises-tu alternativement $HTTP_POST_VARS[] et $_POST[] ? :shock:

par 2501gigi » 11 juil. 2006, 18:59

Merci Ryle alors pour le code avant ca c'est juste une initialisation des variables j'ai deja teste et il ne manque rien

Apres la ligne 375 c'est la fin de mon code il n'y a rein c'est la fin du html

<?php require_once('../Connections/ConnexionBoutmoran.php'); ?>
<?php session_start(); ?>
<?php

 
    if (!isset($HTTP_POST_VARS['nom'] )) $nom=""; else $nom=$HTTP_POST_VARS['nom'];   
	if (!isset($HTTP_POST_VARS['prenom'] )) $prenom="" ; else $prenom=$HTTP_POST_VARS['prenom'];
	if (!isset($HTTP_POST_VARS['adresse'] )) $adresse=""; else $adresse=$HTTP_POST_VARS['adresse'];
	if (!isset($_POST['cp'] )) $cp=""; else $cp=$_POST['cp'];
	if (!isset($HTTP_POST_VARS['ville'] )) $ville=""; else $ville=$HTTP_POST_VARS['ville'];
	if (!isset($HTTP_POST_VARS['tel'] )) $tel=""; else $tel=$HTTP_POST_VARS['tel'];
	if (!isset($HTTP_POST_VARS['mail'] )) $mail=""; else $mail=$HTTP_POST_VARS['mail'];
	if (!isset($HTTP_POST_VARS['action'])) $action=""; else $action = $HTTP_POST_VARS['action'];
	if (!isset($HTTP_POST_VARS['idemA'])) $idemA=""; else $idemA = $HTTP_POST_VARS['idemA'];
	if (!isset($HTTP_POST_VARS['nomf'] )) $nomf=""; else $nomf=$HTTP_POST_VARS['nomf'];   
	if (!isset($HTTP_POST_VARS['prenomf'] )) $prenomf="" ; else $prenomf=$HTTP_POST_VARS['prenomf'];
	if (!isset($HTTP_POST_VARS['adressef'] )) $adressef=""; else $adressef=$HTTP_POST_VARS['adressef'];
	if (!isset($_POST['cpf'] )) $cpf=""; else $cpf=$_POST['cpf'];
	if (!isset($HTTP_POST_VARS['villef'] )) $villef=""; else $villef=$HTTP_POST_VARS['villef'];
	if (!isset($HTTP_POST_VARS['telf'] )) $telf=""; else $telf=$HTTP_POST_VARS['telf'];
	if (!isset($HTTP_POST_VARS['mailf'] )) $mailf=""; else $mailf=$HTTP_POST_VARS['mailf'];
	if (!isset($HTTP_POST_VARS['rdbmadame'] )) $rdbmadame=""; else $rdbmadame=$HTTP_POST_VARS['rdbmadame'];
	if (!isset($HTTP_POST_VARS['rdbmade'] )) $rdbmade=""; else $rdbmade=$HTTP_POST_VARS['rdbmade'];
	if (!isset($HTTP_POST_VARS['rdbmons'] )) $rdbmons=""; else $rdbmons=$HTTP_POST_VARS['rdbmons'];
	if (!isset($_SESSION['totalc'])) $totalc=0; else $totalc=$_SESSION['totalc'];
	if (!isset($_SESSION['liste'])) $liste[]=array(0,"VIDE",0,1,0); else $liste=$_SESSION['liste'];
	if (!isset($_POST['texad'] )) $textad="";
	if (!isset($_POST['texad2'] )) $textad2=""; 

Voila se qui precède le if ($action=="soumi")


</table>
<p>&nbsp;</p>
</body>
</html>
la ligne 375 elle est là.


Et pour le else 4 et 5 je verifi et je te dis

par Ryle » 11 juil. 2006, 17:52

C'est laquelle la ligne 375 ??
est-ce qu'il ne te manquerait pas un point-virgule, une acolède, une parenthèse ou une guillemet dans les lignes qui précèdent ?

Sinon je me suis permis de complètement réindenter ton code et de découper quelques chaines pour te montrer que c'est quand même plus lisible ainsi :
if ($action=="soumi") {//1 
	if ($idemA=="IDEM") {//2 
		if (empty($nom) || empty($prenom) || empty($adresse) || empty($cp) 
			|| empty($ville) || empty($tel) || empty($mail)) {
			$textad=  "Le champ n'est pas rempli."; 
		} 
		else {//3 
			mysql_select_db ($database_ConnexionBoutmoran,$ConnexionBoutmoran); 
			$insertSQL = "INSERT INTO bdadresliv (nom,prenom,adresse,cp,ville,tel,mail) ";
			$insertSQL.= " VALUES ('$nom','$prenom','$adresse','$cp','$ville','$tel','$mail')"; 
			$Resultl = mysql_query ($insertSQL,$ConnexionBoutmoran) or die(mysql_error()); 
			$insertSQL2 = "INSERT INTO bdadresfac (nomfac,prenomfac,adressefac,cpfac,villefac,telfac,mailfac) ";
			$insertSQL2.= " VALUES ('$nom','$prenom','$adresse','$cp','$ville','$tel','$mail')"; 
			$Resultl2 = mysql_query ($insertSQL2,$ConnexionBoutmoran) or die(mysql_error()); 
		}//3 
	}//2 
	else {//4 
		if ($idemA!="IDEM") {//5 
			if(empty($nom) || empty($prenom) || empty($adresse) || empty($cp) 
				|| empty($ville) || empty($tel) || empty($mail) || empty($nomf) 
				|| empty($prenomf) || empty($adressef) || empty($cpf) || empty($villef) 
				|| empty($telf) || empty($mailf)) {
				$textad=  "Le champ n'est pas rempli."; 
				$textad2=  "Le champ n'est pas rempli.";
			} 
			else {//6 
				mysql_select_db ($database_ConnexionBoutmoran,$ConnexionBoutmoran); 
				$insertSQL = "INSERT INTO bdadresliv (nom,prenom,adresse,cp,ville,tel,mail) ";
				$insertSQL.= " VALUES ('$nom','$prenom','$adresse','$cp','$ville','$tel','$mail')"; 
				$Resultl = mysql_query ($insertSQL,$ConnexionBoutmoran) or die(mysql_error()); 
				$insertSQL3 = "INSERT INTO bdadresfac (nomfac,prenomfac,adressefac,cpfac,villefac,telfac,mailfac) ";
				$insertSQL3.= " VALUES ('$nomf','$prenomf','$adressef','$cpf','$villef','$telf','$mailf')"; 
				$Resultl3 = mysql_query ($insertSQL3,$ConnexionBoutmoran) or die(mysql_error()); 
			}//6 
		}//5         



		// le reste du code pour plus de clarté 

		if ($rdbmadame == "radmad") { 
			$_SESSION['etat_civil']="Madame"; 
		} elseif ($rdbmade == "radmade") { 
			$_SESSION ['etat_civil'] = "Mademoiselle"; 
		} elseif ($rdbmons == "radmons") { 
			$_SESSION['etat_civil']="Monsieur"; 
		} 

		$clientID=mysql_insert_id(); 
		$HTTP_SESSION_VARS['clientID']= $clientID; 
		
		mysql_select_db ($database_ConnexionBoutmoran,$ConnexionBoutmoran); 
		$insertSQL4 = "INSERT INTO bdcommande(clientID,date,totalcom) ";
		$insertSQL4.= " VALUES ('$clientID',NOW(),'$totalc')"; 
		$Resultl4 = mysql_query ($insertSQL4,$ConnexionBoutmoran) or die(mysql_error()); 
		
		for ($i=0;$i<count($liste);$i++) { 
			$clientCID= $clientID; 
			$nomArti=$liste[$i][1]; 
			$prixUni=$liste[$i][2]; 
			$Qu=$liste[$i][3]; 
			$prixArti=$liste[$i][4]; 
			mysql_select_db ($database_ConnexionBoutmoran,$ConnexionBoutmoran); 
			$insertListe = "INSERT INTO bdpanier (clientCID,nomArti,prixUni,Qu,prixArti) ";
			$insertListe.= " VALUES ('$clientCID','$nomArti', '$prixUni','$Qu','$prixArti')"; 
			$Result5 = mysql_query($insertListe, $ConnexionBoutmoran) or die(mysql_error()); 
		} 

		header("Location: ../PHPcommande/CatalogueRecapcommande.php"); 
		// Fin du reste du code pour plus de clarté  
	  
	  
	  
}//1 
On voit par exemple que ton else (n°4) n'est pas fermé.. est ce parce qu'il manque du code ou bien la parse error viendrait elle de là ?

de même ton if (n°5) ne sert à rien, si tu es dans le else (n°4), c'est parce que tu n'es pas rentré dans le if($idemA=="IDEM") et par conséquent que $idemA est forcément différent de "IDEM" :)

par 2501gigi » 11 juil. 2006, 17:11

Bon j'ai mal du m'expliquer tout d'abord je vous explique la page c'esr un formulaire contenant :

-au debut 3 checkbox
-puis la moitier pour l'adresse de livraison
-Si meme adresse de facturation que celle de livraison une checkbox.
-Puis si se n'est pas la meme la suite du formulaire avec l'edresse de facturation.

Tous cela sur la meme page.Bon voila pour le descriptif de la page.

Maintenant ce que je veut faire.

Quand on appuis sur le bouton pour soumettre le formulaire je veut qu'il verifi si les champs sont vide selon le choix de l'utilisateur c'est à dire.


Si l'utili rentre l'adresse de livraison puis qu'il coche la case cela verifi les champs nom prenom etc puis sa enregistre dans la base de donné si les champs ne sont pas vident ainsi que l'adresse de facturation mais avec les données de l'adresse de livraison.

2 ieme posibilite il entre l'adresse de livraison puis comme différente l'adresse de facturation et cela ferifi les 2 puis si les champs ne sont pas vident sa enregistre dans bdd.

Voila mon code eu peut arrengé mais j'ai une erreur

Parse error: parse error, unexpected $end in c:\program files\easyphp1-7\www\boutmoran2\phpformulaire\catalogueadresse.php on line 375

	
if ($action=="soumi")
	{//1
	 if ($idemA=="IDEM")
     {//2
	    if (empty($nom) || empty($prenom) || empty($adresse) || empty($cp) || empty($ville) || empty($tel) || empty($mail))
	    {$textad=  "Le champ n'est pas rempli."; }
	    else 
	    {//3
	    mysql_select_db ($database_ConnexionBoutmoran,$ConnexionBoutmoran);
	    $insertSQL = "INSERT INTO bdadresliv (nom,prenom,adresse,cp,ville,tel,mail) VALUES ('$nom','$prenom','$adresse','$cp','$ville','$tel','$mail')";
	    $Resultl = mysql_query ($insertSQL,$ConnexionBoutmoran) or die(mysql_error()); 
	    $insertSQL2 = "INSERT INTO bdadresfac (nomfac,prenomfac,adressefac,cpfac,villefac,telfac,mailfac) VALUES ('$nom','$prenom','$adresse','$cp','$ville','$tel','$mail')";
	    $Resultl2 = mysql_query ($insertSQL2,$ConnexionBoutmoran) or die(mysql_error()); 
		}//3
	 }//2
    else
    {//4
	 if ($idemA!="IDEM")
	 {//5
	    if(empty($nom) || empty($prenom) || empty($adresse) || empty($cp) || empty($ville) || empty($tel) || empty($mail) || empty($nomf) || empty($prenomf) || empty($adressef) || empty($cpf) || empty($villef) || empty($telf) || empty($mailf))
	    {$textad=  "Le champ n'est pas rempli."; $textad2=  "Le champ n'est pas rempli.";}
	    else 
	    {//6
	    mysql_select_db ($database_ConnexionBoutmoran,$ConnexionBoutmoran);
	    $insertSQL = "INSERT INTO bdadresliv (nom,prenom,adresse,cp,ville,tel,mail) VALUES ('$nom','$prenom','$adresse','$cp','$ville','$tel','$mail')";
	    $Resultl = mysql_query ($insertSQL,$ConnexionBoutmoran) or die(mysql_error()); 
	    $insertSQL3 = "INSERT INTO bdadresfac (nomfac,prenomfac,adressefac,cpfac,villefac,telfac,mailfac) VALUES ('$nomf','$prenomf','$adressef','$cpf','$villef','$telf','$mailf')";
	    $Resultl3 = mysql_query ($insertSQL3,$ConnexionBoutmoran) or die(mysql_error()); 
		}//6
     }//5		
	
	// le reste du code pour plus de clarté 
	if ($rdbmadame == "radmad") {
	$_SESSION['etat_civil']="Madame";
	} elseif ($rdbmade == "radmade") {
	$_SESSION ['etat_civil'] = "Mademoiselle";
	} elseif ($rdbmons == "radmons") {
	$_SESSION['etat_civil']="Monsieur";
	}
	
	
	$clientID=mysql_insert_id();
	$HTTP_SESSION_VARS['clientID']= $clientID;
	
	mysql_select_db ($database_ConnexionBoutmoran,$ConnexionBoutmoran);
	$insertSQL4 = "INSERT INTO bdcommande(clientID,date,totalcom) VALUES ('$clientID',NOW(),'$totalc')";
	$Resultl4 = mysql_query ($insertSQL4,$ConnexionBoutmoran) or die(mysql_error());
	
	for ($i=0;$i<count($liste);$i++)
		{
		$clientCID= $clientID;
		$nomArti=$liste[$i][1];
		$prixUni=$liste[$i][2];
		$Qu=$liste[$i][3];
		$prixArti=$liste[$i][4];
		mysql_select_db ($database_ConnexionBoutmoran,$ConnexionBoutmoran);
		$insertListe = "INSERT INTO bdpanier (clientCID,nomArti,prixUni,Qu,prixArti) VALUES ('$clientCID','$nomArti', '$prixUni','$Qu','$prixArti')";
		$Result5 = mysql_query($insertListe, $ConnexionBoutmoran) or die(mysql_error()); 
		}
	
	
	header("Location: ../PHPcommande/CatalogueRecapcommande.php");
	// Fin du reste du code pour plus de clarté   
	}//1
[/php]

par Invité » 10 juil. 2006, 19:15

Merci ta methode est pas mal.

Je vais essaye.

par Ryle » 10 juil. 2006, 09:59

Au lieu de les aligner et de les compter avec des //1 //2 etc. indente ton code : à chaque fois que tu ouvres une accolade, tu décales tout le code qu'elle contient d'une tabulation :
if () {
   if() {
      for (;;) {
         // ...
      }
   }
   elseif {
      // ...
   }
   else {
      if() {
         // ...
      }
   }
}
Tu verras beaucoup plus clairement si elles sont équilibrées, il suffit de regarder en colonne s'il y a une accolade fermante située au même niveau :)

par Invité » 09 juil. 2006, 00:12

merci et encore desolé et merci à toi marvlt je vais essayer