IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Pré-remplissage de champ [PDO]


Sujet :

PHP & Base de données

  1. #21
    Invité
    Invité(e)
    Par défaut
    Tu as toujours (+ d'autres incohérences de code...) :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <form method="post" action="ModifConsultant.php">
    	<form method="post" action="traitC.php">

    Si ça marche, ça tient du miracle !!
    Dernière modification par Bovino ; 05/06/2013 à 08h33. Motif: Merci d'indiquer le langage utilisé ([code=xxx]) !

  2. #22
    Membre du Club
    Femme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2013
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2013
    Messages : 70
    Points : 40
    Points
    40
    Par défaut
    Ah bon? Oulà ça veut dire que ce n'est pas stable alors. Voilà comment il marche actuellement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    <?php
     
    if (isset($_POST['supprimer']) && isset($_POST['id'])) {
    //Bloc de suppression des données au serveur
    	try
    {
        $bdd = new PDO('mysql:host=localhost;dbname=ao', 'root', '');
    	$req = $bdd->prepare('DELETE FROM consultants WHERE id = :id');
    	$req->execute(array(':id'=>intval($_POST['id'])));
    }
     
     
    catch(Exception $e)
    {
            die('Erreur : '.$e->getMessage());
    }
    header('Location: consultant.php');
    }
    ?>
     
     
    <!DOCTYPE html>
    <html>
        <head>
    		<!-- Rajouter en PhP le nom de l'utilisateur -->
            <meta charset="utf-8" />
    		<link rel="stylesheet" href="style.css" />
            <title>Suivi des AO: Consultants</title>
    		<?php 
      include('barre.php');  // Nous appelons notre menu
    		?>
        </head>
     
    	<body>
    	<?php
    try
    {
        // On se connecte Ã* MySQL
        $bdd = new PDO('mysql:host=localhost;dbname=ao', 'root', '');
    	// On récupère tout le contenu de la table consultation
    $reponse = $bdd->query('SELECT * FROM consultants WHERE id ='. $_POST['id'])or die(print_r($bdd->errorInfo()));
    $donnees = $reponse->fetch();
    }
    catch(Exception $e)
    {		// En cas d'erreur, on affiche un message et on arrête tout
            die('Erreur : '.$e->getMessage());		
    }
     
    ?>
     
    	<form action="traitModifCons.php" method="post">
    	<form method="post" action="traitC.php">
    	<td> <?php echo '<input type="hidden" name="id" value="' . $donnees['id'] . '" />' . $donnees['id'];?>
    	 <label for="Nom">Quel est le nom du consultant?</label>
          <input type="text" name="Nom" id="Nom" value="<?php echo $donnees['Nom']; ?>" />
     
     <br />
           <label for="Prenom">Quel est le prénom du consultant?</label>
           <input type="text" name="Prenom" id="Prenom" value="<?php echo $donnees['Prenom']; ?>" />
      <br />       
    	    <p> 
           <label for="Trigramme">Quel est son trigramme?</label><br />
           <input type="text" name="Trigramme" id="Trigramme" value="<?php echo $donnees['Trigramme']; ?>" />
    			</p>
    			<label for="Email">Quel est son email ?</label>
           <input type="Email" name="Email" id="Email" value="<?php echo $donnees['Email']; ?>"  />
      <br />	
    	<input type="submit" value="Valider" name="Valider"/>
    		</form>
    		</form>	 
    <?php
     
    $reponse->closeCursor(); // Termine le traitement de la requète
    ?>
     
    	</body>
    </html>
    C'est peut être trop de bidouille
    Mais c'est vrai que je peux peut être me passer du form avec traitC. Je vais essayer de l'enlever

  3. #23
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    ton code précédent prouve que tu ne tiens pas compte de nos corrections (les miennes et celles de Sabotage)

    1/ ceci doit être dans le <body> (et pas dans le <head>) => à déplacer APRES la balise <body> :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php 
      include('barre.php');  // Nous appelons notre menu
    ?>
    2/ Requête correcte (donnée par Sabotage) => à corriger comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $reponse = $bdd->prepare('SELECT * FROM consultants WHERE id= :id');
    $reponse->execute(array(':id'=>$_POST['id']));
    $donnees = $reponse->fetch();
    C'est une REQUETE PREPAREE, donc SECURISEE.
    Regarde dans les autres parties de ton propre code, tu trouveras d'autres requêtes similaires ! (la requête DELETE, par exemple)

    3/ UNE SEULE balise <form>...</form> => supprimer l'autre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	<form action="traitModifCons.php" method="post">
    ...
    	</form>

  4. #24
    Membre du Club
    Femme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2013
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2013
    Messages : 70
    Points : 40
    Points
    40
    Par défaut
    Je commençais à m'embrouiller c'est pour ça que je suis revenue au début.

    Code modifié:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    <!DOCTYPE html>
    <html>
        <head>
    		<!-- Rajouter en PhP le nom de l'utilisateur -->
            <meta charset="utf-8" />
    		<link rel="stylesheet" href="style.css" />
            <title>Suivi des AO: Consultants</title>
     
        </head>
     
    	<body>
    	<?php 
      include('barre.php');  // Nous appelons notre menu
    		?>
    	<?php
    try
    {
        // On se connecte Ã* MySQL
        $bdd = new PDO('mysql:host=localhost;dbname=ao', 'root', '');
    	// On récupère tout le contenu de la table consultation
    $reponse = $bdd->prepare('SELECT * FROM consultants WHERE id = :id')or die(print_r($bdd->errorInfo()));
    $reponse->execute(array(':id'=>$_POST['id']));
    $donnees = $reponse->fetch();
    }
    catch(Exception $e)
    {		// En cas d'erreur, on affiche un message et on arrête tout
            die('Erreur : '.$e->getMessage());		
    }
     
    ?>
     
    	<form action="traitModifCons.php" method="post">
     
    	<td> <?php echo '<input type="hidden" name="id" value="' . $donnees['id'] . '" />';?>
    	 <label for="Nom">Quel est le nom du consultant?</label>
          <input type="text" name="Nom" id="Nom" value="<?php echo $donnees['Nom']; ?>" />
     
     <br />
           <label for="Prenom">Quel est le prénom du consultant?</label>
           <input type="text" name="Prenom" id="Prenom" value="<?php echo $donnees['Prenom']; ?>" />
      <br />       
    	    <p> 
           <label for="Trigramme">Quel est son trigramme?</label><br />
           <input type="text" name="Trigramme" id="Trigramme" value="<?php echo $donnees['Trigramme']; ?>" />
    			</p>
    			<label for="Email">Quel est son email ?</label>
           <input type="Email" name="Email" id="Email" value="<?php echo $donnees['Email']; ?>"  />
      <br />	
    	<input type="submit" value="Valider" name="Valider"/>
    		</form>
     
    <?php
     
    $reponse->closeCursor(); // Termine le traitement de la requète
    ?>
     
    	</body>
    </html>
    Y a t il autre chose que je dois changer?

  5. #25
    Invité
    Invité(e)
    Par défaut
    à priori, ça a l'air correct !

  6. #26
    Membre du Club
    Femme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2013
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2013
    Messages : 70
    Points : 40
    Points
    40
    Par défaut

    Champagne. Tout ça rien que pour toi et pour sabotage.
    Tu pourras enfin avoir la paix

  7. #27
    Invité
    Invité(e)
    Par défaut
    Cela dit, pour éviter de "trainer" la connexion dans tous les fichiers (avec les mots de passe,....) je te conseille de créer un fichier connexion_pdo.php, contenant les paramètres de connexion :
    connexion_pdo.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        // connexion PDO
        $bdd = new PDO('mysql:host=localhost;dbname=ao', 'root', '');
    Et de l'appeler UNE FOIS dans tes fichiers :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php include('./connexion_pdo.php'); ?>

  8. #28
    Membre du Club
    Femme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2013
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2013
    Messages : 70
    Points : 40
    Points
    40
    Par défaut
    Ok ça marche mais là du coup j'ai deux questions:

    1) Etant donné qu'on faisait un test comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    //Bloc d'ajout des données au serveur
    	try
    {
        $bdd = new PDO('mysql:host=localhost;dbname=ao', 'root', '');
     
    }
    catch(Exception $e)
    {
            die('Erreur : '.$e->getMessage());
    }
    Est ce que le include je dois le mettre dans le body? Je présume que c'est tout le test try+ catch que je dois mettre dans la feuille à part

    2) Comme c'est un include pourquoi mettre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php include('./connexion_pdo.php'); ?>
    et pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php include('connexion_pdo.php'); ?>

    Je sais que tu dois avoir beaucoup de gens à aider et comme ça c'est juste pour ma culture générale, vraiment c'est juste quand tu auras un peu de temps pour m'expliquer.

    Merci

  9. #29
    Invité
    Invité(e)
    Par défaut
    Il faut le mettre au début du fichier (ou 1 fois, avant la 1ère requête)

    Une variante (avec paramètres supplémentaires) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    <?php // paramètres de connexion
    	$connexion				= array();
    	$connexion['hostname']	= 'xxxx';	// voir hébergeur ou "localhost" en local
    	$connexion['database']	= 'xxxx'; 	// nom de la BdD
    	$connexion['username']	= 'xxxx';	// identifiant "root" en local
    	$connexion['password']	= 'xxxx';	// mot de passe (vide en local)
    // ------------------------
    // connexion à la Base de Données
    try {
    	// chaine de connexion (DSN)
    	$connexion['strConn'] 	= 'mysql:host='.$connexion['hostname'].';dbname='.$connexion['database'];
    	$connexion['extraParam']= array(
    							PDO::ATTR_PERSISTENT => true, 						// Connexions persistantes
    							PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"	// encodage UTF-8
    							);
    	// Instancie la connexion
    	$pdo = new PDO($connexion['strConn'], $connexion['username'], $connexion['password'], $connexion['extraParam']);
    	// rapport d'erreurs sous forme d'exceptions
    	$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    }
    catch(PDOException $e) {
    	$msg = 'ERREUR PDO dans ' . $e->getFile().' L.' . $e->getLine().' : ' . $e->getMessage();
    	die($msg);
    }
    // ------------------------
    	$connexion				= array();	// on vide
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php include('./connexion_pdo.php'); ?> ou <?php include(__DIR__.'/connexion_pdo.php'); ?>
    ./ indique que le fichier est dans le même dossier.
    En fonction des emplacements respectifs des fichiers, on peut aussi avoir (par exemple) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php include('./conn/connexion_pdo.php'); ?> ou <?php include(__DIR__.'/conn/connexion_pdo.php'); ?>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php include('../conn/connexion_pdo.php'); ?> ou <?php include(dirname(__DIR__).'/conn/connexion_pdo.php'); ?>
    (à toi de mettre le chemin relatif correct)
    Dernière modification par Invité ; 05/06/2013 à 11h12.

  10. #30
    Membre du Club
    Femme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2013
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2013
    Messages : 70
    Points : 40
    Points
    40
    Par défaut
    Merci pour l'explication.
    Je vais tester tout de suite la méthode avec plus de paramètres
    Souhaite moi bonne chance

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Automatiser login et remplissage de champs
    Par Invité dans le forum Langage
    Réponses: 8
    Dernier message: 08/05/2008, 23h27
  2. remplissage automatique champs
    Par stefano66 dans le forum IHM
    Réponses: 4
    Dernier message: 01/03/2008, 09h23
  3. Remplissage dynamique champ email
    Par killingspree dans le forum Général JavaScript
    Réponses: 20
    Dernier message: 26/02/2008, 16h48
  4. remplissage de champs dans une fenêtre sceondaire en javascr
    Par max.onyx dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 06/12/2005, 14h05
  5. remplissag de champ d'une page d'un autre domaine
    Par max.onyx dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 06/12/2005, 14h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo