var_dump ne fonctionne pas chez moi

Par flexi2202, il y a 5 ans


bonsoir a tous

Ce que je fais

je suis en train de suivre un tuto
https://www.youtube.com/watch?v=J3nfLrxsmro
apres avoir cree la table et la base
je rentre ce morceau de formulaire

<body> <h1>ajouter un contact</h1> <form action="insert.php" method="post"> <p> <label for="nom">nom</label> <input id="nom" type="text" name="firsName"> </p> <p> <label for="prenom">prenom</label> <input id="prenom" type="text" name="LastName"> </p> <p> <label for="tel">telephone</label> <input id="tel" type="text" name="phone"> </p> <p> <label for="mel">mail</label> <input id="mel" type="email" name="mail"> </p> <p><input type="submit" value="Enregistrer"> </p> </form > </body>

l auteur
ecris ce morceau de code dans un fichier php

<?php var_dump($post);

Ce que je veux

je souhaiterais pouvoir obtenir le contenu des infos que je rentre lorsque je lance le fichier
index.php
et que je clique sur enregistrer

Ce que j'obtiens

Not Found
The requested URL was not found on this server.

Apache/2.4.46 (Win64) PHP/7.3.21 Server at localhost Port 80

comment ca ce fait
je suis en local

13 réponses

flexi2202, il y a 5 ans

bonsoir
desole j avais aps vu les messages
je reviens demain
merci pour les reponses

DarkenNights, il y a 5 ans

Hello,

Sur ton formulaire tu indique l'attribut action qui est : action="insert.php" avec l'attribut method="post".
Cela signifie que tu souhaite accèder à ton fichier insert.php via une requête post.

As-tu vérifier que le fichier insert.php existe et qu'il y a bien du code à l'interieur de celui-ci ?

Lartak, il y a 5 ans

Bonjour.
En plus de ce que dit DarkenNights, je pense que c'est plutôt :

<?php var_dump($_POST);

Au lieu de :

<?php var_dump($post);
flexi2202, il y a 5 ans

Merci pour l aide
des fois je me demande si mes yeux sont bien ouvert ...
donc le soucis resolu et nouvel apprentissage
pour l instant j utilise notepad++
mais existe t il un outil plus evolue

flexi2202, il y a 5 ans

voila enfin j ai reussi pour la premiere fois a injecter des donnees via un formulaire dans une base de donnee

voici le code

<?php $objetPdo = new PDO('mysql:host=localhost;dbname=agenda','root',''); // preparation de la requete d insertion $pdoStat =$objetPdo -> prepare('INSERT INTO contact Values(NULL,:nom,:prenom, :tel,:mel)'); // on lie chaque marqueur a une valeur $pdoStat->bindValue(':nom',$_POST['firsName'],PDO::PARAM_STR); $pdoStat->bindValue(':prenom',$_POST['LastName'],PDO::PARAM_STR); $pdoStat->bindValue(':tel',$_POST['phone'],PDO::PARAM_STR); $pdoStat->bindValue(':mel',$_POST['mail'],PDO::PARAM_STR); // execution de la requete preparee $insertIsok=$pdoStat->execute(); if($insertIsok){ $message ='le contact a ete ajoute dans la bdd'; } else{ $message ='echec de l insertion'; } ?> <!doctype html> <html lang="fr"> <head> <body> <meta charset ="UTF-8"> <meta name="viewport " content="width=device-width , user-scalable=no ,initial-scale=1.0,maximum-scale=1.0 minimum-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title> document</title> </head> <h1>insertion des contact</h1> <p><?php echo $message;?></p> </body> </html>

Mais a present comment inserer une checkbox dans ma base de donnee , tout en sachant que l utilisateur peux coisir plsuieurs choix ?

merci de l aide

je dois faire ceci ?

$pdoStat->bindValue(':nom',$_POST['firsName'],PDO::PARAM_STR); $pdoStat->bindValue(':prenom',$_POST['LastName'],PDO::PARAM_STR); $pdoStat->bindValue(':tel',$_POST['phone'],PDO::PARAM_STR); $pdoStat->bindValue(':mel',$_POST['mail'],PDO::PARAM_STR); $pdoStat->bindValue(':vehicle1',$_POST['vehicle1'],PDO::PARAM_STR); $pdoStat->bindValue(':vehicle2',$_POST['vehicle2'],PDO::PARAM_STR); $pdoStat->bindValue(':vehicle3',$_POST['vehicle3'],PDO::PARAM_STR);

voici le code html que j ai modifie

<body> <h1>ajouter un contact</h1> <form action="insertion.php" method="post"> <p> <label for="nom">nom</label> <input id="nom" type="text" name="firsName"> </p> <p> <label for="prenom">prenom</label> <input id="prenom" type="text" name="LastName"> </p> <p> <label for="tel">telephone</label> <input id="tel" type="text" name="phone"> </p> <p> <label for="mel">mail</label> <input id="mel" type="email" name="mail"> </p> <label for="cars">Choose a car:</label> <input type="checkbox" id="vehicle1" name="vehicle1" value="Bike"> <label for="vehicle1"> I have a bike</label><br> <input type="checkbox" id="vehicle2" name="vehicle2" value="Car"> <label for="vehicle2"> I have a car</label><br> <input type="checkbox" id="vehicle3" name="vehicle3" value="Boat"> <label for="vehicle3"> I have a boat</label><br><br> <p><input type="submit" value="Enregistrer"> </p> </form > </body>

merci de l aide

Rabby, il y a 5 ans

salut,
en ce qui concerne var_dump il faut plutot utiliser de la maniere suuvant :
var_dump($_POST) pour voir tous ceux qui sont envoyé dans la variable POST

DarkenNights, il y a 5 ans

Quand tu récupère via ta variable POST la valeur de ta checkbox, tu récupère en réalité un tableau.
A toi ensuite de le traiter et de le mettre dans ta base !
Par exemple, tu peux faire une nouvelle colonne dans ta base dans laquelle tu y met un string qui sera la concaténation de tous les choix de l'utilisateur séparé par des virgules.
Tu peux ensuite récupérer depuis ta base cette colonne et si besoin recréer un tableau à partir de ce string grâce à la fonction explode() de PHP.

J'espère que c'est claire :)

Rabby, il y a 5 ans

en ce qui concerne le checkbox j'esperes il faut utiliser un seul name en mettant de crochet [] mais avec de differentes value
ex : name = " level [] " value=" html"
name =" level " value = " css "

DarkenNights, il y a 5 ans

Est-ce qu'il y a une question dans ta réponse ?

Si non, je t'invite à clôturer ton post :)

flexi2202, il y a 5 ans

merci pour l aide

donc je dois remplacer

<input type="checkbox" id="vehicle1" name="vehicle1" value="Bike">
<label for="vehicle1"> I have a bike</label><br>

par ceci
<input type="checkbox" id="vehicle []" name="vehicle []" value="Bike">
<label for="vehicle []"> I have a bike</label><br

DarkenNights, il y a 5 ans

Salut,

Désolé pour mon précédent message, j'ai confondu Rabby avec toi initiateur du sujet :)

Pour te répondre pas tout à fait !

<input type="checkbox" id="vehicleBike" name="vehicle[]" value="Bike"> <label for="vehicleBike"> I have a bike</label><br> <input type="checkbox" id="vehicleCar" name="vehicle[]" value="Car"> <label for="vehicleCar"> I have a car</label><br>

Ton attribut name doit avoir les crochets alors que pour l'id et le for de ton label non ce doit être autre chose.

Essaye avant de demander si c'est bien ça de tester ton code. Ca te permet de visualiser les éventuelle erreurs :)

Rabby, il y a 5 ans

salut flexi22 seulement le name qui doit doit contenir le crochet pas le id et for darkenNight a eclaircit ça