IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Tableaux] Optimisation de code


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Developpeur
    Inscrit en
    Septembre 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Septembre 2004
    Messages : 114
    Points : 43
    Points
    43
    Par défaut [Tableaux] Optimisation de code
    Bonjour,

    Voilà je suis toujours a la recherche du meilleur code possible pour la gestion de mes formulaires et l'affichage de ma page.

    Pour le moment mon formulaire contient un champ posted (valeur "ok") qui est envoyé quand le formulaire est posté, je fais mes verifications avant le formulaire, si y a pas d'erreur on affiche un message de confirmation sinon on reaffiche le formulaire avec les valeurs préremplies.

    Là je veux gérer aussi l'upload des photos, voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
     
    ...
    if($posted=="ok"){
     
    	// Déclaration des variables 
    	if (isset($_POST['civilite'])) $civilite = $_POST['civilite']; else $civilite="";
    	if (isset($_POST['nom'])) $nom = $_POST['nom']; else $nom="";
    	if (isset($_POST['prenom'])) $prenom = $_POST['prenom']; else $prenom="";
    	if (isset($_POST['nom_artiste'])) $nom_artiste = $_POST['nom_artiste']; else $nom_artiste="";
    	if (isset($_POST['email'])) $email = $_POST['email']; else $email="";
    	if (isset($_POST['age'])) $age = $_POST['age']; else $age="";
    	if (isset($_POST['taille'])) $taille = $_POST['taille']; else $taille="";
    	if (isset($_POST['poids'])) $poids = $_POST['poids']; else $poids="";
    	if (isset($_POST['tel'])) $tel = $_POST['tel']; else $tel="";
    	if (isset($_POST['cat'])) $cat = $_POST['cat']; else $cat="";
    	if (isset($_POST['texte_presentation'])) $texte_presentation = $_POST['texte_presentation']; else $texte_presentation="";
    	if (isset($_POST['check_email'])) $check_email = $_POST['check_email']; else $check_email="";
    	if (isset($_POST['ville'])) $ville = $_POST['ville']; else $ville="";
    	if (isset($_POST['region'])) $region = $_POST['region']; else $region="";
    	if (isset($_POST['pays'])) $pays = $_POST['pays']; else $pays="";
    	if (isset($_POST['pseudo'])) $pseudo = $_POST['pseudo']; else $pseudo="";
    	if (isset($_POST['pass'])) $pass = $_POST['pass']; else $pass="";
    	if (isset($_POST['pass2'])) $pass2 = $_POST['pass2']; else $pass2="";
    	if (isset($_POST['aff'])) $aff = $_POST['aff']; else $aff="";
     
    	// Definition d'une variable permettant de voir s'il y a une erreur dans le remplissage du formulaire
    	$no_error = true;	 
     
    	// Verif si deja un copte avec cet email
    	$sql = "SELECT COUNT(*) AS nbre FROM ".$GLOBALS["table_membres"]." WHERE email='".$email."' OR (nom='".$nom."' AND prenom='".$prenom."') OR pseudo='".$pseudo."'";
    	$query = mysql_query($sql) or die("Erreur sur $sql :<br><br>".mysql_error());
    	$data = mysql_fetch_array($query, MYSQL_ASSOC);
    	$nbre = $data["nbre"];
     
    	// Verification des champs
    	if($civilite==""||$nom==""||$prenom==""||$email==""||$age==""||$tel==""||$_FILES["photo_presentation"]["name"]==""||$ville==""||$pseudo==""||$pass==""||$pass2==""||$pays==""||$cat==""||$texte_presentation==""){
    	$erreur = ERREUR_CHAMPS;		
    	$no_error = false;
    	}	
     
    	// Verification de la syntaxe de l'email
    	else if(!ereg('^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+'.
                   '@'.
                   '[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.'.
                   '[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$',
                   $email)){
    	$erreur = ERREUR_ADRESSE; 
    	$no_error = false;
    	} 	
     
    	else if($pass!=$pass2){
    	$erreur = ERREUR_MOT; 
    	$no_error = false;
    	}
     
    	else if($nbre>0){
    	$erreur = ERREUR_EXISTE; 
    	$no_error = false;
    	}
     
    	// Insertion dans la base si aucune erreur
    	if($no_error==true){
     
    	$valaff = ($aff==1) ? 1:0;
     
    			// Insertion dans la base et recuperation de l'id du membre
    			mysql_query("INSERT INTO ".$GLOBALS["table_membres"]." VALUES ('','".$pseudo."','".$pass."','".$civilite."','".$nom."','".$prenom."','".$email."','".$tel."','".$texte_presentation."','".$ville."','".$region."','".$pays."','false','".date("Y-m-d H:i:s")."',0,'',0)") or die(mysql_error());
    			$id_membre = mysql_insert_id();
    			mysql_query("INSERT INTO ".$GLOBALS["table_infos_membres"]." VALUES ('".$id_membre."','".$nom_artiste."','".$age."','".$taille."','".$poids."','','".$cat."','".$check_email."','".$valaff."')") or die(mysql_error());
     
    		// Nouvelle classe image
    		/*include("./inc/class.upload_img.php");
    		$classe_img = new UploadPhotos();
    		$classe_img->chemin_upload($GLOBALS["upload"]."/");
    		$classe_img->id_membre = $id_membre;
     
    		// Upload de la photo de presentation  
    		$classe_img->upload();	 
    		// Upload des autre photos
    		$classe_img->upload_photos(3);
     
     
    		$no_error = $classe_img->no_error;
    		$erreur = $classe_img->erreur;
    	 */
     
    	 			if($_FILES["photo_presentation"]["name"]!=""){
     
    				$destination = "./".$GLOBALS["upload"]."/".$_FILES["photo_presentation"]["name"];
    				$extension=substr($_FILES["photo_presentation"]["name"],-3);
     
    				$rename = "portrait-".$id_membre.".".$extension;
    				$destination_rename = "./".$GLOBALS["upload"]."/".$rename;	 
     
    				$size = getimagesize($_FILES["photo_presentation"]["tmp_name"]);
     
    				if($size[2]!=3 && $size[2]!=2){
    				$erreur = ERREUR_PHOTO1;
    				$no_error = false;
    				} 
     
    				if(file_exists($destination_rename)){
     
    					// Suppression de l'ancienne image
    					if(!unlink($destination_rename)){
    					$erreur = ERREUR_PHOTO2;
    					$no_error = false;
    					break;
    					}
     
    				}
     
    				// Copie de l'image si elle n'existe pas
    					if (!copy($_FILES["photo_presentation"]["tmp_name"],$destination))
    					{
    					$erreur = ERREUR_PHOTO3;
    					$no_error = false;
    					break;
    					}
     
    					else if(!rename($destination,$destination_rename)){
    					$erreur = ERREUR_PHOTO4;
    					$no_error = false;
    					break;
    					}	
     
    							//------------------------------- Création miniature -------------------------------//	
     
    							if(file_exists('./'.$GLOBALS["upload"].'/small/'.$rename)){
     
    								// Suppression de l'ancienne image
    								if(!unlink('./'.$GLOBALS["upload"].'/small/'.$rename)){
    								$erreur = ERREUR_PHOTO5;
    								$no_error = false;
    								break;
    								}
     
    							}	  
     
    							$ratio = 150;
    							$src=imagecreatefromjpeg($destination_rename);
    							$size = getimagesize($destination_rename);
    							if ($size[0] > $size[1]) {
    							    $im=imagecreatetruecolor(round(($ratio/$size[1])*$size[0]), $ratio);
    							     imagecopyresampled($im, $src, 0, 0, 0, 0, round(($ratio/$size[1])*$size[0]),$ratio, $size[0], $size[1]);
    							}
    							else {
    							    $im=imagecreatetruecolor($ratio, round(($ratio/$size[0])*$size[1]));
    							     imagecopyresampled($im, $src, 0, 0, 0, 0, $ratio, round($size[1]*($ratio/$size[0])), $size[0], $size[1]);
    							}
    							ImageJPEG($im,'./'.$GLOBALS["upload"].'/small/'.$rename,100);
    							//------------------------------- Fin Création miniature -------------------------------//	 
     
    					mysql_query("UPDATE ".$GLOBALS["table_infos_membres"]." SET photo='".$rename."' WHERE id_membre='".$id_membre."'") or die(mysql_error());
    			}	
     
     
     
    		for($i=1;$i<4;$i++){
    					if($_FILES["photo"]["name"][$i]!=""){
     
    						$destination = "./".$GLOBALS["upload"]."/".$_FILES["photo"]["name"][$i];
    						$extension=substr($_FILES["photo"]["name"][$i],-3);
     
    						$rename = "photo-".$id_membre."-$i.".$extension;
    						$destination_rename = "./".$GLOBALS["upload"]."/".$rename;	 
     
    						$size = getimagesize($_FILES["photo"]["tmp_name"][$i]);
     
     
    						// Copie de l'image si elle n'existe pas
    						if(file_exists($destination_rename)){
     
    							// Suppression de l'ancienne image
    							if(!unlink($destination_rename)){
    							$erreur = str_replace("{i}",$i,ERREUR_PHOTO2);
    							$no_error = false;
    							break;
    							}
     
    						}
     
    							if (!copy($_FILES["photo"]["tmp_name"][$i],$destination))
    							{
    							$erreur = str_replace("{i}",$i,ERREUR_PHOTO3);
    							$no_error = false;
    							break;
    							}
     
    							else if(!rename($destination,$destination_rename)){
    							$erreur = str_replace("{i}",$i,ERREUR_PHOTO4);
    							$no_error = false;
    							break;
    							}	
     
     
    							//------------------------------- Création miniature -------------------------------//
     
    							if(file_exists('./'.$GLOBALS["upload"].'/small/'.$rename)){
     
    								// Suppression de l'ancienne image
    								if(!unlink('./'.$GLOBALS["upload"].'/small/'.$rename)){
    								$erreur = str_replace("{i}",$i,ERREUR_PHOTO5);
    								$no_error = false;
    								break;
    								}
     
    							}	 
     
    							$ratio = 250;
    							$src=imagecreatefromjpeg($destination_rename);
    							$size = getimagesize($destination_rename);
    							if ($size[0] > $size[1]) {
    							    $im=imagecreatetruecolor(round(($ratio/$size[1])*$size[0]), $ratio);
    							     imagecopyresampled($im, $src, 0, 0, 0, 0, round(($ratio/$size[1])*$size[0]),$ratio, $size[0], $size[1]);
    							}
    							else {
    							    $im=imagecreatetruecolor($ratio, round(($ratio/$size[0])*$size[1]));
    							     imagecopyresampled($im, $src, 0, 0, 0, 0, $ratio, round($size[1]*($ratio/$size[0])), $size[0], $size[1]);
    							}
    							ImageJPEG($im,'./'.$GLOBALS["upload"].'/small/'.$rename,100);
    							//------------------------------- Fin Création miniature -------------------------------//	 
     
    							mysql_query("INSERT INTO ".$GLOBALS["table_photos"]." VALUES('','".$id_membre."','".$rename."');") or die(mysql_error());
    					}
    			}	
     
     
     
    			if($no_error==true){
     
    			$infos["prenom"] = $prenom;
    			$infos["pseudo"] = $pseudo;
    			$infos["pass"] = $pass;
     
    			email_type($langue,1,$email,TITRE_EMAIL,$infos);
     
    		   	// Recuperation de l'email admin
    			$sql_two = "SELECT email_admin,url_site FROM ".$GLOBALS["table_parametres"]."";
    			$query_two = mysql_query($sql_two);
    			$data_two = mysql_fetch_array($query_two) or die(mysql_error());
     
    			// envoi du mail au membre
    			$mailTo = $data_two["email_admin"]."@pickupstar.com";
    			$mailFrom = $data_two["email_admin"];
     
    		   	$Domain = preg_replace("/^[^\.]+\./", "", $_SERVER["SERVER_NAME"]);
    			$Errors="postmaster@$Domain";
     
    			$mailEntete  = "Return-path: $Errors\n";
    		    $mailEntete .= "Content-Type:text/html;charset=iso-8859-1\n";
    			$mailBody = "Bonjour,<br>
    						Un nouveau membre vient de s'inscrire sur le site. Pour valider son inscription veuillez cliquer sur le lien suivant :<br>
    						<a href='".$data_two["url_site"]."/admin/'>Administration</a><br>
    						Bonne journée";
     
    			//mail($mailTo, stripslashes($mailSujet), stripslashes($mailBody), $mailEntete."From: ".$mailFrom."\n");
     
    			email($mailFrom, $mailTo, stripslashes($mailSujet), stripslashes($mailBody), $mailFrom, $mailEntete);
     
     
    			// Message de confirmation
    			message(1,1,SUCCES,0);
    			}
    			else
    			{ 
    			// Suppression de la photo
    			//$classe_img->Suppression();
    			}
     
     
    	}
     
    } 
    // affichage du formulaire
    ...
    Mais j'aimerais avoir des conseils pour optimiser mon code, j'aurais voulu utiliser une classe mais ca me parait impossible et cela a cause des erreurs, je vois pas comment faire pour arreter dans le code de la class et revenir au formulaire.

    Si quelqu'un a des conseils je suis preneur .

    Louis

    ps : ne pas tenir compte de la fonction email qui est celle de online !

  2. #2
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    Euh, sincèrement, ton message part d'une très bonne intention mais je n'ai pas tellement envie de me manger tout un bloc de code :/

    J'ai regardé le début, cela dit.
    Pour ta liste de tests sur l'existence de variables, tu pourrais le simplifier avec foreach :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $no_error = TRUE;
    foreach(array('civilite', 'nom', 'prenom') as $field){
       if(isset($_POST[$field])){
          ${$field} = quote_smart($_POST[$field]); // cf. doc PHP de mysql_real_escape_string
          $user[$field] = quote_smart($_POST[$field]); // version alternative que je préfère à ce que tu utilises
       }
       else{
          $no_error = FALSE;
       }
    }
    Comme tu peux le voir, un simple tableau contenant tous tes champs généralise la longue liste de tests identiques.
    De manière générale, tu peux trouver un moyen de boucler dès que tu as plusieurs opérations identiques voire similaires.

  3. #3
    Membre éprouvé Avatar de macbook
    Inscrit en
    Février 2006
    Messages
    838
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 838
    Points : 1 009
    Points
    1 009
    Par défaut
    Perso je trouve ce code très fastidieux :

    <?php&#160;
    &#160;&#160;&#160;&#160;
    if&#160;(isset($_POST['civilite']))&#160;$civilite&#160;=&#160;$_POST['civilite'];&#160;else&#160;$civilite="";
    &#160;&#160;&#160;&#160;if&#160;(isset(
    $_POST['nom']))&#160;$nom&#160;=&#160;$_POST['nom'];&#160;else&#160;$nom="";
    &#160;&#160;&#160;&#160;if&#160;(isset(
    $_POST['prenom']))&#160;$prenom&#160;=&#160;$_POST['prenom'];&#160;else&#160;$prenom="";
    &#160;&#160;&#160;&#160;if&#160;(isset(
    $_POST['nom_artiste']))&#160;$nom_artiste&#160;=&#160;$_POST['nom_artiste'];&#160;else&#160;$nom_artiste="";
    &#160;&#160;&#160;&#160;if&#160;(isset(
    $_POST['email']))&#160;$email&#160;=&#160;$_POST['email'];&#160;else&#160;$email="";
    &#160;&#160;&#160;&#160;if&#160;(isset(
    $_POST['age']))&#160;$age&#160;=&#160;$_POST['age'];&#160;else&#160;$age="";
    &#160;&#160;&#160;&#160;if&#160;(isset(
    $_POST['taille']))&#160;$taille&#160;=&#160;$_POST['taille'];&#160;else&#160;$taille="";
    &#160;&#160;&#160;&#160;if&#160;(isset(
    $_POST['poids']))&#160;$poids&#160;=&#160;$_POST['poids'];&#160;else&#160;$poids="";
    &#160;&#160;&#160;&#160;if&#160;(isset(
    $_POST['tel']))&#160;$tel&#160;=&#160;$_POST['tel'];&#160;else&#160;$tel="";
    &#160;&#160;&#160;&#160;if&#160;(isset(
    $_POST['cat']))&#160;$cat&#160;=&#160;$_POST['cat'];&#160;else&#160;$cat="";
    &#160;&#160;&#160;&#160;if&#160;(isset(
    $_POST['texte_presentation']))&#160;$texte_presentation&#160;=&#160;$_POST['texte_presentation'];&#160;else&#160;$texte_presentation="";
    &#160;&#160;&#160;&#160;if&#160;(isset(
    $_POST['check_email']))&#160;$check_email&#160;=&#160;$_POST['check_email'];&#160;else&#160;$check_email="";
    &#160;&#160;&#160;&#160;if&#160;(isset(
    $_POST['ville']))&#160;$ville&#160;=&#160;$_POST['ville'];&#160;else&#160;$ville="";
    &#160;&#160;&#160;&#160;if&#160;(isset(
    $_POST['region']))&#160;$region&#160;=&#160;$_POST['region'];&#160;else&#160;$region="";
    &#160;&#160;&#160;&#160;if&#160;(isset(
    $_POST['pays']))&#160;$pays&#160;=&#160;$_POST['pays'];&#160;else&#160;$pays="";
    &#160;&#160;&#160;&#160;if&#160;(isset(
    $_POST['pseudo']))&#160;$pseudo&#160;=&#160;$_POST['pseudo'];&#160;else&#160;$pseudo="";
    &#160;&#160;&#160;&#160;if&#160;(isset(
    $_POST['pass']))&#160;$pass&#160;=&#160;$_POST['pass'];&#160;else&#160;$pass="";
    &#160;&#160;&#160;&#160;if&#160;(isset(
    $_POST['pass2']))&#160;$pass2&#160;=&#160;$_POST['pass2'];&#160;else&#160;$pass2="";
    &#160;&#160;&#160;&#160;if&#160;(isset(
    $_POST['aff']))&#160;$aff&#160;=&#160;$_POST['aff'];&#160;else&#160;$aff="";
    ?>

    Phpsyntaxcolor powered by decabodi.com
    On pourrait remplacer :

    <?php
    if&#160;(isset($_POST['civilite']))&#160;$civilite&#160;=&#160;$_POST['civilite'];&#160;else&#160;$civilite="";
    ?>

    Phpsyntaxcolor powered by decabodi.com

    Par cela dans un premier temps :

    <?php
    $civilite&#160;
    =&#160;isset&#160;(&#160;$_POST['civilite']&#160&#160;?&#160;$_POST['civilite']&#160;:&#160;''&#160;;
    ?>

    Phpsyntaxcolor powered by decabodi.com
    Mais s'il faut se taper tous les champs comme ça c'est encore trop fastidieux, créons une fonction !!!

    <?php
    &#160;&#160;&#160;&#160;
    function&#160;get_value&#160;(&#160;$name&#160;,&#160;$echo&#160;=&#160;false&#160;)&#160;
    &#160;&#160;&#160;&#160;{
    &#160;&#160;&#160;&#160;${
    $name}&#160;=&#160;isset&#160;(&#160;$_POST&#160;)&#160;&&&#160;isset&#160;(&#160;$_POST[$name]&#160&#160;&#160;?&#160;$_POST[$name]&#160;:&#160;''&#160;;
    &#160;&#160;&#160;&#160;
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if&#160;(&#160;!
    $echo&#160;)
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return&#160;${
    $name}&#160;;
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;else
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;echo&#160;
    htmlspecialchars&#160;(&#160;${$name}&#160;,&#160;ENT_QUOTES&#160;)&#160;;
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
    &#160;&#160;&#160;&#160;}
    ?>

    Phpsyntaxcolor powered by decabodi.com
    Ensuite tu peux manipuler tes variables plus aisément.

    $civilite devient get_value ( 'civilite' ) et ton input peux s'écrire ainsi : <input name="civilite" type="text" value="<?php get_value ( 'civilite' , true ) ; ?>">

    Ce serait déjà un allègement non ?

    Pour le reste désolé mais j'ai pas le temps de lire et de décortiquer tout le code.
    Consultant idéaliste.

  4. #4
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    macbook : attention à ne pas appeler ta fonction avec un paramètre inexistant ! Si tu fais ce test, cela reviendra à compliquer le code comme auparavant...
    Ma proposition ne convient-elle pas ?

  5. #5
    Membre du Club
    Profil pro
    Developpeur
    Inscrit en
    Septembre 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Septembre 2004
    Messages : 114
    Points : 43
    Points
    43
    Par défaut
    Merci pour vos réponses.

    Kirkis : je trouve ton bout de code simple et efficace dans le cadre des variables de même type (genre POST) (dans mon code je dois verifier un champ de type FILE).
    En tout cas l'idée de mettre en tableau toutes les variables du formulaire dans le tableau user est une bonne idée en effet.


    macbook : tout d'abord le remplacement par : $civilite = isset ( $_POST['civilite'] ) ? $_POST['civilite'] : '' ;
    est ce que cette facon de faire le if est valable sur tous les serveurs ? en effet si cela est due à la configuration du serveur et peut etre modifié cela ne serait pas mieux pr la compatibilité du script non ?
    Ton idée de fonction est tout de même intéressante car de cette facon on peut appliquer aux différentes informations des fonctions du type htmlspecialchars facilement. je pense la retenir.

    Merci encore pour vos réponses, des idées concernant le traitement de mes images ?

  6. #6
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Sans vouloir faire mon jaloux, ma solution délègue le traitement de la variable à une fonction. J'en ai recommandé une mais tu peux utiliser celle que tu souhaites.
    Sinon, l'opérateur ternaire ? : est utilisable sur n'importe quel serveur, en effet.

  7. #7
    Membre du Club
    Profil pro
    Developpeur
    Inscrit en
    Septembre 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Septembre 2004
    Messages : 114
    Points : 43
    Points
    43
    Par défaut
    Oui mais dans ton cas Kirkis toutes les variables passées dans le tableau sont des "champs obligatoires" sachant qu'il passe la variable no_error à false si il n'y a pas de valeur non ?

  8. #8
    Membre éprouvé Avatar de macbook
    Inscrit en
    Février 2006
    Messages
    838
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 838
    Points : 1 009
    Points
    1 009
    Par défaut
    Citation Envoyé par Kirkis
    Sans vouloir faire mon jaloux, ma solution délègue le traitement de la variable à une fonction.
    Oui mais la mienne est en couleurs !!!

    La tienne est bien aussi.
    Consultant idéaliste.

  9. #9
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Je ne crois pas avoir dit que j'allais proposer une solution toute faite
    Prends ce qui te plaît, adapte.

    Au pire, tu peux faire deux boucles : l'une pour les champs obligatoires, l'autre pour les champs facultatifs.
    Tu peux aussi tout mettre dans une seule boucle et y gérer des exceptions, ce qui serait moins propre mais t'éviterait de répéter la boucle.

Discussions similaires

  1. [Tableaux] Optimisation de code
    Par Konrad Florczak dans le forum Langage
    Réponses: 6
    Dernier message: 26/10/2006, 16h25
  2. Optimiser mon code ASP/HTML
    Par ahage4x4 dans le forum ASP
    Réponses: 7
    Dernier message: 30/05/2005, 10h29
  3. optimiser le code
    Par bibi2607 dans le forum ASP
    Réponses: 3
    Dernier message: 03/02/2005, 14h30
  4. syntaxe et optimisation de codes
    Par elitol dans le forum Langage SQL
    Réponses: 18
    Dernier message: 12/08/2004, 11h54
  5. optimisation du code et var globales
    Par tigrou2405 dans le forum ASP
    Réponses: 2
    Dernier message: 23/01/2004, 10h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo