Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1530 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Validation de ma page php

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Validation de ma page php

n°2006896
domi_bu
Posté le 03-07-2010 à 15:58:10  profilanswer
 

Bonjour
 
J'ai réussi à faire 2 pages en php :
- 1 page qui affiche une liste
- 1 page qui permet de modifier un element de la liste OU de créer un nouveua élément de la liste.
 
Ces 2 pages fonctionnent (j'ai en ai bavé qd même pour tout comprendre ...). J'ai utilisé du pdo, du mysql, du css.  
 
J'aurai aimé avoir vos avis. Est ce que c'est bien fait ? Est ce la bonne méthode ?  
 
Merci beaucoup . DOminique
 
 
page de la liste :

Citation :


 
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
   <head>
       <title>Mon super site</title>
    <link rel="stylesheet" media="screen" type="text/css" title="Design" href="css/style.css" />
       <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
   </head>
 
   <body>
 
       <?php include_once("include/en_tete.php" ); ?>
 
       <?php include_once("include/menu.php" );  ?>
   
       <div id="corps">
   <h1>Liste des équipes</h1>
   <a href="formulaire_equipe.php"><alt="créer une équipe" title="créer"  />créer équipe</a>  
   <br /><br/>  
   <table>
     
    <thead><tr><th>Id</th><th>Nom court</th><th>Nom long</th><th>Date creation</th><th>Logo</th><th>Nom logo</th><th colspan=2>Actions</th></tr></thead>
    <tbody>
     
    <?php  
    // requete de la liste des équipes
    include ("include/connection.php" );    
    $Resultat = $bdd->query('SELECT id_equipe, nom_court, nom_long, date_creation, logo, nom_logo from equipe');
    // construction du tableau des équipes
    while ($donnees = $Resultat->fetch())
    {
     echo '<tr><td>';
     echo $donnees['id_equipe'];
     echo '</td><td>';
     echo $donnees['nom_court'];
     echo '</td><td>';
     echo $donnees['nom_long'];
     echo '</td><td>';
     echo $donnees['date_creation'];
     echo '</td><td>';
     // echo $donnees['logo'];
     echo '<img src="logos/'.$donnees['nom_logo'].'" title = "dynamique"  />';
     // echo '<img src="logos/118-10-1.jpg" title="en dur" />';
     echo '</td><td>';
     echo $donnees['nom_logo'];
     echo '</td><td>';
     echo '<a href="formulaire_equipe.php?id_equipe='.$donnees['id_equipe']. '"><img src ="image/edit.png" alt="update" title="modifier" /></a>';
     echo '</td><td>';
     echo '<a href="delete_equipe.php?id_equipe='.$donnees['id_equipe'].    '" onclick="return confirm(\'Suppression ?\');"><img src ="image/delete.png" alt="supprimer" title="supprimer"  />  </a>';
     echo '</td></tr>';
    }
             
    ?>
     
    </tbody>
       
   </table>
     
    </div>
   
       <?php include_once("include/pied_page.php" ); ?>
 
   </body>
</html>
 


 
 
et page de l'ajout ou création d'un élement :
 

Citation :


 
<?php  
   
include_once("include/connection.php" );
 
// si l'id est connu ==> cas de la modif
if (!empty($_GET['id_equipe'])) // recupération des données à afficher
{
 $Requete = $bdd->prepare('SELECT id_equipe, nom_court, nom_long, date_creation,logo, nom_logo from equipe where id_equipe = ?') or die(print_r($bdd->errorInfo()));
 $Requete->execute(array($_GET['id_equipe']));
 $donnees=$Requete->fetch();  
 
 $id_equipe = $donnees['id_equipe'];
 $nom_court = $donnees['nom_court'];
 $nom_long = $donnees['nom_long'];
 $date_creation = $donnees['date_creation'];
 $logo = $donnees['logo'];
 $nom_logo = $donnees['nom_logo'];
}
else
{
 $nom_court = '';
 $nom_long = '';
 $date_creation = '';
 $logo = '';
 $nom_logo = '';
}
 
if (!empty($_POST['ok'])) // formulaire saisi
{
 include_once("include/upload.php" ); // traitement de l'image ==> le nom de l'image téléchargés est dans $fichier
 if (!empty($_POST['id_equipe'])) // cas de la mise à jour : recupération des données du formulaire pour mise à jour bdd
 {
  $Requete = $bdd->prepare('UPDATE equipe SET nom_court=?, nom_long=?, date_creation=?, logo=?, nom_logo=? where id_equipe = ?');
  $Requete->execute(array($_POST['nom_court'],$_POST['nom_long'],$_POST['date_creation'],$_POST['logo'],$fichier, $_POST['id_equipe'])) or die(print_r($bdd->errorInfo()));;
 }
 
 if (isset($_POST['id_equipe']))  // cas ou l'id est inconnu dans le formulaire : insertion.
 {
  $Requete = $bdd->prepare('INSERT INTO equipe (nom_court, nom_long, date_creation, logo, nom_logo) VALUES (?,?,?,?,?)') or die(print_r($bdd->errorInfo()));
  $Requete->execute(array($_POST['nom_court'],$_POST['nom_long'],$_POST['date_creation'],$_POST['logo'],$fichier)) or die(print_r($bdd->errorInfo()));
 }
 
 header('Location: liste_equipe.php'); // redirection vers la liste des équipes
 exit;
}
?>
 
 
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
 <head>
       <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Mon super site</title>
    <link rel="stylesheet" media="screen" type="text/css" title="Design" href="css/style.css" />
 </head>
 
 <body>
 
  <?php include_once("include/en_tete.php" ); ?>
 
  <?php include_once("include/menu.php" ); ?>
   
       <div id="corps">
   <h1>
   <?php if (empty($_GET['id_equipe'])) { echo 'Créer une équipe';} else{ echo 'Modifier une équipe';}   ?>
   </h1>
     
   <form method="post" action="formulaire_equipe.php" enctype="multipart/form-data">
   
    <input type="file" name="photo" />(que du .jpeg, jpg, .png extension minuscule...)
    <input type="hidden" name="MAX_FILE_SIZE" value="100000" />
   
    <p>
         <input type="hidden" name="id_equipe"  title="cle non modifiable" value = "<?php echo $id_equipe ?>"   /><br />
    Nom court   <input type="text" name="nom_court" value = "<?php echo $nom_court ?>"     /><br />
    Nom long   <input type="text" name="nom_long" value = "<?php echo $nom_long ?>"     /><br />
     
    date création   <input type="text" name="date_creation"  value = "<?php echo $date_creation ?>"     /><br />  
    logo     <input type="text" name="logo"  value = "<?php echo $logo ?>"     /><br />  
     
    <br />
    <input type="submit" name="ok" value="OK" />
    </p>
 
   </form>
    </div>
   
       <?php include_once("include/pied_page.php" ); ?>
 
   </body>
</html>
 

mood
Publicité
Posté le 03-07-2010 à 15:58:10  profilanswer
 

n°2007196
omega2
Posté le 05-07-2010 à 16:25:29  profilanswer
 

"if (!empty($_POST['ok']))"
 
OK, c'est ton bouton? Si c'est le cas alors sache que ce test n,est pas bon. Quand on valide un formulaire avec la touche entré, aucun bouton n'est cliqué et du coup aucun identifiant de bouton n'est envoyé par le navigateur. Si tu veux savoir si on a remplis un formulaire alors il vaut mieux que tu regardes, soit le nombre de valeurs présentes dans "$_POST" soit la présence d'un des éléments du formulaire. Ca sera plus fiable.  
 
En dehors de ce détail, ton code à l'air bon.

n°2007198
dwogsi
Défaillance cérébrale...
Posté le 05-07-2010 à 16:35:28  profilanswer
 

Personnellement, je n'aime pas beaucoup les *_once().
A moins d'avoir une structure compliquée ou inconnue (??) et de ne pas être certain de ne pas avoir inclus deux fois le même fichier, ces fonctions forces inutilement php à contrôler si le fichier n'a pas déjà été inclut.

 

Par ailleurs, j'ai une préférence pour require() plutôt que include(). La première génère une erreur et stop l'exécution du script alors que la seconde ne fait que générer un warning.

 

Sinon, tu affiches les erreurs en cas d'échec des requêtes à la DB. A priori, en production, on ne devrait pas les afficher. Le mieux étant de les logger dans un fichier.

 

Bon... Je suis peut-être un peu pointilleux, mais prendre des bonnes habitudes dès le début est une bonne chose. D'ailleurs je remarque que tu as utilisé PDO, ce que malheureusement peu de débutantss font, donc tu es vraisemblablement sur la bonne voie !


Message édité par dwogsi le 05-07-2010 à 16:40:39

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°2007203
omega2
Posté le 05-07-2010 à 16:48:55  profilanswer
 

Pour ma part, je préfère les "_once" à la version sans. C'est pas le peu de ressource perdu qui change grand chose et quand on commence à bosser sur un projet important, on a vite fait d'oublier qu'un fichier donné peut être appelé par tel et tel autre.
Certe quand le site ne fait que 3-4 fichiers, on en a pas besoin, mais quand on a un site sous forme modulaire, ça sauve par mal de temps de ne pas avoir à ce soucier des fichiers déjà chargé par un autre module.

n°2007205
dwogsi
Défaillance cérébrale...
Posté le 05-07-2010 à 16:53:05  profilanswer
 

Ce n'est effectivement pas pour gagner en ressources, mais juste pour le principe ça me dérange. :)
Dans une structure modulaire, pourquoi pas oui. Mais en l'occurrence : non.


Message édité par dwogsi le 05-07-2010 à 16:55:55

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°2007321
Profil sup​primé
Posté le 06-07-2010 à 10:34:18  answer
 

Ce qui me dérange surtout dans ton code, c'est les requêtes SQL au milieu de la page. Tu devrais les faire avant toute sortie, pour séparer les couches bdd/affichage ;)

n°2007524
domi_bu
Posté le 06-07-2010 à 18:48:51  profilanswer
 

Merci à tous pour vos retours. C'est encourageant.  
luc@s : tu dis que ça te semble étrange ces SELECT en plein milieu de la page. Que veux tu dire exactement ? C'est pas trés propre ? J'ai tenté de faire des include , mais je trouvais que ça alourdissait.  
 
DOminique

n°2007545
Profil sup​primé
Posté le 06-07-2010 à 19:40:32  answer
 

Je veux dire tu pourrais faire comme ça plutôt :

Code :
  1. // Contruction du tableau
  2.  
  3. $equipes = array();
  4. while($tmp = $Resultat->fetch()) {
  5.     $equipes[] = $tmp;
  6. }  
  7. ?>
  8. <!-- ton HTML -->
  9.     
  10. <?php foreach($equipes as $equipe) : ?>
  11. <tr>
  12. <td>
  13.     <?php echo $equipe['id_equipe']; ?>
  14. </td>
  15. <td>
  16.     <?php echo $equipe['nom_court']; ?>
  17. </td>
  18. <td>
  19.     <?php echo $equipe['nom_long']; ?>
  20. </td>
  21. <td>
  22.     <?php echo $equipe['date_creation']; ?>
  23. </td>
  24. <td>
  25.     <?php echo $equipe['logo']; ?>
  26.     <img src="logos/'.$equipe['nom_logo'].'" title = "dynamique"  />';
  27.     <img src="logos/118-10-1.jpg" title="en dur" />';
  28. </td>
  29. <td>
  30.     <?php echo $equipe['nom_logo']; ?>
  31. </td>
  32. <td>
  33. <a href="formulaire_equipe.php?id_equipe=$equipe['id_equipe']"><img src ="image/edit.png" alt="update" title="modifier" /></a>
  34. </td>
  35. <td>
  36. <a href="delete_equipe.php?id_equipe=$equipe['id_equipe']" onclick="return confirm('Suppression ?');"><img src ="image/delete.png" alt="supprimer" title="supprimer"  />
  37. </td></tr>
  38. <?php endif; ?>
  39. <!-- Reste du HTML -->

n°2007574
domi_bu
Posté le 06-07-2010 à 21:22:22  profilanswer
 

ah , ok, j'ai compris. Tu veux dire qu'il vaut mieux faire de l'html dans lequel on intègre des petits bouts de php, au lieu de faire du php dans lequel on écrit de l'html.... (bref je me comprends)... Mais tu as raison c'est plus lisible. Merci pour ce conseil. Dominique.

n°2007608
stealth35
Posté le 06-07-2010 à 23:04:07  profilanswer
 


 
pas besoin de faire une boucle  
 

Code :
  1. $equipes = $Resultat->fetchAll();


 
;)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Validation de ma page php

 

Sujets relatifs
Validation d'un formulaire sans changer de pagePb validation page HTML
Script "Ecrire login + mot de passe et validation sur une page"ouvrir nouvelle page apres validation formulaire connex
[resolu] Pb validation - cause "input" - pb mise en pageInsertion d'une video dans une page web avec la validation W3C
[pour les rusés !] Demande de validation de la sécurité de ma Loterie[JS] renvoi sur autre page apres validation
Rafraichissement d'une page mère après validation d'une popupformulaire - ouvrir une page après validation
Plus de sujets relatifs à : Validation de ma page php


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR