PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 18-11-2009 12:22:13

Alnoss
Modérateur absent
Lieu : 06 - PACA
Inscription : 11-05-2009
Messages : 541
Site Web

Optimisation de code

Bonjour,

Manipulant bcp [trop] de formulaire ces derniers temps, je me pose une question des plus essentielles [du moins pour moi]

Existe-t-il un moyen de récupérer automatiquement les valeurs postées par un form

Aujourd'hui, j'ai :


<?php
/* Nettoyage des caratères spéciaux dans les références */
function cleanref($ref) {
    $charintref = array('@','\\','/','"','#','{','}','[',']','(',')','|','`','^','¤',':','!',' ','*','+','-','_','.',',');
    $refok = str_replace($charintref,"",$ref);
return $refok;}
/* début récup des valeurs */
$charint = array('é','è','ê','ë');
$date_ask = date('d/m/y H:i:s');
$nom_ask = $_SESSION['nom_user'];
$type_ask = substr($_POST['typeprod'],0,2);
$comment = $_POST['comment'];
$refcon1c1 = cleanref($_POST['refcon1c1']);
$refcon1c2 = cleanref($_POST['refcon1c2']);
$refcon1c3 = cleanref($_POST['refcon1c3']);
$refcon1c4 = cleanref($_POST['refcon1c4']);
$refcon2c1 = cleanref($_POST['refcon2c1']);
$refcon2c2 = cleanref($_POST['refcon2c2']);
$refcon2c3 = cleanref($_POST['refcon2c3']);
$refcon2c4 = cleanref($_POST['refcon2c4']);
$marque1 = $_POST['marque1'];
$modele1 = addslashes(str_replace($charint,"e",$_POST['modele1']));
$moteur1 = addslashes(str_replace($charint,"e",$_POST['moteur1']));
$annee1 = addslashes($_POST['annee1']);
$marque2 = $_POST['marque2'];
$modele2 = addslashes(str_replace($charint,"e",$_POST['modele2']));
$moteur2 = addslashes(str_replace($charint,"e",$_POST['moteur2']));
$annee2 = addslashes($_POST['annee2']); $reffab1 = cleanref($_POST['reffab1']);
$reffab2 = cleanref($_POST['reffab2']);
$nomfab = $_POST['nomfab'];
$ref11 = cleanref($_POST['ref11']);
$ref12 = cleanref($_POST['ref12']);
$refspa = cleanref($_POST['refspa']);
$refgb = cleanref($_POST['refgb']);
$info = addslashes(str_replace($charint,"e",$_POST['info']));
/* puis la petite requete d'insert qui va bien */
mysql_query("INSERT INTO tab_demandes (date_ask, nom_ask, type_ask, comment, reffab1, reffab2, nomfab, refcon1c1, refcon1c2, refcon1c3, refcon1c4, refcon2c1, refcon2c2, refcon2c3, refcon2c4, marque1, modele1, moteur1, annee1, marque2, modele2, moteur2, annee2, ref11, ref12, refspa, refgb ,info ,datemodif1, nom_mod1, statut, valid11, valid12, validspa, validgb) VALUES ('".$date_ask."','".$nom_ask."','".$type_ask."','".$comment."','".$reffab1."','".$reffab2."','".$nomfab."','".$refcon1c1."',
'"
.$refcon1c2."','".$refcon1c3."','".$refcon1c4."','".$refcon2c1."','".$refcon2c2."','".$refcon2c3."','".$refcon2c4."','".$marque1."',
'"
.$modele1."','".$moteur1."','".$annee1."','".$marque2."','".$modele2."','".$moteur2."','".$annee2."','".$ref11."','".$ref12."',
'"
.$refspa."','".$refgb."','".$info."',' ','-',9,0,0,0,0)");?>

Oui, j'ai fait exprès que donner le même nom à mes var qu'a mes entête de table, en vue d'automatiser tout ça... mais je vois pas comment ...

Bon ok, ici, il y a des traitements différents et des valeurs auto-attribuées... mais je parle dans un cas plus général... La longueur du script est là pour montrer à quel point ça peut être chiant ^^


MERCI de lire le mode d'emploi avant de poster !!

Hors ligne

#2 18-11-2009 13:29:39

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Optimisation de code

Saluton,
L'utilisation de PDO, avec les requêtes paramétrées, te soulagerait grandement.
D'autre part, tu auras noté que la table tab_demandes, avec ces colonnes jumelles de tout poils, est loin d'être en formes normales.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#3 18-11-2009 14:36:33

Alnoss
Modérateur absent
Lieu : 06 - PACA
Inscription : 11-05-2009
Messages : 541
Site Web

Re : Optimisation de code

Coucou MK,

Oui, en ce qui concerne la requete et la table, je sais ... c'est une vieille version et le seul exemple que j'ai trouvé pour illustrer ma demande... [depuis, grace a toi, c'est bcp moins gruik gruik]
Et pour ce qui est de PDO.... je progresse, mais suis encore loin de le maitriser  ^^


MERCI de lire le mode d'emploi avant de poster !!

Hors ligne

Pied de page des forums