Formation Google AnalyticsSavez-vous bien utiliser les outils de mesure d'audience ?
Effectuez-vous un calcul de ROI (Retour sur investissement) pour savoir comment améliorer vos campagnes emarketing ?
Savez-vous utiliser les bons outils pour booster votre taux de transformation ?
La formation Web Analytics de Ranking Metrics, présentée par un expert reconnu officiellement par Google Analytics, vous apportera les réponses à toutes vos questions !
===> Informations et inscriptions.

Lequel de ces 2 codes php est le meilleur

Poster un nouveau sujet Imprimer cette discussion    Forum -> Développement d'un site Web   Les dernières discussions de ce forum sont disponibles au format RSS
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 
sff
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 03 Fév 2005
Messages: 191

URL permanente de ce messagePosté le : Mer Oct 31, 2007 13:42    Sujet du message: Lequel de ces 2 codes php est le meilleur

Salut, je me pose la question j'ai 2 codes php différent qui fonctionne tous les 2 pour la meme chose, mais je sais pas lequel est le plus interessant.

Le principal sujet étant l'utilisation des $_GET, dans 1 code ils sont utilisés, et dans l'autre non.


Avis aux connaisseurs Wink

Code1: (sans $_GET)

Code:
function items() {// Objets.

global $page;
   
    $itemsquery = doquery("SELECT * FROM {{table}} ORDER BY name", "items");
    $page .='<img src="images/jeu/puce4.gif" alt=""> <span class="mauve2"><b>Editer les objets:</b></span><br><br>Pour éditer un objet, cliquez sur celui de votre choix, dans la liste ci-dessous.<br><br>';
    while ($itemsrow = mysql_fetch_array($itemsquery)) {
        if ($itemsrow['special'] != "Aucun") { $special = '*'; } else { $special = ''; }
      if ($itemsrow['type'] == 1) { $categorie = "Pouvoir d'attaque:"; } else  { $categorie = "Pouvoir de défense:"; }
        if ($itemsrow['type'] == 1) { $type = 'Arme'; $pouvoir ='d\'attaque';}
        if ($itemsrow['type'] == 2) { $type = 'Armure'; $pouvoir ='de défense'; }
        if ($itemsrow['type'] == 3) { $type = 'Bouclier'; $pouvoir ='de défense'; }
   
   $page .='<div class="bloc_rose"><div style="float:left"><img src="images/objets/'.$itemsrow['id'].'.jpg" alt="'.stripslashes($itemsrow['name']).'"></div><a href="admin.php?do=edititem:'.$itemsrow['id'].'"><b><span class="mauve2">'.stripslashes($itemsrow['name']).'<span class="alerte">'.$special.'</span></span></b></a> - <i>type: <span class="mauve1">'.$type.'</span> - Pouvoir '.$pouvoir.': <span class="mauve1">'.$itemsrow['attribute'].'</span></i> <span class="alerte">('.$itemsrow['buycost'].' rubis)</span><br><span class="taille1">'.stripslashes($itemsrow['description']).'</span></div><br>';
   }
   
   if (mysql_num_rows($itemsquery) == 0) { $page .= '<div><span class="alerte"> Il y a aucun objets trouvé!</span><br><br></div>'; }
   $page .='<br><a href="index.php">» retourner au jeu</a><br><br>';
   
  display($page, "Editer les objets", true);
   
}

