CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

problème formulaire de connexion php

boss_power
boss_power
Niveau 6
13 septembre 2015 à 22:17:55

Bonjour,

J'ai un formulaire comme ca:
<!DOCTYPE html>
<body>
<form method="post" action="a.php">
<input type="text" value="id"/>
<input type="submit" value="envoyer"/>
</form>
</body>

et une page de connexion comme ca:

<?php
try
{
// On se connecte à MySQL
$bdd = new PDO('mysql:host=localhost;dbname=adnane;charset=utf8', 'root', 'root');
}
catch(Exception $e)
{
// En cas d'erreur, on affiche un message et on arrête tout
die('Erreur : '.$e->getMessage());
}
$id = $_POST['id'];
$reponse = $bdd->query('SELECT pseudo FROM users WHERE id=\'$id\'');
$donnees = $reponse->fetch();
echo $donnees['pseudo'];

?>

Pourtant quand j'entre l'id, ca ne m'affiche rien. Quelqu'un peut me dire ce qui cloche avec mon code.
Merci de vos réponses

boss_power
boss_power
Niveau 6
13 septembre 2015 à 22:20:38

En fait j'ai mal copié le code, à la ligne 4 du code, à la place de value, c'est name. Mais ca ne marche pas quand meme

Chocolayte
Chocolayte
Niveau 73
13 septembre 2015 à 22:31:23

Le probleme doit etre là je pense, non ?
$reponse = $bdd->query('SELECT pseudo FROM users WHERE id=\'$id\'');
Tu commences par un double guillemet et tu termines par un simple.

Essaye avec ça
$reponse = $bdd->query('SELECT pseudo FROM users WHERE id='.$id);

Message édité le 13 septembre 2015 à 22:31:42 par Chocolayte
Candystand
Candystand
Niveau 10
13 septembre 2015 à 22:32:40

Essaye plutot avec
$reponse = $bdd->query('SELECT pseudo FROM users WHERE id= $id');

TheRealMarco
TheRealMarco
Niveau 14
13 septembre 2015 à 22:34:52

Le 13 septembre 2015 à 22:32:40 Candystand a écrit :
Essaye plutot avec
$reponse = $bdd->query('SELECT pseudo FROM users WHERE id= $id');

$id est dans une variable PHP, donc je pense que Chocolayte est plus proche. :ok:

boss_power
boss_power
Niveau 6
13 septembre 2015 à 22:35:22

Ca ne marche pas :-(

boss_power
boss_power
Niveau 6
13 septembre 2015 à 22:38:14

quelqu'un aurait une autre idée

boss_power
boss_power
Niveau 6
13 septembre 2015 à 22:46:22

Help please!!! :-(

Candystand
Candystand
Niveau 10
13 septembre 2015 à 22:48:38

Le 13 septembre 2015 à 22:34:52 TheRealMarco a écrit :

Le 13 septembre 2015 à 22:32:40 Candystand a écrit :
Essaye plutot avec
$reponse = $bdd->query('SELECT pseudo FROM users WHERE id= $id');

$id est dans une variable PHP, donc je pense que Chocolayte est plus proche. :ok:

ah oui effectivement autant pour moi :hap:

Sinon t'as pas un message d'erreur en particulier? ou bien ça n'affiche rien du tout?

Message édité le 13 septembre 2015 à 22:49:00 par Candystand
boss_power
boss_power
Niveau 6
13 septembre 2015 à 22:48:59

ca n'affiche rien du tout

boss_power
boss_power
Niveau 6
13 septembre 2015 à 22:56:59

en fait Chocolayte a raison, j'avais oublié de changer les variables mais j'aimerais que quelqu'un m'expliques pourquoi en mettant ce que tu m'as dit à la place de ce que j'ai mis, ca a marché?

Candystand
Candystand
Niveau 10
13 septembre 2015 à 23:06:11

Tout simplement car c'est comme si dans ta requête il y avait
SELECT pseudo FROM users WHERE id= $id

Et vu que ta colonne id va jamais valoir $id, ça marche pas.
Du coup toi tu veux la vraie valeur de $id, donc tu dois concaténer ta requête avec $id, en utilisant le "." :)

Message édité le 13 septembre 2015 à 23:06:26 par Candystand
TheRealMarco
TheRealMarco
Niveau 14
13 septembre 2015 à 23:08:49

$id est une variable PHP. Quand tu envoies l'info, ça doit renvoyer le contenu de la variable, pas son nom.

Si $id est entre des guillements, tu vas envoyer "$id" en brut à SQL, sauf que pour lui, ça ne veut rien dire, si tu concatènes, PHP va transformer $id, en le contenu de la variable, un truc comme "MonId". Qui sera alors lisible par SQL.

boss_power
boss_power
Niveau 6
13 septembre 2015 à 23:15:30

ok merci mais apparemment ca marche que pour id, regardez ce code, apparement c,est différent car ca marche pas:

<!DOCTYPE html>
<body>
<form method="get" action="a.php">
<input type="text" name="id" />
<input type="submit" value="envoyer" />
</form>
</body>

et le deuxième fichier:

<?php
try
{
// On se connecte à MySQL
$bdd = new PDO('mysql:host=localhost;dbname=adnane;charset=utf8', 'root', 'root');
}
catch(Exception $e)
{
// En cas d'erreur, on affiche un message et on arrête tout
die('Erreur : '.$e->getMessage());
}
$pseudo = $_GET['pseudo'];
$reponse = $bdd->query('SELECT pseudo FROM users WHERE id='.$pseudo);
$donnees = $reponse->fetch()
?>
<p>Bonjour <?php echo $donnees['pseudo']; ?></p>

boss_power
boss_power
Niveau 6
13 septembre 2015 à 23:17:32

en fait a la place de id c'est pseudo dans la requête sql mais ca marche pas quand meme

Candystand
Candystand
Niveau 10
13 septembre 2015 à 23:21:17

Oui car ton pseudo est une chaîne de caractère, il s'attend donc cette fois à recevoir les guillements, du coup ta requête dois ressembler à ça:

'SELECT pseudo FROM users WHERE pseudo=\''.$pseudo.'\''
Message édité le 13 septembre 2015 à 23:25:16 par Candystand
Darkandgel
Darkandgel
Niveau 10
13 septembre 2015 à 23:24:32

Pour régler le probleme :

"SELECT pseudo FROM users WHERE id= '$id' ";
'SELECT pseudo FROM users WHERE id=\.$id.'\;

la premiere est plus sympa quand meme, non ?

Message édité le 13 septembre 2015 à 23:25:31 par Darkandgel
boss_power
boss_power
Niveau 6
13 septembre 2015 à 23:31:18

Ca ne marche pas quand meme mais je pense Candystand que tu t'es trompé dans tes caractères, peux tu vérifier une deuxième fois?

boss_power
boss_power
Niveau 6
13 septembre 2015 à 23:36:53

Apperement ca n'a pas l'air de marcher :-(

Chocolayte
Chocolayte
Niveau 73
13 septembre 2015 à 23:37:22

La concaténation en php est assez mal réalisée.
Pour vérifier tes requêtes, je te recommande de procéder ainsi, déjà :

$request = 'SELECT pseudo FROM users WHERE id='.$pseudo;
$reponse = $bdd->query($request);

De cette manière, avant d'appeler ta fonction query(), tu peux faire un echo $request; pour vérifier que tu obtiens bien le résultat attendu.

C'est normal d'avoir ça sinon ?

$_POST['id']; :d) WHERE id= $id\
$_GET['pseudo']; :d) WHERE id= $pseudo

Ce serait pas un truc du genre WHERE pseudo= $pseudo que tu devrais avoir par hasard ?

Message édité le 13 septembre 2015 à 23:37:48 par Chocolayte
Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware
La vidéo du moment