Optimisation d'un srcipt php

Résolu/Fermé
nicelife90 Messages postés 615 Date d'inscription vendredi 24 septembre 2010 Statut Membre Dernière intervention 10 avril 2018 - 31 août 2011 à 03:26
nicelife90 Messages postés 615 Date d'inscription vendredi 24 septembre 2010 Statut Membre Dernière intervention 10 avril 2018 - 31 août 2011 à 22:13
Bonjour,

Je voudrais savoir comment je pourrais optimiser cette page php que j'ai créé elle sert de validation a un formulaire que jai créé et il insert les donné dans ma basse de donner.

Cependant je n'est pas trouver d'autre solution puisque si je clic sur valider sur mon formulaire et que je laisse des case vide dans le formulaire il efface ce qui ce trouve dans ma base de donner donc je dois faire une requête de get pour l'affecter a chaque variable pour le réinsérer ensuite je trouve ça très lourd et pas pratique pouvez vous me dire comment je pourrais faire pour que ce soit mieux et plus professionnel.

Peut être qu'il y a un truc pour que si ma variable = ' ' que la requete update ne vide pas le champ en question.




<?php


session_start();
header('Content-type: text/html; charset=utf-8');
include('../includes/config.php');

/********Actualisation de la session...**********/

include('../includes/fonctions.php');
connexionbdd();
actualiser_session();

/********Fin actualisation de session...**********/
?>


<?php
/********Entête et titre de page*********/
$titre = 'Modification du profil 2/2';

include('../includes/haut.php'); //contient le doctype, et head.

/**********Fin entête et titre***********/
?>
<div id="colonne_gauche">
<?php
include('../includes/colg.php');
?>
</div>




<div id="contenu">
<div id="map">
<!-- Absence de lien à Inscription 2/2 volontaire -->
<a href="../index.php">Accueil</a> => Modification du profil 2/2<br/><br/>
</div>



<?php



/********Étude du bazar envoyé***********/

/********************** Variable du formulaire *************************/

$uid = $_POST['user_id'];
$usergroup = $_POST['user_group'];
$userpseudo = $_POST['user_pseudo'];

$userpwd = $_POST['user_pw'];
$userpwdconf = $_POST['user_pwconf'];
$passwordtoinsert = '';

$userprenom = $_POST['user_prenom'];
$usernom = $_POST['user_nom'];
$unserddn = $_POST['user_ddn'];
$useradresse = $_POST['user_adresse'];
$userpostalcode = $_POST['user_codepostal'];
$userphone = $_POST['user_telephone'];
$usermail = $_POST['user_courriel'];

$hoststate = $_POST['hosting_state'];
$hoststart = $_POST['hosting_start'];
$hostend = $_POST['hosting_end'];
$hostuser = $_POST['hosting_user'];
$hostpwd = $_POST['hosting_pw'];
$hostlink = $_POST['hosting_link'];


$ftpstate = $_POST['ftp_state'];
$ftpstart = $_POST['ftp_start'];
$ftpend = $_POST['ftp_end'];
$ftpuser = $_POST['ftp_user'];
$ftppwd = $_POST['ftp_pw'];
$ftphost = $_POST['ftp_host'];
$ftpport = $_POST['ftp_port'];


$webmailstate = $_POST['webmail_state'];
$webmailstart = $_POST['webmail_start'];
$webmailend = $_POST['webmail_end'];
$webmailmain = $_POST['webmail_mainmail'];
$webmailpwd = $_POST['webmail_pw'];
$webmaillink = $_POST['webmail_link'];


