PHP5 et CLASSE

PHP5 et CLASSE - PHP - Programmation

Marsh Posté le 24-11-2006 à 17:53:22    

Bonjour,
 
Je suis débutant dans la programmation en php5 et je debute avec l'exemple ci dessus.
Le problème est que ça ne fonctionne pas et j'aimerais aussi savoir si mon code est bien ait ou si il manque de qualité car n'oubliez pa je débute.
 
Voici le fichier connexion.php

Code :
  1. $mysql_adresse = "localhost";
  2. $mysql_login = "kaze67";
  3. $mysql_pass = "kaze";
  4. $mysql_base = "test";


 
 
 
Voici ma classe client dans le fichier client.php

Code :
  1. <?php
  2. class Client
  3. {
  4. private $id;
  5. private $nom;
  6. private $prenom;
  7. private $dNaiss;
  8. private $dept;
  9. function __construct()
  10. {
  11.     }
  12. public function setPrenom($pre)
  13. {
  14.      $this->prenom=$pre;
  15.     }
  16. public function getPrenom()
  17. {
  18.        return $this->prenom;
  19.     }
  20.  
  21.    public function setNom($nm)
  22. {
  23.      $this->nom=$nm;
  24.     }
  25.    public function getNom() {
  26.        return $this->nom;
  27.    }
  28.  
  29.    public function setId($code)
  30. {
  31.      $this->id=$codce;
  32.     }
  33.     public function getid() {
  34.        return $this->id;
  35.    }
  36.  
  37.    public function setDNaiss($naiss)
  38. {
  39.      $this->dNaiss=$naiss;
  40.     }
  41.    public function getDNaiss() {
  42.        return $this->dNaiss;
  43.    }
  44.  
  45.    public function setDept($dp)
  46. {
  47.      $this->dept=$dp;
  48.     }
  49.     public function getDept() {
  50.        return $this->dept;
  51.    }
  52.  
  53. }
  54. ?>


 
 
Voici la classe ClasseMysql dans le fichier mysql.php