function edititem($id) {

global $page;
   
     if (isset($_POST['submit'])) {
      extract($_POST);
      $errors = 0;
      $errorlist = "";
      if ($name == "") { $errors++; $errorlist .= "- Le nom de l'objet est exigé.<br>"; }
      if (preg_match("/[\^*+<>?#]/", $name)==1) { $errors++; $errorlist .= "- Le nom de l'objet doit être écrit en caractères alphanumériques.<br>"; }
      if ($buycost == "") { $errors++; $errorlist .= "- Le prix est exigé.<br>"; }
      if (!is_numeric($buycost)) { $errors++; $errorlist .= "- Le prix doit être un nombre!<br>"; }
      if ($attribute == "") { $errors++; $errorlist .= "- L'attribut est exigé.<br>"; }
      if (!is_numeric($attribute)) { $errors++; $errorlist .= "- L'attribut doit être un nombre.<br>"; }
      if ($special == "" || $special == " ") { $special = "Aucun"; }
      if ($errors == 0) {
           
      $update = doquery("UPDATE {{table}} SET name='".addslashes($name)."',type='$type',buycost='$buycost',description='".addslashes($description)."',attribute='$attribute',special='$special' WHERE id=$id LIMIT 1", "items");
      $page .='L\'objet '.stripslashes($objets['name']).' a été mis à jour!<br><br>Maintenant vous pouvez:<br><br><a href="index.php">» retourner au jeu</a><br>» Sélectionner une autre rubrique à administrer'; 
      } else {
      $page .= '<div>La mise à jour n\'a pas pu se faire, car les erreur(s) suivante(s) se sont produite(s):<br><br><span class="alerte">'.$errorlist.'</span><br><br>Maintenant vous pouvez:<br><br><a href="?page=objets">» retourner et réessayer</a><br><a href="index.php">» retourner au jeu</a></div>';
      }      
    } 
       
   
    $itemsquery = doquery("SELECT * FROM {{table}} WHERE id='$id' LIMIT 1", "items");
    $itemsrow = mysql_fetch_array($itemsquery);
   
   if ($itemsrow["type"] == 1) { $itemsrow["type1select"] = "selected=\"selected\" "; } else { $itemsrow["type1select"] = ""; }
    if ($itemsrow["type"] == 2) { $itemsrow["type2select"] = "selected=\"selected\" "; } else { $itemsrow["type2select"] = ""; }
    if ($itemsrow["type"] == 3) { $itemsrow["type3select"] = "selected=\"selected\" "; } else { $itemsrow["type3select"] = ""; }

$page .= '
<img src="images/jeu/puce4.gif" alt=""> <span class="mauve2"><b>Editer les objets:</b></span><br><br>

<form enctype="multipart/form-data" action="" method="post">
<table width="580" border="0" cellspacing="0" cellpadding="0">
<tr valign="top"><td style="width:110px">ID:</td><td>'.$itemsrow['id'].'<br><br></td></tr>
<tr valign="top"><td style="width:110px">Nom:</td><td><input type="text" name="name" size="30" maxlength="30" value="'.stripslashes($itemsrow['name']).'"><br><br></td></tr>
<tr valign="top"><td style="width:110px">Image:</td><td><img src="images/objets/'.$itemsrow['id'].'.jpg" alt="'.stripslashes($itemsrow['name']).'"><br><br></td></tr>
<tr valign="top"><td style="width:110px">Type:</td><td><select name="type"><option value="1" '.$itemsrow['type1select'].'>Arme</option><option value="2" '.$itemsrow['type2select'].'>Armure</option><option value="3" '.$itemsrow['type3select'].'>Protection</option></select><br><br></td></tr>
<tr valign="top"><td style="width:110px">Prix:</td><td><input type="text" name="buycost" size="5" maxlength="10" value="'.$itemsrow['buycost'].'"> rubis<br><br></td></tr>
<tr valign="top"><td style="width:110px">Description:</td><td><textarea name="description" type="text" rows="5" cols="50">'.stripslashes($itemsrow['description']).'</textarea><br><br></td></tr>
<tr valign="top"><td style="width:110px">Attribut:</td><td><input type="text" name="attribute" size="5" maxlength="10" value="'.$itemsrow['attribute'].'"><br>Le nombre de points que l\'objet ajoute au pouvoir d\'attaque (armes) ou au pouvoir de défense (armures/protections).<br><br></td></tr>
<tr valign="top"><td style="width:110px">Special:</td><td><input type="text" name="special" size="30" maxlength="50" value="'.$itemsrow['special'].'"><br>Laissez "Aucun" pour donner aucun attribut spécial à l\'objet.<br><br></td></tr>
<tr valign="top"><td style="width:1px"></td><td>

<div style="text-align: center"><input type="submit" name="submit" value="Valider"> <input type="button" value="Retour" OnClick="javascript:location=\'index.php\'"></div></td></tr>
</table>

</form><br>
<span class="mauve1"><b>Attributs spéciaux des objets:</b></span><br>
Des attributs spéciaux peuvent être ajoutés à tous les objets, ce qui a pour but d\'augmenter les capacités des personnages. Par exemple si vous voulez qu\'un objet donne 50 HP à un personnage, il suffit d\'écrire maxhp,50. Ceci marche aussi dans le sens négatif. Donc si vous voulez qu\'un objet enlève 50 HP à un personnage, il suffit d\'écrire maxhp,-50.<br><br>

<img src="images/jeu/puce4.gif" alt=""> <b>maxhp:</b> Donne des points hit (HP)<br>
<img src="images/jeu/puce4.gif" alt=""> <b>maxmp:</b> Donne des points de magie (MP)<br>
<img src="images/jeu/puce4.gif" alt=""> <b>maxtp:</b> Donne des points de voyages<br>
<img src="images/jeu/puce4.gif" alt=""> <b>goldbonus:</b> Donne un bonnus de rubis (en pourcentage)<br>
<img src="images/jeu/puce4.gif" alt=""> <b>expbonus:</b> Donne un bonnus d\'expérience (en pourcentage)<br>
<img src="images/jeu/puce4.gif" alt=""> <b>strength:</b> Donne de la force (qui s\'ajoute également au pouvoir d\'attaque)<br>
<img src="images/jeu/puce4.gif" alt=""> <b>dexterity:</b> Donne de la dextérité (qui s\'ajoute également au pouvoir de défense)<br>
<img src="images/jeu/puce4.gif" alt=""> <b>attackpower:</b> Donne un pouvoir d\'attaque<br>
<img src="images/jeu/puce4.gif" alt=""> <b>defensepower:</b> Donne un pouvoir de défense<br><br>
';
   
    display(parsetemplate($page), "Editer les objets");
   
}


Code 2: (avec $_GET)

Code:

function objets() {

  $page ='<div><img src="images/jeu/actions/administration.jpg" width="580" height="82" alt="Administration"/><br /><br /></div>';

  if(isset($_GET['edit'])){
 
  $objets_sql = doquery("SELECT * FROM {{table}} WHERE id='".$_GET['edit']."' ", "items");
  $objets = mysql_fetch_array($objets_sql);
 
  if (isset($_POST['submit'])) {
      extract($_POST);
      $errors = 0;
      $errorlist = "";
      if ($name == "") { $errors++; $errorlist .= "- Le nom de l'objet est exigé.<br />"; }
      if (preg_match("/[\^*+<>?#]/", $name)==1) { $errors++; $errorlist .= "- Le nom de l'objet doit être écrit en caractères alphanumériques.<br />"; }
      if ($buycost == "") { $errors++; $errorlist .= "- Le prix est exigé.<br />"; }
      if (!is_numeric($buycost)) { $errors++; $errorlist .= "- Le prix doit être un nombre!<br />"; }
      if ($attribute == "") { $errors++; $errorlist .= "- L'attribut est exigé.<br />"; }
      if (!is_numeric($attribute)) { $errors++; $errorlist .= "- L'attribut doit être un nombre.<br />"; }
      if ($special == "" || $special == " ") { $special = "Aucun"; }
      if ($errors == 0) {
           
      $update = doquery("UPDATE {{table}} SET name='".addslashes($name)."',type='$type',buycost='$buycost',description='".addslashes($description)."',attribute='$attribute',special='$special' WHERE id='".$objets['id']."' LIMIT 1", "items");
      $page .='L\'objet '.stripslashes($objets['name']).' a été mis à jour!<br /><br />Maintenant vous pouvez:<br /><br /><a href="index.php">» retourner au jeu</a><br />» Sélectionner une autre rubrique à administrer'; 
      } else {
      $page .= '<div>La mise à jour n\'a pas pu se faire, car les erreur(s) suivante(s) se sont produite(s):<br /><br /><span class="alerte">'.$errorlist.'</span><br /><br />Maintenant vous pouvez:<br /><br /><a href="?page=objets">» retourner et réessayer</a><br /><a href="index.php">» retourner au jeu</a></div>';
      }      
    } else{
   
    if ($objets['type'] == 1) { $objets['type1select'] = 'selected="selected" '; } else { $objets['type1select'] = ""; }
    if ($objets['type'] == 2) { $objets['type2select'] = 'selected="selected" '; } else { $objets['type2select'] = ""; }
    if ($objets['type'] == 3) { $objets['type3select'] = 'selected="selected" '; } else { $objets['type3select'] = ""; }
   
 
$page .= '
<img src="images/jeu/puce4.gif" alt=""/> <span class="mauve2"><b>Editer les objets:</b></span><br /><br />

<form enctype="multipart/form-data" action="" method="post">
<table width="580" border="0" cellspacing="0" cellpadding="0">
<tr valign="top"><td style="width:110px">ID:</td><td>'.$objets['id'].'<br /><br /></td></tr>
<tr valign="top"><td style="width:110px">Nom:</td><td><input type="text" name="name" size="30" maxlength="30" value="'.stripslashes($objets['name']).'" /><br /><br /></td></tr>
<tr valign="top"><td style="width:110px">Image:</td><td><img src="images/objets/'.$objets['id'].'.jpg" alt="'.stripslashes($objets['name']).'"/><br /><br /></td></tr>
<tr valign="top"><td style="width:110px">Type:</td><td><select name="type"><option value="1" '.$objets['type1select'].'>Arme</option><option value="2" '.$objets['type2select'].'>Armure</option><option value="3" '.$objets['type3select'].'>Protection</option></select><br /><br /></td></tr>
<tr valign="top"><td style="width:110px">Prix:</td><td><input type="text" name="buycost" size="5" maxlength="10" value="'.$objets['buycost'].'" /> rubis<br /><br /></td></tr>
<tr valign="top"><td style="width:110px">Description:</td><td><textarea name="description" type="text" rows="5" cols="50">'.stripslashes($objets['description']).'</textarea><br /><br /></td></tr>
<tr valign="top"><td style="width:110px">Attribut:</td><td><input type="text" name="attribute" size="5" maxlength="10" value="'.$objets['attribute'].'" /><br />Le nombre de points que l\'objet ajoute au pouvoir d\'attaque (armes) ou au pouvoir de défense (armures/protections).<br /><br /></td></tr>
<tr valign="top"><td style="width:110px">Special:</td><td><input type="text" name="special" size="30" maxlength="50" value="'.$objets['special'].'" /><br />Laissez "Aucun" pour donner aucun attribut spécial à l\'objet.<br /><br /></td></tr>
<tr valign="top"><td style="width:1px"></td><td>

<div style="text-align: center"><input type="submit" name="submit" value="Valider" /> <input type="button" value="Retour" OnClick="javascript:location=\'index.php\'"/></div></td></tr>
</table>

</form><br />
<span class="mauve1"><b>Attributs spéciaux des objets:</b></span><br />
Des attributs spéciaux peuvent être ajoutés à tous les objets, ce qui a pour but d\'augmenter les capacités des personnages. Par exemple si vous voulez qu\'un objet donne 50 HP à un personnage, il suffit d\'écrire maxhp,50. Ceci marche aussi dans le sens négatif. Donc si vous voulez qu\'un objet enlève 50 HP à un personnage, il suffit d\'écrire maxhp,-50.<br /><br />

<img src="images/jeu/puce4.gif" alt=""/> <b>maxhp:</b> Donne des points hit (HP)<br />
<img src="images/jeu/puce4.gif" alt=""/> <b>maxmp:</b> Donne des points de magie (MP)<br />
<img src="images/jeu/puce4.gif" alt=""/> <b>maxtp:</b> Donne des points de voyages<br />
<img src="images/jeu/puce4.gif" alt=""/> <b>goldbonus:</b> Donne un bonnus de rubis (en pourcentage)<br />
<img src="images/jeu/puce4.gif" alt=""/> <b>expbonus:</b> Donne un bonnus d\'expérience (en pourcentage)<br />
<img src="images/jeu/puce4.gif" alt=""/> <b>strength:</b> Donne de la force (qui s\'ajoute également au pouvoir d\'attaque)<br />
<img src="images/jeu/puce4.gif" alt=""/> <b>dexterity:</b> Donne de la dextérité (qui s\'ajoute également au pouvoir de défense)<br />
<img src="images/jeu/puce4.gif" alt=""/> <b>attackpower:</b> Donne un pouvoir d\'attaque<br />
<img src="images/jeu/puce4.gif" alt=""/> <b>defensepower:</b> Donne un pouvoir de défense<br /><br />
';
}   
  }else{
  $objets_sql = doquery("SELECT * FROM {{table}} ORDER BY name", "items");
 
  $page .='<img src="images/jeu/puce4.gif" alt=""/> <span class="mauve2"><b>Editer les objets:</b></span><br /><br />Pour éditer un objet, cliquez sur celui de votre choix, dans la liste ci-dessous.<br /><br />';
 
   while ($objets = mysql_fetch_array($objets_sql)) {
        if ($objets['special'] != "Aucun") { $special = '*'; } else { $special = ''; }
      if ($objets['type'] == 1) { $categorie = "Pouvoir d'attaque:"; } else  { $categorie = "Pouvoir de défense:"; }
        if ($objets['type'] == 1) { $type = 'Arme'; $pouvoir ='d\'attaque';}
        if ($objets['type'] == 2) { $type = 'Armure'; $pouvoir ='de défense'; }
        if ($objets['type'] == 3) { $type = 'Bouclier'; $pouvoir ='de défense'; }
   
   $page .='<div class="bloc_rose"><div style="float:left"><img src="images/objets/'.$objets['id'].'.jpg" alt="'.stripslashes($objets['name']).'" /></div><a href="?page=objets&amp;edit='.$objets['id'].'"><b><span class="mauve2">'.stripslashes($objets['name']).'<span class="alerte">'.$special.'</span></span></b></a> - <i>type: <span class="mauve1">'.$type.'</span> - Pouvoir '.$pouvoir.': <span class="mauve1">'.$objets['attribute'].'</span></i> <span class="alerte">('.$objets['buycost'].' rubis)</span><br /><span class="taille1">'.stripslashes($objets['description']).'</span></div><br />';
   }
   
   if (mysql_num_rows($objets_sql) == 0) { $page = '<div><span class="alerte"> Il y a aucun objets trouvé!</span><br /><br /></div>'; }
   $page .='<br /><a href="index.php">» retourner au jeu</a><br /><br />';
  }
    echo $page;
}


Merci, A bientot
 
sff Visiter le site web du posteur
silef
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 13 Jan 2006
Messages: 202

URL permanente de ce messagePosté le : Mer Oct 31, 2007 13:55    Sujet du message: Lequel de ces 2 codes php est le meilleur

J'ai vaguement regardé de trés loin ce code mais perso je préfère ne récupèrer les paramètres (get ou post) qu'une seule fois au début du code, et les nettoyer au passage pour des raisons de sécurité.

Alors que si tu utilises 50 fois le même paramètre get à chaque fois faut veiller à la sécurité.

Et puis je préfère les post aux get, ça c'est perso^^
 
silef
sff
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 03 Fév 2005
Messages: 191

URL permanente de ce messagePosté le : Mer Oct 31, 2007 14:01    Sujet du message: Lequel de ces 2 codes php est le meilleur

Dans le deuxième code, je récupére a vrai dire qu'un seule fois le Get dans la requete sql

$objets_sql = doquery("SELECT * FROM {{table}} WHERE id='".$_GET['edit']."' ", "items");
$objets = mysql_fetch_array($objets_sql);

et je fais fonctionne tous le reste avec cette requete, par contre dans le premier code je fonctionne avec des url de ce genre ?do=items: 43, et tu as pu voir que je récupère l'id non pas avec des GET mais directement par la fonction avec: function edititem($id) { ...

Donc voila en fait j'essaye de savoir lequel des 2 methodes est la plus interessante en terme de sécu et de rapidité.
 
sff Visiter le site web du posteur
bproductiv
WRInaute accro
WRInaute accro

Inscrit le: 27 Déc 2004
Messages: 2273
Localisation: La roche s/ yon

URL permanente de ce messagePosté le : Mer Oct 31, 2007 14:50    Sujet du message: Lequel de ces 2 codes php est le meilleur

Trop de code ..la flemme de lire tout ca
 
bproductiv Visiter le site web du posteur
Patrice A.
Modérateur
Modérateur

Inscrit le: 11 Fév 2005
Messages: 2405
Localisation: Nantes

URL permanente de ce messagePosté le : Mer Oct 31, 2007 15:04    Sujet du message: Lequel de ces 2 codes php est le meilleur

Au niveau sécurité, tes deux codes sont parfaitement vulnérables.

On n'utilise PAS, JAMAIS, de valeurs entrées par l'utilisateur, sans les "nettoyer". Il faut que tu fasses un mysql_real_escape_string() sur tes variables avant de les balancer dans tes requêtes SQL !

Au niveau lisibilité, tu pourrais beaucoup améliorer.
Que fait extract() ? je suppose que ça met $_POST['truc'] dans $truc c'est ça ? C'est aussi une grosse faille de sécurité, ça veut dire qu'on peut remplacer toutes tes variables de ton script en les passant par post ?

Mets en début de script tes variables, ça sera nettement plus propre et moins risqué.
Tu devrais, pour une variable TEXTE toujours avoir :
Code:

$var1=isset($_GET['var1']) ? mysql_real_escape_string($_GET['var1']) : '';

Et pour un entier :

Code:

$var1=isset($_GET['var1']) ? intval($_GET['var1']) : 0;
 
Patrice A. Visiter le site web du posteur
Robinson
WRInaute accro
WRInaute accro

Inscrit le: 26 Oct 2005
Messages: 1405

URL permanente de ce messagePosté le : Mer Oct 31, 2007 15:29    Sujet du message: Lequel de ces 2 codes php est le meilleur

Tu es en train de recréer un jeu rpg, bon courage, ça demande un énorme boulot.

J'aurai bien envie d'en créer un mais pfiouuuuu, pas le courage et peur que ça ne soit pas assez rentable Very Happy
 
Robinson
Leonick
WRInaute accro
WRInaute accro

Inscrit le: 08 Aoû 2004
Messages: 8810
Localisation: Val de Marne

URL permanente de ce messagePosté le : Mer Oct 31, 2007 17:53    Sujet du message: Lequel de ces 2 codes php est le meilleur

silef a écrit:
Et puis je préfère les post aux get, ça c'est perso^^
au niveau sécurité, le post peut aussi se faire spammer, du genre avec curl, par exemple.
 
Leonick Visiter le site web du posteur
 
Montrer les messages depuis:   
Revenir en haut    Forum -> Développement d'un site Web Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 1 - 
Connexion
Nom d'utilisateur:    Mot de passe:      Se connecter automatiquement à chaque visite    

CLIQUEZ ICI pour vous inscrire à WebRankInfo (forum, annuaire, outils...)

Connexion

© 2001-2005 phpBB Group, support français
Personnalisation : WebRankInfo ™


 ODP  Firefox  Alsacreations  annuaire webmaster Yagoort