/***************************** vérification des champs ******************************/
if ($uid == ''){
die ('<p align=\'center\'><font color="#FF0000">Erreur:<br><br>Vous devez entrer un ID du client.</font></p><br><center><a href="adminpanel.php">Retour à la gestion du client.</a></center>');
}
if ($usergroup != ''){
if ($usergroup < 0 or $usergroup > 1){
die ('<p align=\'center\'><font color="#FF0000">Erreur:<br><br>Vous devez entrer un numéro de groupe valide.</font></p><br><center><a href="adminpanel.php">Retour à la gestion du client.</a></center>');
}
}
if ($usergroup == ''){
$result = sqlquery("SELECT membre_groupe FROM membres WHERE membre_id = '" . $uid . "' GROUP BY membre_id", 1);
$usergroup = $result['membre_groupe'];
}
if ($userpseudo == ''){
$result = sqlquery("SELECT membre_pseudo FROM membres WHERE membre_id = '" . $uid . "' GROUP BY membre_id", 1);
$userpseudo = $result['membre_pseudo'];
}
if ($userprenom == ''){
$result = sqlquery("SELECT membre_prenom FROM membres WHERE membre_id = '" . $uid . "' GROUP BY membre_id", 1);
$userprenom = $result['membre_prenom'];
}
if ($usernom == ''){
$result = sqlquery("SELECT membre_nom FROM membres WHERE membre_id = '" . $uid . "' GROUP BY membre_id", 1);
$usernom = $result['membre_nom'];
}
if ($unserddn == ''){
$result = sqlquery("SELECT membre_naissance FROM membres WHERE membre_id = '" . $uid . "' GROUP BY membre_id", 1);
$unserddn = $result['membre_naissance'];
}
if ($useradresse == ''){
$result = sqlquery("SELECT membre_adresse FROM membres WHERE membre_id = '" . $uid . "' GROUP BY membre_id", 1);
$useradresse = $result['membre_adresse'];
}
if ($userpostalcode == ''){
$result = sqlquery("SELECT membre_codepostal FROM membres WHERE membre_id = '" . $uid . "' GROUP BY membre_id", 1);
$userpostalcode = $result['membre_codepostal'];
}
if ($userphone == ''){
$result = sqlquery("SELECT membre_telephone FROM membres WHERE membre_id = '" . $uid . "' GROUP BY membre_id", 1);
$userphone = $result['membre_telephone'];
}
if ($usermail != ''){
if (filter_var($usermail, FILTER_VALIDATE_EMAIL)){
}
else
{
die ('<p align=\'center\'><font color="#FF0000">Erreur:<br><br>Vous devez entrer une adresse courriel valide.</font></p><br><center><a href="adminpanel.php">Retour à la gestion du client.</a></center>');
}
}
if ($usermail == ''){
$result = sqlquery("SELECT membre_mail FROM membres WHERE membre_id = '" . $uid . "' GROUP BY membre_id", 1);
$usermail = $result['membre_mail'];
}
if ($hoststate != ''){
if ($hoststate < 0 or $hoststate > 1){
die ('<p align=\'center\'><font color="#FF0000">Erreur:<br><br>Vous devez entrer un numéro d\'état valide pour service d\'hebergement.</font></p><br><center><a href="adminpanel.php">Retour à la gestion du client.</a></center>');
}
}
if ($hoststate == ''){
$result = sqlquery("SELECT web_statut FROM membres WHERE membre_id = '" . $uid . "' GROUP BY membre_id", 1);
$hoststate = $result['web_statut'];
}
if ($hoststart == ''){
$result = sqlquery("SELECT web_start FROM membres WHERE membre_id = '" . $uid . "' GROUP BY membre_id", 1);
$hoststart = $result['web_start'];
}
if ($hostend == ''){
$result = sqlquery("SELECT web_end FROM membres WHERE membre_id = '" . $uid . "' GROUP BY membre_id", 1);
$hostend = $result['web_end'];
}
if ($hostuser == ''){
$result = sqlquery("SELECT cpanel_user FROM membres WHERE membre_id = '" . $uid . "' GROUP BY membre_id", 1);
$hostuser = $result['cpanel_user'];
}
if ($hostpwd == ''){
$result = sqlquery("SELECT cpanel_passw FROM membres WHERE membre_id = '" . $uid . "' GROUP BY membre_id", 1);
$hostpwd = $result['cpanel_passw'];
}
if ($hostlink == ''){
$result = sqlquery("SELECT cpanel_link FROM membres WHERE membre_id = '" . $uid . "' GROUP BY membre_id", 1);
$hostlink = $result['cpanel_link'];
}
if ($ftpstate != ''){
if ($ftpstate < 0 or $ftpstate > 1){
die ('<p align=\'center\'><font color="#FF0000">Erreur:<br><br>Vous devez entrer un numéro d\'état valide pour service de FTP.</font></p><br><center><a href="adminpanel.php">Retour à la gestion du client.</a></center>');
}
}
if ($ftpstate == ''){
$result = sqlquery("SELECT ftp_statut FROM membres WHERE membre_id = '" . $uid . "' GROUP BY membre_id", 1);
$ftpstate = $result['ftp_statut'];
}
if ($ftpstart == ''){
$result = sqlquery("SELECT ftp_start FROM membres WHERE membre_id = '" . $uid . "' GROUP BY membre_id", 1);
$ftpstart = $result['ftp_start'];
}
if ($ftpend == ''){
$result = sqlquery("SELECT ftp_end FROM membres WHERE membre_id = '" . $uid . "' GROUP BY membre_id", 1);
$ftpend = $result['ftp_end'];
}
if ($ftpuser == ''){
$result = sqlquery("SELECT ftp_user FROM membres WHERE membre_id = '" . $uid . "' GROUP BY membre_id", 1);
$ftpuser = $result['ftp_user'];
}
if ($ftppwd == ''){
$result = sqlquery("SELECT ftp_passw FROM membres WHERE membre_id = '" . $uid . "' GROUP BY membre_id", 1);
$ftppwd = $result['ftp_passw'];
}
if ($ftphost == ''){
$result = sqlquery("SELECT ftp_host FROM membres WHERE membre_id = '" . $uid . "' GROUP BY membre_id", 1);
$ftphost = $result['ftp_host'];
}
if ($ftpport == ''){
$result = sqlquery("SELECT ftp_port FROM membres WHERE membre_id = '" . $uid . "' GROUP BY membre_id", 1);
$ftpport = $result['ftp_port'];
}
if ($webmailstate != ''){
if ($webmailstate < 0 or $webmailstate > 1){
die ('<p align=\'center\'><font color="#FF0000">Erreur:<br><br>Vous devez entrer un numéro d\'état valide pour service de webmail.</font></p><br><center><a href="adminpanel.php">Retour à la gestion du client.</a></center>');
}
}
if ($webmailstate == ''){
$result = sqlquery("SELECT webmail_statut FROM membres WHERE membre_id = '" . $uid . "' GROUP BY membre_id", 1);
$webmailstate = $result['webmail_statut'];
}
if ($webmailstart == ''){
$result = sqlquery("SELECT webmail_start FROM membres WHERE membre_id = '" . $uid . "' GROUP BY membre_id", 1);
$webmailstart = $result['webmail_start'];
}
if ($webmailend == ''){
$result = sqlquery("SELECT webmail_end FROM membres WHERE membre_id = '" . $uid . "' GROUP BY membre_id", 1);
$webmailend = $result['webmail_end'];
}
if ($webmailmain == ''){
$result = sqlquery("SELECT webmail_main FROM membres WHERE membre_id = '" . $uid . "' GROUP BY membre_id", 1);
$webmailmain = $result['webmail_main'];
}
if ($webmailpwd == ''){
$result = sqlquery("SELECT webmail_passw FROM membres WHERE membre_id = '" . $uid . "' GROUP BY membre_id", 1);
$webmailpwd = $result['webmail_passw'];
}
if ($webmaillink == ''){
$result = sqlquery("SELECT webmail_link FROM membres WHERE membre_id = '" . $uid . "' GROUP BY membre_id", 1);
$webmaillink = $result['webmail_link'];
}
if ($userpwd != ''){
if ($userpwd == $userpwdconf){
$passwordtoinsert = $userpwd;
}
else {
die ('<p align=\'center\'><font color="#FF0000">Erreur:<br><br>Les mot de passe que vous avez entrer ne concorde pas!</font></p><br><center><a href="adminpanel.php">Retour à la gestion du client.</a></center>');
}
}
if ($passwordtoinsert == ''){
$result = sqlquery("SELECT membre_mdp FROM membres WHERE membre_id = '" . $uid . "' GROUP BY membre_id", 1);
$passwordtoinsert = $result['membre_mdp'];
$insertion = "UPDATE membres SET membre_nom='" . $usernom . "',
membre_pseudo='" . $userpseudo . "',
membre_groupe='" . $usergroup . "',
membre_mail='" . $usermail . "',
membre_naissance='" . $unserddn . "',
membre_prenom='" . $userprenom . "',
membre_adresse='" . $useradresse . "',
membre_codepostal='" . $userpostalcode . "',
membre_telephone='" . $userphone . "',
ftp_statut='" . $ftpstate . "',
ftp_start='" . $ftpstart . "',
ftp_end='" . $ftpend . "',
ftp_user='" . $ftpuser . "',
ftp_passw='" . $ftppwd . "',
ftp_host='" . $ftphost . "',
ftp_port='" . $ftpport . "',
web_statut='" . $hoststate . "',
web_start='" . $hoststart . "',
web_end='" . $hostend . "',
cpanel_user='" . $hostuser . "',
cpanel_passw='" . $hostpwd . "',
cpanel_link='" . $hostlink . "',
webmail_statut='" . $webmailstate . "',
webmail_start='" . $webmailstart . "',
webmail_end='" . $webmailend . "',
webmail_link='" . $webmaillink . "',
webmail_main='" . $webmailmain . "',
webmail_passw='" . $webmailpwd . "',
membre_mdp='" . $passwordtoinsert . "' WHERE membre_id='" . $uid . "'";
}
else{
$insertion = "UPDATE membres SET membre_nom='" . $usernom . "',
membre_pseudo='" . $userpseudo . "',
membre_groupe='" . $usergroup . "',
membre_mail='" . $usermail . "',
membre_naissance='" . $unserddn . "',
membre_prenom='" . $userprenom . "',
membre_adresse='" . $useradresse . "',
membre_codepostal='" . $userpostalcode . "',
membre_telephone='" . $userphone . "',
ftp_statut='" . $ftpstate . "',
ftp_start='" . $ftpstart . "',
ftp_end='" . $ftpend . "',
ftp_user='" . $ftpuser . "',
ftp_passw='" . $ftppwd . "',
ftp_host='" . $ftphost . "',
ftp_port='" . $ftpport . "',
web_statut='" . $hoststate . "',
web_start='" . $hoststart . "',
web_end='" . $hostend . "',
cpanel_user='" . $hostuser . "',
cpanel_passw='" . $hostpwd . "',
cpanel_link='" . $hostlink . "',
webmail_statut='" . $webmailstate . "',
webmail_start='" . $webmailstart . "',
webmail_end='" . $webmailend . "',
webmail_link='" . $webmaillink . "',
webmail_main='" . $webmailmain . "',
webmail_passw='" . $webmailpwd . "',
membre_mdp='" . md5($passwordtoinsert) . "' WHERE membre_id='" . $uid . "'";

}

/*************Fin étude******************/

?>

<?php
/**************** On entre les données dans la base de donné *********************/
mysql_query($insertion);

?>


</div>






<?php

/***************************************************************** On actualise la session et on redirige l'utilisateur si il à changer son mot de passe. ***************************/
actualiser_session();

?>



<?php
include('../includes/bas.php');

?>



<!--fin-->



merci d'avance!




A voir également:

4 réponses

Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 200
31 août 2011 à 17:43
Pourquoi ne pas simplement créer dynamique la requête d'update vis à vis de ce que tu reçois en POST ?
Exemple :
$sChamps = '';
if ($webmailmain = ''){ 
 if($sChamps != ''){
   $sChamps .= ',';
 }
 $sChamps .= 'nom_du_champ = Valeur_a_setter';
}
if ($webmailmain2 = ''){ 
 if($sChamps != ''){
   $sChamps .= ',';
 }
 $sChamps .= 'nom_du_champ_2 = Valeur_a_setter_2';
}

if($sChamps != ''){
$insertion = "UPDATE membres SET $sChamps WHERE membre_id='$uid' ";
}else{
 //aucun champs a update.
}
0
nicelife90 Messages postés 615 Date d'inscription vendredi 24 septembre 2010 Statut Membre Dernière intervention 10 avril 2018 151
31 août 2011 à 21:36
Bonjour Zep3k!GnO,

J'ai trouver une autre solution pour valider mes champs.
Étant donné que je n'est jamais besoin de supprimer des info de la base de donné j'ai ceci.

// Initialisation des champs de la base à vérifier en POST
$champsExistants = array();
$champsExistants[] = "marque";
$champsExistants[] = "annee";
$champsExistants[] = "modele";
//....

// Fonction vérifiant si un champ doit être ajouter à la clause SET de la fonction, et
// si oui, donnant la partie correspondante de la clause SET.
function ajouteClause($champ)
{
global $champsExistants;
$resultat = "";
if (array_search($champ, $champsExistants) !== FALSE
&& $_POST[$champ] != '')
$resultat = " $champ='".mysql_real_escape_string($_POST[$champ])."' ";

return $resultat;
}

$sqlSET = "";
foreach($_POST as $champ => $valeur)
{
$sqlSET .= ajouteClause($champ);
}

$insertion = "UPDATE voiture SET $sqlSET WHERE id='1'";
mysql_query($insertion);

en fais je la trouve super bien cette fonction puisqu'elle allège mon code de beaucoup mais elle ne mais pas les virgules. je vais donc tester ta solution aussi mais elle n'allège pas de beaucoup le code.


Merci de ta solution je te reviens bientôt.
0
graffx Messages postés 6506 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 24 mars 2019 1 975
31 août 2011 à 21:59
Au contraire, son code est 100 fois plus optimisé et donc plus léger! Moins de requetes = plus de rapidité!
0
nicelife90 Messages postés 615 Date d'inscription vendredi 24 septembre 2010 Statut Membre Dernière intervention 10 avril 2018 151
31 août 2011 à 22:13
Bonjour Zep3k!GnO et graffx,

Effectivement, après étude de la situation et quelque modification je confirme que le code de Zep3k!GnO est beaucoup plus adapter à mes besoins.

Au départ mon problème était que lorsque mes case dans mon formulaire restait vide ma requête update effaçais le champ.

Grâce au code proposer ici ce problème est régler de plus le problème des virgules non pris en compte dans l'autre code l'ai ici. j'ai apporter certaine modification du fais qu'il y avais erreur dans ce code à la ligne : if ($webmailmain = ''){ qui aurrais du être if ($webmailmain != ''){

j'ai donc tester tous ceci avec un formulaire vite fais et une table voiture à 4 champ et j'ai fais quelque modification au code donc voici mon résultat.

Le formulaire :

<html>
<body>
<form action="valide.php" method="post" name="test">
<input name="marque" type"text" size="11" maxlength="11"> marque : <br/>
<input name="modele" type"text" size="40" maxlength="40">  modele : <br/>
<input name="annee" type"text" size="40" maxlength="40"> annee : <br/>
<input type="submit" value="envoyer" name="submit">
</form>
</body>
</html>

Et le valide.php:

<?php

$sChamps = '';

if ($_POST['marque'] != ''){ 
 if($sChamps != ''){
   $sChamps .= ', ';
 }
 $sChamps .= "marque='".$_POST['marque']."'";
}
if ($_POST['modele'] != ''){ 
 if($sChamps != ''){
   $sChamps .= ', ';
 }
 $sChamps .= "modele='".$_POST['modele']."'";
}
if ($_POST['annee'] != ''){ 
 if($sChamps != ''){
   $sChamps .= ', ';
 }
 $sChamps .= "annee='".$_POST['annee']."'";
}
if($sChamps != ''){
$insertion = "UPDATE voiture SET $sChamps WHERE id='1' ";
}else{
 //rien na updater
}

?>



Tous ceci fonctionne à merveille merci beaucoup pour votre aide et vos conseils

0