Code :
  1. <?php
  2. class ClasseMysql {
  3.     private $adr;               // url de la base
  4.     private $login;             // utilisateur de la base
  5.     private $passe;             // mot de passe
  6.     protected $base;            // nom de la base
  7.    
  8.     function __construct() {
  9. // on ouvre qu'un seule fois le fichier conexion.php
  10.         require_once "connexion.php";
  11.         $this->adr = $mysql_adresse;
  12.         $this->login = $mysql_login;
  13.         $this->passe = $mysql_pass;
  14.         $this->base = $mysql_base;
  15.     }
  16.    
  17.     function __destruct() {
  18.     }
  19.    
  20.     public function connexion()
  21. {
  22. // connexion à la base de données
  23.  $cnx = mysql_connect($this->adr, $this->login, $this->passe);
  24.  //si connexion echoue
  25.  if (!$cnx)
  26.  {
  27.   echo "Erreur de connexion à la base de données <b>".$this->base."</b>";
  28.   return false;
  29.  }
  30.  if (!mysql_select_db($this->base))
  31.  {
  32.   echo "Erreur : ".mysql_error( );
  33.   mysql_close();
  34.   return false;
  35.  }
  36.  return true; // connexion réussi
  37.     }
  38.    
  39. public function NbEnregristrement($chaine)
  40. {
  41.  $res_requete=mysql_query($chaine);//interroge BD
  42.  //on verifie qu'il y a des valeurs dans la tables
  43.  $nb=mysql_num_rows($res_requete);
  44.  return $nb;
  45. }
  46. public function exec($chaineSql,$insert==null)
  47. {
  48.  $res_requete=mysql_query($chaineSql);//interroge BD
  49.  if ($insert)// signifie qu'il est a true alors ona  fait un insertion
  50.  {
  51.   $resultat = mysql_insert_id();
  52.  }
  53.  else
  54.  {// simple récuperation de valeur
  55.   $resultat = mysql_fetch_array($res_requete)
  56.  }
  57.  return $resultat;
  58. }
  59. public function recupValeur($chaineSQL, $numChamp)
  60. // si requete detient plusieurs champs alors on choisit le numChamp
  61. {
  62.  $res_requete=mysql_query($chaineSQL,$cnx);
  63.  $valeur = mysql_result($res_requete,0,mysql_field_name($res_requete, $numChamp));
  64.  return $valeur;
  65. }
  66. public function close() {
  67.         mysql_close();
  68.     }
  69. ?>


 
 
Voici le fichier Ajout.php

Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  5. <title>oOo AJOUT oOo</title>
  6. <link href="../../styles.css" rel="stylesheet" type="text/css" />
  7. </head>
  8. <style type="text/css">
  9. #Layer4 {
  10. position:absolute;
  11. width:188px;
  12. height:28px;
  13. z-index:1;
  14. left: 651px;
  15. top: 15px;
  16. }
  17. </style>
  18. <script language="javascript">
  19. function FonctionTest()
  20. {
  21. var compteurERR=0;
  22. var messageErreur="";
  23. var lettre="";
  24. if (document.ajoutClient.nom.value=="" )
  25. {
  26.  messageErreur=messageErreur + "\t- Nom \n";
  27.  compteurERR=compteurERR+1;
  28. }
  29. if (document.ajoutClient.prenom.value=="" )
  30. {
  31.  messageErreur=messageErreur + "\t- Prenom \n";
  32.  compteurERR=compteurERR+1;
  33. }
  34. if (document.ajoutClient.dnaiss.value=="" )
  35. {
  36.  messageErreur=messageErreur + "\t- Date Naisse \n";
  37.  compteurERR=compteurERR+1;
  38. }
  39. if (document.ajoutClient.dept.value=="" )
  40. {
  41.  messageErreur=messageErreur + "\t- Departement \n";
  42.  compteurERR=compteurERR+1;
  43. }
  44. switch (compteurERR)
  45. {
  46.  case 0:
  47.      window.location.replace(
  48.      "ajoutScript.php?dept="+ document.ajoutClient.dept.value +
  49.      "&nom="+ document.ajoutClient.nom.value +
  50.      "&prenom="+ document.ajoutClient.prenom.value +
  51.      "&dnaiss="+ document.ajoutClient.dnaiss.value
  52.      );
  53.     break;
  54.  case 1:
  55.     alert ("Veuillez remplir le champ suivant :\n " + messageErreur);
  56.     break;
  57.  default:
  58.     alert ("Veuillez remplir les champs suivants :\n " + messageErreur);
  59.     break;
  60. }
  61. }// fin de fnction
  62. </script>
  63. <body>
  64. <table width="188" border="0" class="bordure">
  65.   <tr>
  66.     <td width="156" class="cadre1"><u>&nbsp;Ajout&nbsp;d'un&nbsp;client&nbsp;</u></td>
  67.     <td width="58" class="cadre2"><a href="../GestionClients.php?req=2" class="lien"><b><font color ="red">&nbsp;Retour&nbsp;</font></b></a></td>
  68.   </tr>
  69. </table>
  70. <p>&nbsp;</p>
  71. <form name="ajoutClient" method="post">
  72. <table width="349" border="0" class="bordure">
  73. <th class="cadre3" colspan="2"><font color="red"> Les champs suivis de * sont boligatoires</font></th>
  74.  
  75.   <tr>
  76.     <td width="165" class="cadre1">&nbsp;Nom</td>
  77.     <td width="168" class="cadre2">
  78.       <input name="nom" type="text" id="nom" />*
  79.     </td>
  80.   </tr>
  81.   <tr>
  82.     <td width="165" class="cadre1">&nbsp;Prenom</td>
  83.     <td width="168" class="cadre2">
  84.       <input name="prenom" type="text" id="prenom" /></td>
  85.   </tr>
  86.    <tr>
  87.     <td class="cadre1">&nbsp;dNaiss</td>
  88.     <td class="cadre2">
  89.       <input name="dnaiss" type="text" id="dnaiss" />*</td>
  90.   </tr>
  91.    <tr>
  92.     <td class="cadre1">&nbsp;Dept</td>
  93.     <td class="cadre2">
  94.       <input name="dept" type="text" id="dept" />*
  95.     </td>
  96.    </tr>
  97.   <tr>
  98.     <td colspan="2" class="cadre1">
  99.       <div align="right">
  100.         <input name="button" type="button" onClick="FonctionTest()" value="Creer">
  101.       </div>
  102.     </td>
  103.   </tr>
  104. </table>
  105. </form>
  106. </body>
  107. </html>


 
 
pour finir le fichier AjoutScript.php

Reply

Marsh Posté le 24-11-2006 à 17:53:22   

Reply

Marsh Posté le 24-11-2006 à 17:55:38    

Voici le fichier ajoutScript.php

Code :
  1. <?php
  2. include '../mysql.php';
  3. include '../client.php';
  4. $cli = new Client();
  5. $cli->setDept($_GET['dept']);
  6. $cli->setNom($_GET['nom']);
  7. $cli->setPrenom($_GET['prenom']);
  8. $cli->setDNaiss($_GET['dnaiss']);
  9. $mysql= new ClasseMysql();
  10. $nb = $mysql->NbEnregristrement("select * from client where nom='".$cli->getNom()."'" );
  11. if ($nb!=0)
  12. {
  13.  echo "il existe plusieurs enregistrements";
  14. }
  15. else
  16. {
  17.  $id = $mysql->recupValeur("select max(id_Client) from client",0) + 1;//nouvel Id
  18.  $req="insert into client values(".$id.",'".$cli->getNom()."','".$cli->getPrenom()."','".$cli->getDNaiss()."',".$cli->getDept()." )";
  19.  $num= $mysql->exec($req,true);
  20. }
  21. $mysql->close();
  22. ?>


 
Le problem est que lorsque je valid le frmulaire il m'affiche tous les code en PHP au lieu de les exécuté
 
 
Exemple

Code :
  1. setDept($_GET['dept']); $cli->setNom($_GET['nom']); $cli->setPrenom($_GET['prenom']); $cli->setDNaiss($_GET['dnaiss']); $mysql= new ClasseMysql(); $nb = $mysql->NbEnregristrement("select * from client where nom='".$cli->getNom()."'" ); if ($nb!=0) { echo "il existe plusieurs enregistrements"; } else { $id = $mysql->recupValeur("select max(id_Client) from client",0) + 1;//nouvel Id $req="insert into client values(".$id.",'".$cli->getNom()."','".$cli->getPrenom()."','".$cli->getDNaiss()."',".$cli->getDept()." )"; $num= $mysql->exec($req,true); } $mysql->close(); ?>


 
Merci pour votre aide je suis désepéré

Reply

Marsh Posté le 24-11-2006 à 19:08:54    

fait un script ne contenant que :  

Code :
  1. <?php phpinfo(); ?>


 
Si c'est ça qui s'affiche, ton serveur web est mal configuré et il n'execute pas PHP


---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 24-11-2006 à 19:14:06    

ça m'affiche une file d'informations

Reply

Marsh Posté le 24-11-2006 à 19:18:20    

Au secours je galere SVP aidez moi

Reply

Marsh Posté le 25-11-2006 à 00:16:07    

Vérifie que tes fichiers sont encodé en ISO-8859 et pas en UTF-8


---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 26-11-2006 à 11:29:58    

zapan666 a écrit :

Vérifie que tes fichiers sont encodé en ISO-8859 et pas en UTF-8


Ca change rien, tous mes trucs sont en utf-8 et fonctionnent

Reply

Marsh Posté le 26-11-2006 à 11:37:27    

rabzouze a écrit :

Bonjour,
 
Voici le fichier Ajout.php
[cpp]switch (compteurERR)
 {
  case 0:
      window.location.replace(
      "ajoutScript.php?dept="+ document.ajoutClient.dept.value +
      "&nom="+ document.ajoutClient.nom.value +
      "&prenom="+ document.ajoutClient.prenom.value +
      "&dnaiss="+ document.ajoutClient.dnaiss.value
      );
     break;
  case 1:
     alert ("Veuillez remplir le champ suivant :\n " + messageErreur);
     break;
  default:  
     alert ("Veuillez remplir les champs suivants :\n " + messageErreur);
     break;
 }
}// fin de fnction


Y'a ce bout de code qui est complètement n'importe quoi :( Tu valide le formulaire, et au lieu de retourner true ou false suivant si c'est valide.... TU RECREER UNE URL DYNAMIQUEMENT  [:johneh]  [:johneh]  [:johneh]  
 
Oulalalalala :D C'est normal que ça fasse n'importe quoi. En plus ça veut dire que tu utilises la méthode GET pour insérer un Client, ce qui est une violation du protocole HTTP.
 
Pourquoi est-ce que tu t'embête à faire un window.location en recréant une URL, alors que le navigateur le fait tout seul ? Je comprend vraiment pas.
 
Il faut absolument que tu modifies ton formulaire de la sorte :

<form action="ajoutClient.php" method="post" onsubmit="return FonctionTest()">
 
 ...
  <input name="button" type="button" value="Creer">


 
Tu changes la destination du formulaire, et tu exécutes la fonction test sur l'évènement submit du formulaire. Pour  FonctionTest, faut retourner true si les données sont valides (le formulaire sera envoyé) ou false si elle ne sont pas valides (il sera pas envoyé).
 
 Ensuite du côté ajoutClient.php, faut changer plein de choses pour que ça marche bien, en respectant le protocole HTTP, et en permettant l'ajout pour ceux qui n'ont pas JavaScript. Il faut modifier tous les $_GET en $_POST. Ensuite il faut aussi vérifier les données dans le script ajoutClient, sinon suffit de désactiver JavaScript pour pouvoir insérer n'importe quoi.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed