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

  FORUM HardWare.fr
  Programmation
  PHP

  [resolut]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[resolut]

n°1994600
keo64
Posté le 19-05-2010 à 22:30:38  profilanswer
 

Bonsoir je suis entraint de faire un script qui enregistre un nom dans une base de donnée:

Code :
  1. <?php
  2. class enregistre
  3. {
  4.  protected $nom;
  5.  protected $endID; //le dernier enregistrement
  6.  public function  __construct($nom)
  7.  {
  8.      $this->nom=$nom;
  9.     }
  10.      
  11.    public function SavPerso()
  12.     {
  13.      $bdd = connection::getInstance()->OpenCnx();
  14.   // enregistrement de la personne
  15.   $sql_perso="INSERT INTO Clients (ID_client,nom) VALUES ('','$this->nom')";
  16.   $nb=$bdd->exec($sql_perso);
  17.   $this->endID= $bdd->lastInsertId();
  18.     $sql_OK="SELECT nom FROM `Clients` WHERE ID_client= $this->endID";
  19.       $req=$bdd->query($sql_OK);
  20.       while ($data = $req->fetch(PDO::FETCH_NUM))
  21.       {
  22.           $test=$data[0];      
  23.       }
  24.    
  25.       if ( $test== $this->nom)
  26.       {
  27.        echo "<h1>le client:".$this->nom." a bien été enregistrer!!</h1>";
  28.       }
  29.       else
  30.       {
  31.        echo "<h1>une erreur est survenu merci de contacter le webmaster</h1>";
  32.       }
  33.     $bdd=null; 
  34.   }
  35.  
  36. }
  37. ?>


Si on rafraichit le navigateur, un deuxième enregistrement est identique à la première, comment procéder pour ne pas avoir ce problème?
merci de vos réponses


Message édité par keo64 le 20-05-2010 à 07:05:31
mood
Publicité
Posté le 19-05-2010 à 22:30:38  profilanswer
 

n°1994603
flo850
moi je
Posté le 19-05-2010 à 22:35:01  profilanswer
 

tu fais ton enregistrement, et tu redirige vers la page de consultation  si l'enregistrement à réussi

 

un peu comme sur ce forum

 

( et le mélange enregistrement en BDD / echo dans la meme classe, c'est pas forcement une bonne idée)
edit :  un petit mysql_real_escape_string sur le $this->nom, ce serait génial


Message édité par flo850 le 19-05-2010 à 22:35:35
n°1994629
keo64
Posté le 19-05-2010 à 23:23:31  profilanswer
 

merci de la réponse flo
mais comment je fait pour rediriger en POO,?
je pensais qu'il n'était pas necessaire de s'occuper des injection sql avec PDO.

Message cité 1 fois
Message édité par keo64 le 19-05-2010 à 23:27:12
n°1994639
infoeins
etudiant
Posté le 20-05-2010 à 01:22:19  profilanswer
 

Bsr j'ai une solution tres efficace 100%:
sql_perso="INSERT INTO Clients (ID_client,nom) VALUES ('','$this->nom')";
 $nb=$bdd->exec($sql_perso);
$supDoubsd="ALTER IGNORE TABLE Clients  ADD UNIQUE INDEX Clients (nom)";  
mysql_query($supDoubsd);

n°1994642
keo64
Posté le 20-05-2010 à 07:05:00  profilanswer
 

merci de réponse, je vais adopter ta solution
pour contre j'ai été bête pour faire un redirection il me suffit de faire une methode

Code :
  1. public function Revenir()
  2.  {
  3.   header('Location: http://www.example.com/');
  4.  }


je suis pas très futé je pensais que écrit header c'était du html

n°1994648
flo850
moi je
Posté le 20-05-2010 à 08:43:07  profilanswer
 

keo64 a écrit :

merci de la réponse flo
mais comment je fait pour rediriger en POO,?
je pensais qu'il n'était pas necessaire de s'occuper des injection sql avec PDO.


si tu utilises des prepared statement, pas besoin de protection  
sinon, c'est obligatoire
 

infoeins a écrit :

Bsr j'ai une solution tres efficace 100%:
sql_perso="INSERT INTO Clients (ID_client,nom) VALUES ('','$this->nom')";
 $nb=$bdd->exec($sql_perso);
$supDoubsd="ALTER IGNORE TABLE Clients  ADD UNIQUE INDEX Clients (nom)";  
mysql_query($supDoubsd);


et si un utilisateur veut modifier deux fois de suite un client ça plante


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

  [resolut]

 

Sujets relatifs
fomulaire en POO? peut ton mettre du html[resolut][Ada][Résolut] Error Vertex_Not_In_Graph à l'ajout d'un arc.
liste incremental string [RESOLU][Résolu] jquery , 2 div draggable l'un dans l'autre
decomposer une chaine de caractère[resolut][resolut]ma page ne fonctionne plus sous un include??
[Résolut] Sauvegarde et chargement d'une arbre un peu particulier.[resolut]remplacer des point virgule par des virgule ?
[ Resolu ] Probleme avec mon script menu[resolut]est ton obligé de renomé les produit d'une jointure?
Plus de sujets relatifs à : [resolut]


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