[RESOLU] Résultat de requête SQL dans une value d'input

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Résultat de requête SQL dans une value d'input

Re: Résultat de requête SQL dans une value d'input

par Cephou » 25 déc. 2015, 23:14

Bonjour, j'ai résolu mon problème en utilisant echo ($data->name);

Merci beaucoup pour votre aide.

Joyeuses fêtes.

Re: Résultat de requête SQL dans une value d'input

par Patriboom » 24 déc. 2015, 17:05

Et ton 'fetch' ... est-ce fetch_array ? fetch_row ? fetch_object ?

si c'est fetch_array, ton code est bon entre les ---------------
si c'est fetch_row, ton code devrait ressembler à

Code : Tout sélectionner

echo $data[2];
si c'est fetch_object ton code devrait ressembler à

Code : Tout sélectionner

echo $data->nom;

Re: Résultat de requête SQL dans une value d'input

par or 1 » 24 déc. 2015, 16:32

$req = $pdo->prepare('SELECT * FROM users WHERE id = ?');
echo "$user_id";
$req->execute([$user_id]);
echo $req->rowCount();

qu'est ce que cela affiche ?

Re: Résultat de requête SQL dans une value d'input

par Cephou » 24 déc. 2015, 16:31

Bonjour,

Merci pour votre réponse.

Voulez vous parler de ce passage ?

Code : Tout sélectionner

if(isset($_POST['submit_pubinfo'])){ if(!empty($_POST)){ $req = $pdo->prepare('UPDATE users SET name = ?, firstname = ?, birthdate = ?, adress = ?, phone = ?, activity = ? WHERE id = ?'); $req->execute([$_POST['name'], $_POST['firstname'], $_POST['birthdate'], $_POST['adress'], $_POST['phone'], $_POST['activity'], $user_id]); $_SESSION['flash']['success'] = "Informations mises à jour !"; } }
Chaque ? est remplacé par les paramètres donnés dans l'execute. Je crois que la fonction en elle même marche, j'update bien ma BDD avec les paramètres placés dans les input, mais c'est la complétion automatique des input qui pêche.

Avez vous une idée de ce qui peut bloquer ?

Cephou.

Re: Résultat de requête SQL dans une value d'input

par Spols » 24 déc. 2015, 15:53

Vu le nombre de point d'interrogation restant dans tes requêtes SQL, ton script n'est pas fini. Il faut te demander quelle variable utiliser à la place de ces ?

Résultat de requête SQL dans une value d'input

par Cephou » 24 déc. 2015, 14:46

Bonjour,

Je suis un codeur débutant en PHP et j'ai très peu de contacts dans le domaine pour m'aider. J'aurais aimé avoir un "parrain" pour m'aider à me former mais pour le moment, je demande de l'aide sur ce forum.

Je sais qu'auto-remplir un formulaire avec des valeurs présentes dans une base de donnée est simple, mais je n'y arrive pas.

Dans ma page account.php, j'aurais aimé remplir les cases de coordonnées avec les valeurs présentes dans la base de données (le morceau de code visé est entouré de --------------------------------------------------).

Voici mon code :

// account.php

Code : Tout sélectionner

<?php session_start(); require('inc/functions.php'); logged_only(); require_once 'inc/db.php'; $user_id = $_SESSION['auth']->id; if(isset($_POST['submit_changepw'])){ if(!empty($_POST)){ if(empty($_POST['password']) || $_POST['password'] != $_POST['password_confirm']){ $_SESSION['flash']['danger'] = "Les mots de passe ne correspondent pas"; } else { $password= password_hash($_POST['password'], PASSWORD_BCRYPT); $pdo->prepare('UPDATE users SET password = ? WHERE id = ?')->execute([$password, $user_id]); $_SESSION['flash']['success'] = "Votre mot de passe a bien été mis à jour."; } } } if(isset($_POST['submit_pubinfo'])){ if(!empty($_POST)){ $req = $pdo->prepare('UPDATE users SET name = ?, firstname = ?, birthdate = ?, adress = ?, phone = ?, activity = ? WHERE id = ?'); $req->execute([$_POST['name'], $_POST['firstname'], $_POST['birthdate'], $_POST['adress'], $_POST['phone'], $_POST['activity'], $user_id]); $_SESSION['flash']['success'] = "Informations mises à jour !"; } } include('inc/header.php'); ?> <div id="content"> <?php if(isset($_SESSION['flash'])): ?> <?php foreach($_SESSION['flash'] as $type => $message): ?> <div class="<?= $type; ?>"> <?= $message; ?> </div> <?php endforeach; ?> <?php unset($_SESSION['flash']); ?> <?php endif; ?> <h1>Votre compte</h1><br /><br /> -------------------------------------------------- <?php $req = $pdo->prepare('SELECT * FROM users WHERE id = ?'); $req->execute([$user_id]); $data = $req->fetch(); ?> <p>Coordonnées :</p> <form action="" method="POST"> <label>Nom </label><input type="text" name="name" value="<?php echo $data['name']; ?>" /><br /> <label>Prénom </label><input type="text" name="firstname" value="<?php echo $data['firstname']; ?>" /><br /> <label>Année de naissance </label><input type="text" name="birthdate" value="<?php echo $data['birthdate']; ?>" /><br /> <label>Adresse </label><input type="text" name="adress" value="<?php echo $data['adress']; ?>" /><br /> <label>Téléphone </label><input type="text" name="phone" value="<?php echo $data['phone']; ?>" /><br /> <label>Activité </label><input type="text" name="activity" value="<?php echo $data['activity']; ?>" /><br /> <button type="submit" name="submit_pubinfo">Envoyer</button> </form> -------------------------------------------------- <p>Modifier votre mot de passe :</p> <form action="" method="POST"> <div> <input type="password" name="password" placeholder="Changer de mot de passe"/> </div> <div> <input type="password" name="password_confirm" placeholder="Confirmation du mot de passe"/> </div> <button type="submit" name="submit_changepw">Changer mon mot de passe</button> </form> </div> <?php include('inc/footer.php'); ?>
// Le functions.php

Code : Tout sélectionner

<?php function debug($variable){ echo '<pre>' . print_r($variable, true) . '</pre>'; } function str_random($length) { $alphabet = "0123456789azertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN"; return substr(str_shuffle(str_repeat($alphabet, $length)), 0, $length); } function logged_only(){ if(session_status() == PHP_SESSION_NONE){ session_start(); } if(!isset($_SESSION['auth'])){ $_SESSION['flash']['danger'] = "Vous n'avez pas accès à cette page, veuillez vous connecter ou vous inscrire !"; header('Location: index.php'); exit(); } }?>
// Le header.php

Code : Tout sélectionner

<?php if(session_status() == PHP_SESSION_NONE){ session_start(); } if(!empty($_POST) && !empty($_POST['username']) && !empty($_POST['password'])) { require('db.php'); $req = $pdo->prepare('SELECT * FROM users WHERE (username = :username OR email = :username) AND confirmed_at IS NOT NULL'); $req->execute(['username' => $_POST['username']]); $user = $req->fetch(); if(password_verify($_POST['password'], $user->password)){ session_start(); $_SESSION['auth'] = $user; $_SESSION['flash']['success'] = 'Vous êtes maintenant connecté'; header('Location: account.php'); exit(); } else { $_SESSION['flash']['danger'] = 'Identifiant ou mot de passe incorrect.'; } } ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta name="description" content="Job'Etu, le site d'annonces pour étudiants."> <meta name="keywords" content="Job,Etu,annonce,annonces,étudiants,étudiant"> <title>Job'Etu</title> <link rel="stylesheet" type="text/css" href="./css/jobetustyle.css"> <link rel="icon" type="image/png" href="./img/favicon.png" /> </head> <body> <?php if(isset($_SESSION['auth'])): ?> <div align="right"> <?php require('db.php'); $currentname = $_SESSION['auth']->username; echo ("Bienvenue ") . $currentname; ?> <a href="logout.php">Se déconnecter</a> </div> <?php else: ?> <div align="right"> <form action="" method="POST"> <label>Pseudo ou Email</label><br /> <input type="text" name="username"/><br/><br/> <label>Mot de passe</label><br/> <input type="password" name="password"/><br/><br/> <button type="submit">Se connecter</button> </form><br/><br/> Pas de compte ? <a href="register.php">S'inscrire</a> </div> <?php endif; ?> <center><a href="index.php" id="logo">Job'Etu</a></center> <br /> <div id="main"> <div id="navigation"> <table width="100%"> <td style="text-align: center"> <a class="nav" href="index.php">Accueil</a> <a class="nav" href="createannounce.php">Déposer une annonce</a> <a class="nav" href="offers.php">Offres</a> <a class="nav" href="demands.php">Demandes</a> <a class="nav" href="account.php">Mon compte</a> </td> </table> </div>
Voila le résultat visuel : http://awesomescreenshot.com/0fd5ibkkaa

Voila une image de la structure de la base de donnée : http://awesomescreenshot.com/0a45ibkw93

Le DB.php permet de faire la connexion à la BDD et je sais qu'il marche.

Voila, soit je suis bigleux, soit j'ignore une règle et la transgresse.

Merci beaucoup d'avance pour votre aide.