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 :

Gestion de permanence pour une association


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2007
    Messages : 19
    Points : 9
    Points
    9
    Par défaut Gestion de permanence pour une association
    Bonjour à tous,

    J'ai créé une page web où des personnes de mon association peuvent s'inscrire par plage horaire. Je ne gère que 3 périodes fixes par jour (il y a 4 jours en tout).


    ?> Pouvez-vous m'indiquer ce qui peut-être optimisé ou s'il y a des défauts de conception?
    ?> Ceci est mon premier script PHP, donc j'aimerais savoir si je suis parti du bon pied ou pas.
    ?> Y a-t-il des points où il faut faire attention (requêtes SQL, sécurité, autre) ? Et concernant le code, est-ce assez propre ou il y a des parties à revoir?
    ?> Pour réduire le nombre de copier-coller, le plus simple est de faire une fonction ou y a-t-il une autre solution plus propre et jolie?
    ?> Existe-t-il des outils / architecture pour faciliter le développement?


    Je reste disponible pour toute question si la formulation n''est pas claire.

    Merci d'avance,

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Bonjour,

    Il nous manque peut etre le code ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre actif
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2008
    Messages : 185
    Points : 225
    Points
    225
    Par défaut
    Citation Envoyé par neoraptor Voir le message
    Bonjour à tous,

    J'ai créé une page web où des personnes de mon association peuvent s'inscrire par plage horaire. Je ne gère que 3 périodes fixes par jour (il y a 4 jours en tout).


    ?> Pouvez-vous m'indiquer ce qui peut-être optimisé ou s'il y a des défauts de conception?
    ?> Ceci est mon premier script PHP, donc j'aimerais savoir si je suis parti du bon pied ou pas.
    ?> Y a-t-il des points où il faut faire attention (requêtes SQL, sécurité, autre) ? Et concernant le code, est-ce assez propre ou il y a des parties à revoir?
    ?> Pour réduire le nombre de copier-coller, le plus simple est de faire une fonction ou y a-t-il une autre solution plus propre et jolie?
    ?> Existe-t-il des outils / architecture pour faciliter le développement?


    Je reste disponible pour toute question si la formulation n''est pas claire.

    Merci d'avance,
    Bonjour,
    Sans voir de script, ça va être dur de te dire si tu part du bon pied ou pas !

    Ceci dit :
    Fais très attention à l'injection SQL ( envoi de ' dans une requête SQL pour la faire planter, et la modifier librement )
    N'oublie jamais que l'utilisateur peut être stupide, et taper n'importe quoi ( désolé, pauvre utilisateur )
    N'hésite pas à utiliser les fonctions, le copier coller est à éviter au maximum, vu que si tu as un changement à faire, par exemple, ca évite d'avoir à le faire 10 fois
    Y'a bien des outils oui, que je trouve souvent très usine à gaz ( mais c'est qu'un avis perso ), comme Eclipse PDT ... Personnellement, j'utilisais un simple colorateur syntaxique au départ ( evim / nedit sous linux ), mais sous windows, notepad++ se révèle pratique ...
    Ceci dit, si tu cherche un vrai IDE, Eclipse PDT peut s'avérer une bonne solution

    Voila, bonne chance
    LoveAngel :: Meow( );
    Personne ne remarque ce qui marche trop bien. Procrastination, Terry Pratchett

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2007
    Messages : 19
    Points : 9
    Points
    9
    Par défaut
    Excusez-moi. Dans l'empressement j'ai oublié l'essentiel.

    Voici le script principal (test.php) :
    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
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    333
    334
    335
    336
    337
    338
    339
    340
    341
    342
    343
    344
    345
    346
    347
    348
    349
    350
    351
    352
    353
    354
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="fr-CH" xml:lang="fr-CH">
       <head>
          <title>Inscription</title>
      <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
    <link rel="stylesheet" type="text/css" href="style.css"/>
       </head>
    <body onload="Grise('liste2','Supprimer');">
    <?php
     // Vérifie état boutons Reset et Envoyer
     $Submit = $_POST["Submit"];
     $Submit1 = $_POST["Submit1"];
     if ($Submit1<>"" )
      effacer_fichier();
     if ($Submit<>"" ) {
      ecrire_fichier();
     }
    ?>
    <?php
     $Supprimer = $_POST["Supprimer"];
     $noms = $_POST["liste2"];
     echo $noms;
     if ($Supprimer<>"" )
      effacer_personne($noms);
    ?>
    <?php
     function ecrire_fichier()
     {
      $nom=$_POST["NOM"];
      $tel=$_POST["TEL"];
      $email=$_POST["EMAIL"];
      $sam14 = $_POST["sam14"];
      $dim15 = $_POST["dim15"];
      $sam21 = $_POST["sam21"];
      $dim22 = $_POST["dim22"];
      $groupe = $_POST["groupe"];
      $fichier=array("","sam14_","dim15_","sam21_","dim22_" );
      $valeur=array("",$sam14,$dim15,$sam21,$dim22);
      if ($nom<>"" ) {
       // Connexion MySQL
       $db = mysql_connect('localhost', 'user', 'pass');
       mysql_select_db('gestionPermance);
       $sql="SELECT * FROM Personne where Personne.NomPersonne='$nom'";
       $rep = mysql_query($sql) or die('Erreur SQL !'.$sql.''.mysql_error());
       // Vérifie si utilisateur déjà existant
       if (mysql_affected_rows()<>0) {
        echo 'Cette personne existe déjà';
        echo '<br/> Entrer un autre nom';
       }
       else {
        // 1. Insérer Personne
        $sql = "INSERT INTO Personne VALUES('','$nom','$tel','$email','$groupe')";
        mysql_query($sql) or die('Erreur SQL !'.$sql.''.mysql_error());
        $sql="SELECT NoPersonne FROM Personne where NomPersonne='$nom'";
        $result=mysql_query($sql) or die('Erreur SQL !'.$sql.''.mysql_error());
        $tmp = mysql_fetch_array($result);
        $noPersonne=$tmp[0];
        for ($i=1;$i<=4;$i++) {
         $passage=$passage+parcoursInsertion($noPersonne,$fichier[$i],$valeur[$i]);
        }
        if ($passage==0) {
         echo "Vous devez vous inscrire à au moins un crénau pour être validé.";
         effacer_personne($nom);
        }
       }
       mysql_close();
      }
     }
    ?>
    <?php
     function parcoursInsertion($noPersonne,$fichier,$periode) {
      $passage=0;
      for ($i=0; $i<=count($periode); $i++) {
       if ($periode[$i]<>"" ) {
        $passage=1;
        // 2. MàJ Inscription      
        $temp = $fichier.$periode[$i];
        $sql = "INSERT INTO Periode VALUES('','$temp','$noPersonne')";
        mysql_query($sql) or die('Erreur SQL !'.$sql.''.mysql_error());
       }
         }
         return $passage;
        }
    ?>
    <?php
     function effacer_personne($nom) {
      if ($nom<>"" ) {
       $db = mysql_connect('localhost', 'user', 'pass');
       mysql_select_db('gestionPermance);
       $sql="SELECT Personne.NoPersonne FROM Personne where Personne.NomPersonne='$nom'";
       $rep = mysql_query($sql) or die('Erreur SQL !'.$sql.''.mysql_error());
       $tmp = mysql_fetch_array($rep);
       // Vérifie si utilisateur existe
       if ($tmp<>0) {
        $noPersonne=$tmp[0];
        $sql="Delete Periode.* FROM Periode where Periode.FK_NoPersonne='$noPersonne'";
        $rep = mysql_query($sql) or die('Erreur SQL !'.$sql.''.mysql_error());
        $sql="Delete Personne.* FROM Personne where Personne.NoPersonne='$noPersonne'";
        $rep = mysql_query($sql) or die('Erreur SQL !'.$sql.''.mysql_error());
       }
       else {
        echo 'Cette personne n\'existe pas';
        echo '<br/> Entrer un autre nom';
       }
      }
     }
    ?>
    <?php
     function effacer_fichier() {
      $db = mysql_connect('localhost', 'user', 'pass');
      mysql_select_db('gestionPermance);
      $sql="Delete Periode.* FROM Periode";
      $rep = mysql_query($sql) or die('Erreur SQL !'.$sql.''.mysql_error());
      $sql="Delete Personne.* FROM Personne";
      $rep = mysql_query($sql) or die('Erreur SQL !'.$sql.''.mysql_error());
     }
    ?>
    <?php
     function lire_fichier($groupe, $periode) {
      $db = mysql_connect('localhost', 'user', 'pass');
      mysql_select_db('gestionPermance);
      $periode="\"$periode\"";
      $groupe="\"$groupe\"";
      $sql ="select t1.NomPersonne, t1.Tel, t1.Email from (
       select * from Personne
       left outer join Periode
       on Periode.FK_NoPersonne=Personne.NoPersonne) as t1
      Where t1.NomPeriode=$periode AND t1.Groupe=$groupe ORDER BY `NomPersonne`";
      $reponse = mysql_query($sql) or die('Erreur SQL !'.$sql.''.mysql_error());
      while ($donnees = mysql_fetch_array($reponse) )
      {
       echo $donnees['NomPersonne'] . "(".$donnees['Tel']." / ".$donnees['Email']." )";
       echo "<br/>";
      }
      mysql_close();
     }
    ?>
    <!-- Affichage du tableau d'inscription -->
    <div>
     <h1>Tableau inscription</h1>
     <hr></hr>
     <table border="1">
     <tr>
     <?php
      $N=4;
      $date_tab=array("samedi 13/12/08","dimanche 14/12/08",
          "samedi 20/12/08","dimanche 21/12/08" );
      $header_tab=array("","","Groupe 1","Groupe 2","Groupe 3" );
      $periode_tab=array("14h-15h","15h-16h","16h-17h" );
      $path_tab=array(2=>"cath",3=>"prot",4=>"evan" );
      $filename_tab=array("","sam14_14","sam14_15","sam14_16",
        "dim15_14","dim15_15","dim15_16",
        "sam21_14","sam21_15","sam21_16",
        "dim22_14","dim22_15","dim22_16" );
      for ($k=1;$k<=4;$k++)
       echo "<td class=\"Titre\">$header_tab[$k]</td>";
     echo "</tr>";
     for ($i=1; $i<=12; $i++)
     {
      echo "<tr>";
      for ($j=1; $j<=4; $j++)
      {
       if ($j==1) {
        if (($i-1) % 3 == 0)
        {
        $tmp=($i-1)/3;
        echo "<td class=\"diagonale\" >$date_tab[$tmp]</td></tr><tr>";
        }
           $tmp=($i-1)%3;
        echo "<td class=\"Titre\">$periode_tab[$tmp]</td>";
       }
       else
       {
        echo "<td class=\"normale\">";
        lire_fichier($path_tab[$j], $filename_tab[$i]);
        echo "</td>";
       }
      }
      echo "</tr>";
     }
     ?>
     </table>
    </div>
    <!-- Affichage du formulaire d'inscription -->
    <div>
     <h1>Formulaire d'inscription</h1>
     <hr></hr>
     <form action="test.php" method="post" enctype="multipart/form-data">
      <p>
       <label>Nom</label>
       <input type="text" name="NOM" size="50"/>
      </p>
      <p>
       <label>Téléphone</label>
       <input type="text" name="TEL" size="13"/>
      </p>
      <p>
       <label>Email</label>
       <input type="text" name="EMAIL" size="100"/>
      </p>
      <p>
       <label> Samedi 14/12/08</label><br/>
        <label><input type="checkbox" name="sam14[]" value="14"/>14h-15h</label>
        <label><input type="checkbox" name="sam14[]" value="15"/>15h-16h</label>
        <label><input type="checkbox" name="sam14[]" value="16"/>16h-17h</label>
      </p>
      <p>
       <label> Dimanche 15/12/08</label><br/>
        <label><input type="checkbox" name="dim15[]" value="14"/>14h-15h</label>
        <label><input type="checkbox" name="dim15[]" value="15"/>15h-16h</label>
        <label><input type="checkbox" name="dim15[]" value="16"/>16h-17h</label>
      </p>
      <p>
       <label> Samedi 21/12/08</label><br/>
        <label><input type="checkbox" name="sam21[]" value="14"/>14h-15h</label>
        <label><input type="checkbox" name="sam21[]" value="15"/>15h-16h</label>
        <label><input type="checkbox" name="sam21[]" value="16"/>16h-17h</label>
      </p>
      <p>
       <label> Dimanche 22/12/08</label><br/>
        <label><input type="checkbox" name="dim22[]" value="14"/>14h-15h</label>
        <label><input type="checkbox" name="dim22[]" value="15"/>15h-16h</label>
        <label><input type="checkbox" name="dim22[]" value="16"/>16h-17h</label>
      </p>
      <p>
       <label>Religion</label><br/>
        <label> <input type="radio" name="groupe" value="cath" checked="checked" />Groupe 1</label>
        <label> <input type="radio" name="groupe" value="prot"/>Groupe 2</label>
        <label> <input type="radio" name="groupe" value="evan" />Groupe 3</label>
      </p>
      <p>
       <input type="submit" name="Submit" value="Envoyer" />
       <input type="submit" name="Submit1" value="Reset table" />
      </p>
      <p>
       <input type="reset" name="Reset" value="Remise à zéro" />
      </p>
     </form>
    </div>
    <hr></hr>
     <!-- Lors du chargement de la page >> désactive la lecture -->
     <script type="text/javascript"><!--
      function Grise(element1,element2) {
       input = document.getElementById(element1);
       input.disabled = true;
       input2 = document.getElementById(element2);
       input2.disabled = true;
      }
     //--></script>
     <script type="text/javascript"><!--
      function Degrise(element) {
       input = document.getElementById(element);
       input.disabled = false;
      }
     //--></script>
     <script type="text/javascript" ><!--
      // Vérifie la compatibilité du navigateur
      function GetXmlHttpObject() {
       var xmlHttp=null;
       try {
        // Firefox, Opera 8.0+, Safari
        xmlHttp=new XMLHttpRequest();
       }
       catch (e) {
        // Internet Explorer
        try {
         xmlHttp=new ActiveXObject("Msxml2.XMLHTTP" );
        }
        catch (e) {
         xmlHttp=new ActiveXObject("Microsoft.XMLHTTP" );
        }
       }
       return xmlHttp;
      }
     //--></script>
     <!-- Lors de la sélection d'un groupe >> active la lecture -->
     <script type="text/javascript"><!--
      function active(element,element2,f) {
       var l1    = f.elements["liste1"];
       var l2    = f.elements["liste2"];
       var index = l1.selectedIndex;
       if (index<1) {
        //l2.options.length=0;
        // grise la 2ème liste
        input = document.getElementById(element)
        input.disabled = true;
        input2 = document.getElementById(element2)
        input2.disabled = true;
       }
       else {
        input = document.getElementById(element)
        input.disabled = false;
        input2 = document.getElementById(element2)
        input2.disabled = false;
        // Vérifie compatibilité navigateur
        xmlHttp=GetXmlHttpObject()
        if (xmlHttp == null) {
         alert ("Votre navigateur ne supporte pas les requêtes HTTP." )
          return
        }
           // Prépare une requête sur le serveur
           xmlHttp.open("POST", "sql.php", true);
     
           // attend réponse serveur (gestionnaire d'évènement pour chaque changement d'état)
           xmlHttp.onreadystatechange = function() {
     
           // requête terminée
           if (xmlHttp.readyState == 4)
          // réponse du serveur
            eval(xmlHttp.responseText);
        }
        // assigne un nom et une valeur à l'en-tête de la requête
        xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded" );
        // requête
        var data = "Groupe="+escape(l1.options[index].value)+"&form="+f.name+"&select=liste2";
        // Lance la requête
        xmlHttp.send(data);
       }
      }
     //--></script>
    <!-- Affichage du formulaire de modification -->
    <div>
     <h1>Formulaire de modification</h1>
     <hr></hr>
     <form action="test.php" method="post" name="form_modif" id="form_modif" enctype="multipart/form-data">
      <fieldset>
      <p>
       <select name="liste1" id="liste1" size="4" onchange="active('liste2','Supprimer',this.form);">
        <option value="" selected="selected"></option>
        <option value="cath">Groupe 1</option>
        <option value="prot">Groupe 2</option>
        <option value="evan">Groupe 3</option>
       </select>
       <!-- A générer automatiquement en fonction du groupe -->
       <select name="liste2" id="liste2" >
       </select>
      </p>
      <br/>
      <input type="submit" name="Supprimer" id="Supprimer" value="Supprimer" />
      </fieldset>
     </form>
    </div>
    <hr></hr>
    <div>
    <p>
     <a href="http://validator.w3.org/check?uri=referer">
     <img src="http://www.w3.org/Icons/valid-xhtml10-blue"
      alt="Valid XHTML 1.0 Strict" height="31" width="88" /></a>
    </p>
    </div>
    </body>
    </html>

    Voici le script lié avec le javascript (sql.php):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <?php
    header('Content-type: text/html; charset=iso-8859-1');
    $db = mysql_connect('', 'user', 'pass');
    mysql_select_db('gestionPermance);
    $sql = "SELECT Personne.NomPersonne FROM Personne WHERE Personne.Groupe='". $_POST["Groupe"]."' ORDER BY `NomPersonne`";
    $result = mysql_query($sql) or die('Erreur SQL !'.$sql.''.mysql_error());
    echo 'var o = null;';
    echo 'var s = document.forms["'.$_POST["form"].'"].elements["'.$_POST["select"].'"];';
    echo 's.options.length = 0;';
    while($r = mysql_fetch_array($result))
     echo 's.options[s.options.length] = new Option("'.$r["NomPersonne"].'" );';
    mysql_close($db);
    ?>
    Et voici les requêtes SQL pour la création des tables :
    [*] Table Periode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    CREATE TABLE `Periode` (
      `NoPeriode` int(11) NOT NULL auto_increment,
      `NomPeriode` tinytext NOT NULL,
      `FK_NoPersonne` int(11) NOT NULL,
      PRIMARY KEY  (`NoPeriode`),
      KEY `FK_peNoPersonne` (`FK_NoPersonne`),
      CONSTRAINT `FK_peNoPersonne` FOREIGN KEY (`FK_NoPersonne`) REFERENCES `Personne` (`NoPersonne`) ON DELETE NO ACTION ON UPDATE NO ACTION
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1
    [*] Table Personne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    CREATE TABLE `Personne` (
      `NoPersonne` int(11) NOT NULL auto_increment,
      `NomPersonne` tinytext NOT NULL,
      `Tel` tinytext,
      `Email` tinytext,
      `Groupe` tinytext NOT NULL,
      PRIMARY KEY  (`NoPersonne`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1

  5. #5
    Membre actif
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2008
    Messages : 185
    Points : 225
    Points
    225
    Par défaut
    Bonsoir,

    Donc effectivement, pour commencer, toujours vérifier que les champs contiennent des données correctes ( au bon format ) avant de les insérer
    ajoute aussi des addslashes( ) à tes variables passées en POST et GET, sinon, tu sera piegé par l'injection SQL.
    Ensuite, utilise un logiciel qui permet la coloration syntaxique correctement, tu as des ' en trop et d'autres qui manquent !

    Bon, ensuite, j'vais faire bon élève, mais ça serais mieux avec des classes, pour tout ce qui est connexion DB, et gestion de tes objets, mais bon ^^

    Sinon, à part ca, c'est pas trop mal de ce que je vois, t'a juste des ouvertures / fermetures de <? inutiles entre chaques fonctions

    Ensuite, y'a qu'un moyen de savoir, c'est de tester !

    Bonne chance !
    LoveAngel :: Meow( );
    Personne ne remarque ce qui marche trop bien. Procrastination, Terry Pratchett

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2007
    Messages : 19
    Points : 9
    Points
    9
    Par défaut
    Merci de tes conseils.

    J'ai essayé de mettre addslashes() à mes variables passés en POST, mais mes requêtes ne fonctionnent plus.

    Voici ce que j'ai fait (Pour chaque variable transmise par POST):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $Submit = addslashes($_POST["Submit"]);
    $Submit1 = addslashes($_POST["Submit1"]);
    J'ai retiré les balises PHP en trop.

    Aurais-tu un lien / livre / site sur la POO en PHP? Et sur un projet exemple étant propre si possible?

  7. #7
    Membre actif
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2008
    Messages : 185
    Points : 225
    Points
    225
    Par défaut
    De rien, si ça peux aider, j'espère au moins ne pas trop dire de conneries.

    Pour commencer sur PHP, j'avais PHP pour les nuls, que je déconseille finalement, j'ai du désapprendre un certain nombre de choses que ça m'avais appris.

    Des classes qui fonctionnent, j'en ai, mais si je te les envoie, le souci est que tu y comprendra pas forcément le fonctionnement, c'est surtout de comprendre qui est important, surtout au début, si on part sur des choses qu'on ne comprends pas :/

    Ceci dit, c'est pas très très dur, si tu connais le développement objet, c'est pas plus dur que dans un autre langage ...
    Tiens, je viens de trouver ceci : PHP5 OO
    C'est en anglais, mais tu as la majorité des mots clefs expliqués

    pour ce qui est d'un projet fait en php5 objet, je pourrais t'envoyer quelques sources si tu le désire Génération d'image en php par exemple, c'est fait en php objet ( mais par moi, ce qui implique que c'est très à l'arrache aussi )

    Voila, bonne chance en tout cas !
    J'reste à ta disposition si tu veux des explications, de l'aide, ou même pour nous tenir au courant de ton évolution
    LoveAngel :: Meow( );
    Personne ne remarque ce qui marche trop bien. Procrastination, Terry Pratchett

  8. #8
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Bonjour,

    Utilisez PDO plutôt que les fonctions mysql. Cela peut, par exemple, vous protéger plus efficacement contre les injections SQL.
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  9. #9
    Membre actif
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2008
    Messages : 185
    Points : 225
    Points
    225
    Par défaut
    Citation Envoyé par jml94 Voir le message
    Bonjour,

    Utilisez PDO plutôt que les fonctions mysql. Cela peut, par exemple, vous protéger plus efficacement contre les injections SQL.
    C'est vrai, mais pour que PDO fonctionne, il faut que PDO soit activé :/ Certains serveurs ( comme Free, pour ne pas les citer ) ne l'ont pas activé
    LoveAngel :: Meow( );
    Personne ne remarque ce qui marche trop bien. Procrastination, Terry Pratchett

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2007
    Messages : 19
    Points : 9
    Points
    9
    Par défaut
    Merci de vos conseils.
    J'ai un compte sur Free et un autre sur weboserv, les PDO sont activés uniquement sur weboserv, mais je sais que je dois utiliser ça pour me connecter là-bas.

    Je vais voir pour remodeler mon script en OO, avec la gestion en 3 couches (modèle MVC).

    Je vous tiens au courant de l'avancement.

Discussions similaires

  1. use case pour gestion des dons d'une association
    Par daroum88 dans le forum Cas d'utilisation
    Réponses: 1
    Dernier message: 09/01/2014, 12h55
  2. [Joomla!] [Recherche] Gestion des adhérents pour une association
    Par xnopre dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 15/10/2010, 13h22
  3. Quel SGBD pour la gestion des missions d'une association ?
    Par Bragon12 dans le forum Décisions SGBD
    Réponses: 6
    Dernier message: 06/05/2008, 14h32
  4. Site pour une Association (warmup) de l'Edhec
    Par friiitz dans le forum Mon site
    Réponses: 3
    Dernier message: 19/02/2007, 17h00
  5. Combien demander en "défraiements" pour une association
    Par Anne1969 dans le forum Association
    Réponses: 9
    Dernier message: 21/09/2004, 12h01

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