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

Ligne php fausse

ketaz69
ketaz69
Niveau 9
02 septembre 2012 à 19:57:15

Bonsoir,

Pouvez vous me dire pourquoi ce code ne fonctionne pas ? :

Pseudo : <input type="text" name="pseudo" />
<input type="submit" value="Valider" />
<br/>
<br/>

<?php if (isset($_POST['pseudo']))
{ echo Votre pseudo est $_POST['pseudo']; }
else { echo "Veuillez entrer un pseudo svp !"; } ?>

Le soucis se situe sur cette partie : { echo Votre pseudo est $_POST['pseudo']; }

Plus précisement le "['pseudo']"

Merci d'avance.

vava740
vava740
Niveau 10
02 septembre 2012 à 19:59:34

Tu as oublié les guillemets :noel:

{ echo "Votre pseudo est " . $_POST['pseudo']; }

ketaz69
ketaz69
Niveau 9
02 septembre 2012 à 20:02:57

Merci beaucoup !

J'avais essayé avec les guillemets mais je les avais mal placé et j'avais pas mis le point :p

ketaz69
ketaz69
Niveau 9
02 septembre 2012 à 23:09:02

Rebonsoir,

J'ai fais mon formulaire, j'en fais donc une requête à la base de donnée afin de stocker ce formulaire (je veux écrire sur la bdd).

Malheureusement le script suivant ne fonctionne pas :

<?php $req = $bdd->prepare('INSERT INTO recherche_de_joueurs(pseudo, niveau, nbrevictoires, elo, age, ad, support, ap, solotop, jungle, any, fr, gb, de, es, ru, pl, br, jp, description) VALUES (:pseudo, :niveau, :nbrevictoires, :elo, :age, :ad, :support, :ap, :solotop, :jungle, :any, :fr, :gb, :de, :es, :ru, :pl, :br, :jp, :description)');
$req->execute(array(
'pseudo' => $_POST['pseudo'],
'niveau' => $_POST['niveau'],
'nbrevictoires' => $_POST['nbvic'],
'elo' => $_POST['elo'],
'age' => $_POST['age'],
'ad' => $_POST['ad'],
'support' => $_POST['support'],
'ap' => $_POST['ap'],
'solotop' => $_POST['solotop'],
'jungle' => $_POST['jungle'],
'any' => $_POST['any'],
'fr' => $_POST['fr'],
'gb' => $_POST['gb'],
'de' => $_POST['de'],
'es' => $_POST['es'],
'ru' => $_POST['ru'],
'pl' => $_POST['pl'],
'br' => $_POST['br'],
'jp' => $_POST['jp'],
'description' => $_POST['description']
));

echo 'Le jeu a bien été ajouté !';
?>

J'ai les erreurs suivantes :

( ! ) SCREAM: Error suppression ignored for
( ! ) Notice: Undefined variable: bdd in C:\wamp2\www\websiteDeathRecap\cible.php on line 1
Call Stack

  1. Time Memory Function Location

1 0.0005 690752 {main}( ) ..\cible.php:0

( ! ) SCREAM: Error suppression ignored for
( ! ) Fatal error: Call to a member function prepare() on a non-object in C:\wamp2\www\websiteDeathRecap\cible.php on line 1
Call Stack

  1. Time Memory Function Location

1 0.0005 690752 {main}( ) ..\cible.php:0

Pouvez vous m'aider ?

Merci d'avance.

[-ArK-]
[-ArK-]
Niveau 30
02 septembre 2012 à 23:12:42

$bdd serait pas null par hasard ? :hap:

ketaz69
ketaz69
Niveau 9
02 septembre 2012 à 23:14:22

Euh si comment on l'a défini ? :D

ketaz69
ketaz69
Niveau 9
02 septembre 2012 à 23:19:20

Bon j'ai réussi en fait !

Maintenant j'ai une autre erreur :

( ! ) Parse error: syntax error, unexpected '<' in C:\wamp2\www\websiteDeathRecap\cible.php on line 12

Je vais analyser ça.

la ligne 12 :

<?php $req = $bdd->prepare('INSERT INTO recherche_de_joueurs(pseudo, niveau, nbrevictoires, elo, age, ad, support, ap, solotop, jungle, any, fr, gb, de, es, ru, pl, br, jp, description) VALUES (:pseudo, :niveau, :nbrevictoires, :elo, :age, :ad, :support, :ap, :solotop, :jungle, :any, :fr, :gb, :de, :es, :ru, :pl, :br, :jp, :description)');

[-ArK-]
[-ArK-]
Niveau 30
02 septembre 2012 à 23:21:02

Si t'as déjà un <?php au début du document, vire celui de la ligne 12 :hap:

ketaz69
ketaz69
Niveau 9
02 septembre 2012 à 23:26:34

ah ah j'suis vraiment tête en l'air !

Merci beaucoup tout va bien pour le moment vous êtes trop fort :)

ketaz69
ketaz69
Niveau 9
02 septembre 2012 à 23:48:47

J'ai rajouté ce code afin de mettre "true" pour les cases cochés et "false" pour les décochés :

if (isset($_POST['ad']))
{ echo $_POST['ad'] = true; }
else { $_POST['ad'] = false; }

if (isset($_POST['support']))
{ echo $_POST['support'] = true; }
else { $_POST['support'] = false; }

if (isset($_POST['ap']))
{ echo $_POST['ap'] = true; }
else { $_POST['ap'] = false; }

if (isset($_POST['solotop']))
{ echo $_POST['solotop'] = true; }
else { $_POST['solotop'] = false; }

if (isset($_POST['jungle']))
{ echo $_POST['jungle'] = true; }
else { $_POST['jungle'] = false; }

if (isset($_POST['any']))
{ echo $_POST['any'] = true; }
else { $_POST['any'] = false; }

if (isset($_POST['fr']))
{ echo $_POST['fr'] = true; }
else { $_POST['fr'] = false; }

if (isset($_POST['fr']))
{ echo $_POST['fr'] = true; }
else { $_POST['fr'] = false; }

if (isset($_POST['gb']))
{ echo $_POST['gb'] = true; }
else { $_POST['gb'] = false; }

if (isset($_POST['de']))
{ echo $_POST['de'] = true; }
else { $_POST['de'] = false; }

if (isset($_POST['es']))
{ echo $_POST['es'] = true; }
else { $_POST['es'] = false; }

if (isset($_POST['ru']))
{ echo $_POST['ru'] = true; }
else { $_POST['ru'] = false; }

if (isset($_POST['pl']))
{ echo $_POST['pl'] = true; }
else { $_POST['pl'] = false; }

if (isset($_POST['br']))
{ echo $_POST['br'] = true; }
else { $_POST['br'] = false; }

if (isset($_POST['jp']))
{ echo $_POST['jp'] = true; }
else { $_POST['jp'] = false; }

Le résultat fonctionne mais j'ai des 1 qui apparaissent quand c'est coché donc quand c'est sur true.

J'en ai 1+nombre de "true".

Comment les masquer ?

ketaz69
ketaz69
Niveau 9
02 septembre 2012 à 23:53:43

En fait rien ne fonctionne, ma requête ne rajoute aucune entrée! Pourtant je n'ai absolument aucun message d'erreur.

Voici le code :

<?php

if (isset($_POST['ad']))
{ echo $_POST['ad'] = true; }
else { $_POST['ad'] = false; }

if (isset($_POST['support']))
{ echo $_POST['support'] = true; }
else { $_POST['support'] = false; }

if (isset($_POST['ap']))
{ echo $_POST['ap'] = true; }
else { $_POST['ap'] = false; }

if (isset($_POST['solotop']))
{ echo $_POST['solotop'] = true; }
else { $_POST['solotop'] = false; }

if (isset($_POST['jungle']))
{ echo $_POST['jungle'] = true; }
else { $_POST['jungle'] = false; }

if (isset($_POST['any']))
{ echo $_POST['any'] = true; }
else { $_POST['any'] = false; }

if (isset($_POST['fr']))
{ echo $_POST['fr'] = true; }
else { $_POST['fr'] = false; }

if (isset($_POST['fr']))
{ echo $_POST['fr'] = true; }
else { $_POST['fr'] = false; }

if (isset($_POST['gb']))
{ echo $_POST['gb'] = true; }
else { $_POST['gb'] = false; }

if (isset($_POST['de']))
{ echo $_POST['de'] = true; }
else { $_POST['de'] = false; }

if (isset($_POST['es']))
{ echo $_POST['es'] = true; }
else { $_POST['es'] = false; }

if (isset($_POST['ru']))
{ echo $_POST['ru'] = true; }
else { $_POST['ru'] = false; }

if (isset($_POST['pl']))
{ echo $_POST['pl'] = true; }
else { $_POST['pl'] = false; }

if (isset($_POST['br']))
{ echo $_POST['br'] = true; }
else { $_POST['br'] = false; }

if (isset($_POST['jp']))
{ echo $_POST['jp'] = true; }
else { $_POST['jp'] = false; }

try
{
$bdd = new PDO('mysql:host=localhost;dbname=deathrecapbdd', 'root', '');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}

$req = $bdd->prepare('INSERT INTO recherche_de_joueurs(pseudo, niveau, nbrevictoires, elo, age, ad, support, ap, solotop, jungle, any, fr, gb, de, es, ru, pl, br, jp, description) VALUES (:pseudo, :niveau, :nbrevictoires, :elo, :age, :ad, :support, :ap, :solotop, :jungle, :any, :fr, :gb, :de, :es, :ru, :pl, :br, :jp, :description)');
$req->execute(array(
'pseudo' => $_POST['pseudo'],
'niveau' => $_POST['niveau'],
'nbrevictoires' => $_POST['nbvic'],
'elo' => $_POST['elo'],
'age' => $_POST['age'],
'ad' => $_POST['ad'],
'support' => $_POST['support'],
'ap' => $_POST['ap'],
'solotop' => $_POST['solotop'],
'jungle' => $_POST['jungle'],
'any' => $_POST['any'],
'fr' => $_POST['fr'],
'gb' => $_POST['gb'],
'de' => $_POST['de'],
'es' => $_POST['es'],
'ru' => $_POST['ru'],
'pl' => $_POST['pl'],
'br' => $_POST['br'],
'jp' => $_POST['jp'],
'description' => $_POST['desires']
));

echo 'Le joueur a bien été ajouté !';
?>

Que dois-je faire je suis vraiment perdu là ? :/

ketaz69
ketaz69
Niveau 9
02 septembre 2012 à 23:56:07

Voici ma base de donnée si ça peut vous aider :

https://image.noelshack.com/fichiers/2012/35/1346622956-bdd.png

ketaz69
ketaz69
Niveau 9
03 septembre 2012 à 03:52:41

Merci de ta réponse, il faut dire que j'apprends sur le tas j'ai jamais eu de formation donc je fais pas mal d'erreurs ^^'

Pour le côté moche j'ai corrigé voici le code plus propre :

<?php
if (isset($_POST['ad']))
$_POST['ad'] = true;
else $_POST['ad'] = false;

if (isset($_POST['support']))
$_POST['support'] = true;
else $_POST['support'] = false;

if (isset($_POST['ap']))
$_POST['ap'] = true;
else $_POST['ap'] = false;

if (isset($_POST['solotop']))
$_POST['solotop'] = true;
else $_POST['solotop'] = false;

if (isset($_POST['jungle']))
$_POST['jungle'] = true;
else $_POST['jungle'] = false;

if (isset($_POST['any']))
$_POST['any'] = true;
else $_POST['any'] = false;

if (isset($_POST['fr']))
$_POST['fr'] = true;
else $_POST['fr'] = false;

if (isset($_POST['fr']))
$_POST['fr'] = true;
else $_POST['fr'] = false;

if (isset($_POST['gb']))
$_POST['gb'] = true;
else $_POST['gb'] = false;

if (isset($_POST['de']))
$_POST['de'] = true;
else $_POST['de'] = false;

if (isset($_POST['es']))
$_POST['es'] = true;
else $_POST['es'] = false;

if (isset($_POST['ru']))
$_POST['ru'] = true;
else $_POST['ru'] = false;

if (isset($_POST['pl']))
$_POST['pl'] = true;
else $_POST['pl'] = false;

if (isset($_POST['br']))
$_POST['br'] = true;
else $_POST['br'] = false;

if (isset($_POST['jp']))
$_POST['jp'] = true;
else $_POST['jp'] = false;

try
{
$bdd = new PDO('mysql:host=localhost;dbname=deathrecapbdd', 'root', '');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}

$req = $bdd->prepare('INSERT INTO recherche_de_joueurs(pseudo, niveau, nbrevictoires, elo, age, ad, support, ap, solotop, jungle, any, fr, gb, de, es, ru, pl, br, jp, description) VALUES (:pseudo, :niveau, :nbrevictoires, :elo, :age, :ad, :support, :ap, :solotop, :jungle, :any, :fr, :gb, :de, :es, :ru, :pl, :br, :jp, :description)');
$req->execute(array(
'pseudo' => $_POST['pseudo'],
'niveau' => $_POST['niveau'],
'nbrevictoires' => $_POST['nbvic'],
'elo' => $_POST['elo'],
'age' => $_POST['age'],
'ad' => $_POST['ad'],
'support' => $_POST['support'],
'ap' => $_POST['ap'],
'solotop' => $_POST['solotop'],
'jungle' => $_POST['jungle'],
'any' => $_POST['any'],
'fr' => $_POST['fr'],
'gb' => $_POST['gb'],
'de' => $_POST['de'],
'es' => $_POST['es'],
'ru' => $_POST['ru'],
'pl' => $_POST['pl'],
'br' => $_POST['br'],
'jp' => $_POST['jp'],
'description' => $_POST['desires']
));

echo 'Le joueur a bien été ajouté !';
?>

Pour l'insertion, j'ai corrigé les champs en booléen :
https://image.noelshack.com/fichiers/2012/36/1346637111-bdd.png

Sinon j'ai du mal à comprendre ta deuxième solution. Pourrais-tu m'éclaircir ?

J'essaye en vain de trouver sur google.

bob63
bob63
Niveau 11
03 septembre 2012 à 11:21:16

Je réponds à sa place.

Voici une requête préparée avec bindvalue. Ca te permet de spécifier le type de la donnée que tu envoies.

$resultats = $bdd->prepare("INSERT INTO personne(prenomP,ageP) VALUES (:prenom, :age)");
$resultats->bindValue(':prenom', $_POST['prenom'], PDO::PARAM_STR);
$resultats->bindValue(':age', $_POST['age'], PDO::PARAM_INT);
$resultats->execute();

Sinon ta solution de case à cocher est horrible. On fait jamais une multitude de if comme ça .. c'est illisible et inmaintenable.

Tu peux pas mettre tout dans un array du style :
$var_tab = array('ad','support','ap','solotop',...);

Et ensuite boucler sur ton tableau

for($i=0;$i<sizeof($var_tab);$i++)
{
if (isset($_POST['$var_tab[$i]']))
$_POST['$var_tab[$i]'] = true;
else
$_POST['$var_tab[$i]'] = false;
}

Ca à l'avantage de rajouter autant de case à cocher que tu veux, et juste rajouter une valeur dans ton tableau, sous ajouter 3 lignes à chaque fois.

bob63
bob63
Niveau 11
03 septembre 2012 à 11:31:14

J'ai corrigé ton code, voici un lien :

http://pastebin.com/PCSLeTZV

Vérifie juste les type STR et INT pour la requêtes, car je connais pas tous les types de tes champs.

ketaz69
ketaz69
Niveau 9
03 septembre 2012 à 15:56:34

Merci beaucoup d'avoir pris du temps pour moi :)

Malheureusement le début du code ne fonctionne pas :

J'ai l'erreur suivante :

( ! ) Notice: Undefined index: ad in C:\wamp2\www\websiteDeathRecap\cible.php on line 22

Pour toutes les cases que je n'ai pas coché.

bob63
bob63
Niveau 11
03 septembre 2012 à 17:19:46

Tu affectes true et false, et tu as tes champs en 'int'.
=> PHP ne fait pas de magie et ne transforme pas 0 en false et 1 en true :-d

Au final, tu vérifie seulement si le POST existe, mais (je me trompe peut-être sur ce coup), tu devrais vérifier que le POST est bien égal à true. Si c'est le cas alors tu affectes 1. Sinon ca existe pas, alors tu affectes 0.

http://pastebin.com/hv6U4rZA

bob63
bob63
Niveau 11
03 septembre 2012 à 17:21:45

Oups une autre boulette. Il faut enlever les quotes autour de $var_tab en début de code.

http://pastebin.com/UNsDinbm

ketaz69
ketaz69
Niveau 9
03 septembre 2012 à 18:46:19

Merci je n'ai pas d'erreur cette fois-ci

Mais encore le même soucis !

Pas de donnée crée dans ma table :/

J'ai du mal à comprendre pourquoi le code fonctionne et au final il n'y a rien qui ressort :s

bob63
bob63
Niveau 11
03 septembre 2012 à 20:12:54

Fait un echo de ton error dans le catch :
echo 'Erreur : '.$e->getMessage();

Après fait un var_dump($_POST) pour vérifier que tes POST récupèrent bien quelque chose. Met le juste après ta boucle par exemple.

Après, copie-colle le code de ta requête (juste la partie insert) dans phpmyadmin, et remplace les valeurs par celle affichées par le var_dump.

Faut commencer à débugguer dans ces cas là ...

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment