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

  FORUM HardWare.fr
  Programmation
  PHP

  PHP5 et CLASSE

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

PHP5 et CLASSE

n°1481493
rabzouze
Posté le 24-11-2006 à 17:53:22  profilanswer
 

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

mood
Publicité
Posté le 24-11-2006 à 17:53:22  profilanswer
 

n°1481496
rabzouze
Posté le 24-11-2006 à 17:55:38  profilanswer
 

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é

n°1481519
zapan666
Tout est relatif
Posté le 24-11-2006 à 19:08:54  profilanswer
 

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 !
n°1481521
rabzouze
Posté le 24-11-2006 à 19:14:06  profilanswer
 

ça m'affiche une file d'informations

n°1481523
rabzouze
Posté le 24-11-2006 à 19:18:20  profilanswer
 

Au secours je galere SVP aidez moi

n°1481569
zapan666
Tout est relatif
Posté le 25-11-2006 à 00:16:07  profilanswer
 

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


---------------
my flick r - Just Tab it !
n°1481844
FlorentG
Unité de Masse
Posté le 26-11-2006 à 11:29:58  profilanswer
 

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

n°1481845
FlorentG
Unité de Masse
Posté le 26-11-2006 à 11:37:27  profilanswer
 

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.


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

  PHP5 et CLASSE

 

Sujets relatifs
[Resolu] Redefinir une classe css à l'aide de PHP?PHP5
Probleme objet passé en session - php5Classe abstraite implémentant une interface
PHP5[C] Méthode replace de la classe string
[PHP5] fonction qui liste les paramètres d'une méthode de classe[résolu] [PHP5] Redefinir une classe
[ Dia ] Classe en PHP5 
Plus de sujets relatifs à : PHP5 et CLASSE


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