A voir également:
- Problème lors de la validation de mon formulaire
- Validation d'un formulaire ✓ - Forum - Javascript
- Validation d'un formulaire qui s'affiche deux fois? ✓ - Forum - VB / VBA
- Afficher un message de validation dans un formulaire ? ✓ - Forum - PHP
- Probleme de validation de mon formulaire ✓ - Forum - Programmation
- [PHP] empêcher de valider 2fois un formulaire ✓ - Forum - PHP
11 réponses
yg_be
- Messages postés
- 14989
- Date d'inscription
- lundi 9 juin 2008
- Statut
- Contributeur
- Dernière intervention
- 7 avril 2021
bonjour, avant tout, merci de tenir compte de ceci quand tu partages du code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
rdbn
- Messages postés
- 25
- Date d'inscription
- samedi 3 avril 2021
- Statut
- Membre
- Dernière intervention
- 7 avril 2021
merci pour l'info pour le partage de code
j'ai avancer sur le code mais toujours le même problème la page charge dans le vide...
j'ai avancer sur le code mais toujours le même problème la page charge dans le vide...
<?php //démarrer une session session_start(); if($_POST) { if(isset($_POST['nom']) && !empty($_POST['nom']) && isset($_POST['altitude']) && !empty($_POST['altitude'])) { require_once("Connection_bdd_hotel.php"); $nom = strip_tags($_POST['nom']); $altitude = strip_tags($_POST['altitude']); $sql = "INSERT INTO 'station' ('sta_nom', 'sta_altitude') VALUES (:sta_nom, :sta_altitude);"; $query = $db->prepare($sql); $query->bindValue(':sta_nom', $nom, PDO::PARAM_STR); $query->bindValue(':sta_altitude', $altitude, PDO::PARAM_INT); $query->execute(); $_SESSION['message'] = "Station ajouté"; require_once('close.php'); header('Location: add_station.php'); } else { $_SESSION['error'] = "Le formulaire et incomplet"; } } ?> <!DOCTYPE html> <html lang="fr"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous"> <title>Ajout station</title> </head> <body> <main class="container"> <div class="row"> <section class="col-12"> <?php if(!empty($_SESSION['error'])) { echo '<div class="alert alert-danger" role="alert"> '. $_SESSION['error'].' </div>'; $_SESSION['error'] = ""; } ?> <?php if(!empty($_SESSION['message'])) { echo '<div class="alert alert-success" role="alert"> '. $_SESSION['message'].' </div>'; $_SESSION['message'] = ""; } ?> <h1 class="p-3 mb-2 bg-success text-light text-center font-weight-light">Ajout d'une station</h1> <form action="" method="post"> <br><br> <div class="input-group input-group-lg"> <div class="input-group-prepend"> <span class="input-group-text bg-success text-light" id="ID">ID</span> </div> <input type="text" class="form-control" aria-label="Large" aria-describedby="inputGroup-sizing-sm" readonly> </div> <br><br> <div class="input-group input-group-lg"> <div class="input-group-prepend"> <span class="input-group-text bg-success text-light" id="nom">Nom</span> </div> <input type="text" class="form-control" aria-label="Large" aria-describedby="inputGroup-sizing-sm"> </div> <br><br> <div class="input-group input-group-lg"> <div class="input-group-prepend"> <span class="input-group-text bg-success text-light" id="altitude">Altitude</span> </div> <input type="texte" class="form-control" aria-label="Large" aria-describedby="inputGroup-sizing-sm"> </div> <br><br> <button type="submit" class=" col-12 btn btn-success btn-lg btn-block">Valider</button> <br><br> <div class="row"> <a href="Formulaire_add_station.php"><button type="button" class=" col-12 btn btn-outline-success text-dark">Retour</button></a> </div> </form> </section> </div> </main> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script> </body> </html>
jordane45
- Messages postés
- 32040
- Date d'inscription
- mercredi 22 octobre 2003
- Statut
- Modérateur
- Dernière intervention
- 7 avril 2021
Bonjour,
Déjà, il faudrait que tu nous dises à quoi correspond " la page charge dans le vide" ...
Elle affiche des choses ou non ?
Ton insert en BDD fonctionne ou pas ?
A noter que, vu que tu fais du PDO, il serait bien d'appliquer les consignes données ici
https://www.commentcamarche.net/faq/46512-pdo-gerer-les-erreurs
et de penser à activer l'affichage des erreurs php.
Il faudrait également penser à mettre en commentaire les redirections pour pouvoir voir les éventuelles erreurs...
Après.. si ta page s'affiche mais donne l'impression qu'elle continue à charger des choses .. c'est certainement lié à un fichier JS ou à des fichiers un peu lourds ( images, css ... )
Je t'invite également à revoir un peu l'écriture de ton code
- Récupération des variables AVANT de les utiliser
- Affichage des erreurs PHP
- Découpage du code en "fonctions" (une fonction pour l'insert par exemple )
bref. ce qui est indiqué ici : https://www.commentcamarche.net/faq/48399-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Déjà, il faudrait que tu nous dises à quoi correspond " la page charge dans le vide" ...
Elle affiche des choses ou non ?
Ton insert en BDD fonctionne ou pas ?
A noter que, vu que tu fais du PDO, il serait bien d'appliquer les consignes données ici
https://www.commentcamarche.net/faq/46512-pdo-gerer-les-erreurs
et de penser à activer l'affichage des erreurs php.
Il faudrait également penser à mettre en commentaire les redirections pour pouvoir voir les éventuelles erreurs...
Après.. si ta page s'affiche mais donne l'impression qu'elle continue à charger des choses .. c'est certainement lié à un fichier JS ou à des fichiers un peu lourds ( images, css ... )
Je t'invite également à revoir un peu l'écriture de ton code
- Récupération des variables AVANT de les utiliser
- Affichage des erreurs PHP
- Découpage du code en "fonctions" (une fonction pour l'insert par exemple )
bref. ce qui est indiqué ici : https://www.commentcamarche.net/faq/48399-php-gestion-des-erreurs-debogage-et-ecriture-du-code
rdbn
- Messages postés
- 25
- Date d'inscription
- samedi 3 avril 2021
- Statut
- Membre
- Dernière intervention
- 7 avril 2021
pour La page qui charge dans le vide c'est dans le sens que la page charge sur elle même mais n'envoie pas mes données rentré sur ma data base j'ai essayer de vérifié s'il y a quelque chose juste avec ce code simple :
if($_POST) { die ('C marche')
require_once("Connection_bdd_hotel.php");
require_once('close.php');
et rien s'affiche
Voici le code source de la page affiché.
if($_POST) { die ('C marche')
require_once("Connection_bdd_hotel.php");
require_once('close.php');
et rien s'affiche
Voici le code source de la page affiché.
/******************************************************************************* * * avast! Online Security plugin * (c) 2013 Avast Corp. * * @author: Lucian Corlaciu * * Injected specifics - Google Chrome * ******************************************************************************/ (function(){ "use strict"; if (typeof AvastWRC === 'undefined') { AvastWRC = {}; } //avoid multiple injections if(AvastWRC.bs === undefined){ var ial = null; //AvastWRC.ial instance - browser agnostic AvastWRC.bs = { init: function(){ ial = AvastWRC.ial.init(this); if(chrome.runtime){ chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) { console.log("onMessage extension"); ial.messageHub(request.message, request.data, sendResponse); return sendResponse({response: "message received"}) || Promise.resolve({response: "message received"}); }); } }, messageHandler: function(functionName, data) { data = data || {}; data.message = functionName; if(chrome.runtime){ chrome.runtime.sendMessage(data); } }, getLocalImageURL: function(file) { return chrome.extension.getURL('common/ui/icons/'+ file); }, getLocalResourceURL: function(file) { return chrome.extension.getURL(file); } }; AvastWRC.bs.init(); } }).call(this); //$.noConflict(true);
rdbn
- Messages postés
- 25
- Date d'inscription
- samedi 3 avril 2021
- Statut
- Membre
- Dernière intervention
- 7 avril 2021
- Messages postés
- 14989
- Date d'inscription
- lundi 9 juin 2008
- Statut
- Contributeur
- Dernière intervention
- 7 avril 2021
Je pensais qu'avec ce code ma variable $nom était directement égal à un post existant et non vide sans avoir besoin d'une condition if else...
Mes erreurs peuvent paraître bête, mais comme j'apprends, pour moi c'est des murs..lol
donc j'ai refais un if esle comme sur mon précédant code plus aucune erreur mes données sont bien envoyé sur ma bdd et si les champs sont vide j'ai mon echo "Les champs sont vide" après je me demande si l'on peut utiliser un header qui redirige sur la page elle même parceque la je suis redirigé sur une page blanche même avec mon header et un problème est survenu sur ma ddb les id sont auto incrémenté je devrais avoir mes id 1,2,3 par rapport au ajout mais elle sont donner au hasard 23,24,21,22...
Mes erreurs peuvent paraître bête, mais comme j'apprends, pour moi c'est des murs..lol
$nom = !empty($_POST['nom']) ? $_POST['nom'] : NULL;
donc j'ai refais un if esle comme sur mon précédant code plus aucune erreur mes données sont bien envoyé sur ma bdd et si les champs sont vide j'ai mon echo "Les champs sont vide" après je me demande si l'on peut utiliser un header qui redirige sur la page elle même parceque la je suis redirigé sur une page blanche même avec mon header et un problème est survenu sur ma ddb les id sont auto incrémenté je devrais avoir mes id 1,2,3 par rapport au ajout mais elle sont donner au hasard 23,24,21,22...
<?php error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); // Récupération des informations passées en POST if($_POST) { if(!empty($_POST['nom']) && !empty($_POST['altitude'])) { // Connexion à la base de données require "Connection_bdd_hotel.php"; $nom= $_POST['nom']; $altitude= $_POST['altitude']; try { // Construction de la requête INSERT sans injection SQL $query= $db->prepare("INSERT INTO station (sta_nom,sta_altitude) VALUES (:sta_nom,:sta_altitude)"); $query->bindValue(':sta_nom', $nom, PDO::PARAM_STR); $query->bindValue(':sta_altitude', $altitude, PDO::PARAM_INT); $query->execute(); // Libération de la connexion au serveur de BDD require_once('close.php'); // Redirection vers la page add_station.php header("Location: add_station.php"); exit; } // Gestion des erreurs catch (Exception $e) { echo "La connexion à la base de données a échoué ! <br>"; echo "Merci de bien vérifier vos paramètres de connexion ...<br>"; echo "Erreur : " . $e->getMessage() . "<br>"; echo "N° : " . $e->getCode(); die("Fin du script"); } } else { echo "Les champs sont vide"; } }
yg_be
- Messages postés
- 14989
- Date d'inscription
- lundi 9 juin 2008
- Statut
- Contributeur
- Dernière intervention
- 7 avril 2021
- Messages postés
- 25
- Date d'inscription
- samedi 3 avril 2021
- Statut
- Membre
- Dernière intervention
- 7 avril 2021
le code que tu montres en #15 est-il le code de la page add_station.php?
quelle page contient-elle le formulaire qui fait appel à la page add_station.php?
as-tu d'autres pages?
quelle page contient-elle le formulaire qui fait appel à la page add_station.php?
as-tu d'autres pages?
rdbn
- Messages postés
- 25
- Date d'inscription
- samedi 3 avril 2021
- Statut
- Membre
- Dernière intervention
- 7 avril 2021
- Messages postés
- 14989
- Date d'inscription
- lundi 9 juin 2008
- Statut
- Contributeur
- Dernière intervention
- 7 avril 2021
MAJ: pour le header j'ai mis le liens https: de la page add_station.php donc cela fonctionne je reste bien sur ma page après la Validation mais je ne comprend pas pourquoi cette différence
et pour les id de la ddb j'ai fais un deleted puis un create de ma ddb et j'ai ajouter mes données le premier prend bien id 1 le second id 2 ect mais c'est quand je supprime directement sur ma ddb par exemple l'id 2 la prochaine entré de données devrais prendre ca place en tant qu'id 2 mais la non il prend l'id 3 je passe donc de l'id 1 a l'id 3 j'éspère que j'était clair dans mes explications je voudrais seulement comprendre pourquoi mais sinon pour moi mon poste je peux le mettre en résolu merci infiniment pour votre aide !!
et pour les id de la ddb j'ai fais un deleted puis un create de ma ddb et j'ai ajouter mes données le premier prend bien id 1 le second id 2 ect mais c'est quand je supprime directement sur ma ddb par exemple l'id 2 la prochaine entré de données devrais prendre ca place en tant qu'id 2 mais la non il prend l'id 3 je passe donc de l'id 1 a l'id 3 j'éspère que j'était clair dans mes explications je voudrais seulement comprendre pourquoi mais sinon pour moi mon poste je peux le mettre en résolu merci infiniment pour votre aide !!
yg_be
- Messages postés
- 14989
- Date d'inscription
- lundi 9 juin 2008
- Statut
- Contributeur
- Dernière intervention
- 7 avril 2021
- Messages postés
- 25
- Date d'inscription
- samedi 3 avril 2021
- Statut
- Membre
- Dernière intervention
- 7 avril 2021
il est normal de ne pas réutiliser un id après suppression.
pour le reste, je suspecte que tes pages ne sont pas exécutées dans le bon ordre.
il serait utile que tu montres le code de tes différentes pages, ainsi que, surtout, le nom de chaque page.
pour le reste, je suspecte que tes pages ne sont pas exécutées dans le bon ordre.
il serait utile que tu montres le code de tes différentes pages, ainsi que, surtout, le nom de chaque page.
rdbn
- Messages postés
- 25
- Date d'inscription
- samedi 3 avril 2021
- Statut
- Membre
- Dernière intervention
- 7 avril 2021
- Messages postés
- 32040
- Date d'inscription
- mercredi 22 octobre 2003
- Statut
- Modérateur
- Dernière intervention
- 7 avril 2021
Je précise que tout fonctionne mes données sont bien ajouter à ma bdd mais je ne suis pas redirigé sur le header j'ai la page erreur sur l'image qui reste ..
rdbn
- Messages postés
- 25
- Date d'inscription
- samedi 3 avril 2021
- Statut
- Membre
- Dernière intervention
- 7 avril 2021
Bonjour,
La page "Ajout station" elle s'affiche mais une fois les données rentré un click sur le Valider devrait "en théorie" envoyer mes données saisie nom et altitude sur ma data base hotel. Elle affiche mon formulaire c'est normal mais après avoir Valider ma page reste tel quel avec le header
Merci pour les liens et les conseils je revois tout ca et je vous tiendrais au courant.
La page "Ajout station" elle s'affiche mais une fois les données rentré un click sur le Valider devrait "en théorie" envoyer mes données saisie nom et altitude sur ma data base hotel. Elle affiche mon formulaire c'est normal mais après avoir Valider ma page reste tel quel avec le header
Merci pour les liens et les conseils je revois tout ca et je vous tiendrais au courant.
rdbn
- Messages postés
- 25
- Date d'inscription
- samedi 3 avril 2021
- Statut
- Membre
- Dernière intervention
- 7 avril 2021
Merci pour l'info sur les id c'est donc normal
j'avais 3 pages
1e page "liste_station.php"
2eme page "Formulaire_add_station.php" ce n'était qu'un formulaire html
3eme page "add_station" c'était juste les requêtes php comme si dessus
j'ai ajouter le script de la 3eme page à la 2eme page et renommé en fonction et le header fonctionne maintenant sans le lien https mais directement avec le même nom de sa propre page
voici mes 2 pages fonctionnelles
j'avais 3 pages
1e page "liste_station.php"
2eme page "Formulaire_add_station.php" ce n'était qu'un formulaire html
3eme page "add_station" c'était juste les requêtes php comme si dessus
j'ai ajouter le script de la 3eme page à la 2eme page et renommé en fonction et le header fonctionne maintenant sans le lien https mais directement avec le même nom de sa propre page
voici mes 2 pages fonctionnelles
<?php // MON EXEMPLE session_start(); require_once("Connection_bdd_hotel.php"); $sql = 'SELECT * FROM station'; $query = $db->prepare($sql); $query->execute(); $result = $query->fetchAll(PDO::FETCH_ASSOC); require_once('close.php'); ?> <!DOCTYPE html> <html lang="fr"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous"> <title>Liste station</title> </head> <body> <main class="container"> <div class="row"> <section class="col-12"> <h1 class="p-3 mb-2 bg-success text-light text-center font-weight-light">Liste des stations</h1><br> <table class="table"> <thead class="table-active"> <th>Nom</th> <th></th> </thead> <tbody> <?php foreach($result as $station){ ?> <tr> <td><?= $station['sta_nom'] ?></td> <td></td> </tr> <?php } ?> </tbody> </table> <a href="add_station.php"><button type="submit" class=" col-12 btn btn-success btn-lg btn-block text-center font-weight-light"><b>Ajouter une station</b></button></a> </section> </div> </main> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script> </body> </html>
<?php // MON EXEMPLE session_start(); require_once("Connection_bdd_hotel.php"); $sql = 'SELECT * FROM station'; $query = $db->prepare($sql); $query->execute(); $result = $query->fetchAll(PDO::FETCH_ASSOC); require_once('close.php'); ?> <!DOCTYPE html> <html lang="fr"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous"> <title>Liste station</title> </head> <body> <main class="container"> <div class="row"> <section class="col-12"> <h1 class="p-3 mb-2 bg-success text-light text-center font-weight-light">Liste des stations</h1><br> <table class="table"> <thead class="table-active"> <th>Nom</th> <th></th> </thead> <tbody> <?php foreach($result as $station){ ?> <tr> <td><?= $station['sta_nom'] ?></td> <td></td> </tr> <?php } ?> </tbody> </table> <a href="add_station.php"><button type="submit" class=" col-12 btn btn-success btn-lg btn-block text-center font-weight-light"><b>Ajouter une station</b></button></a> </section> </div> </main> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script> </body> </html>
rdbn
- Messages postés
- 25
- Date d'inscription
- samedi 3 avril 2021
- Statut
- Membre
- Dernière intervention
- 7 avril 2021
maj: dsl j'ai mis 2 fois la 1ere page
<?php error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); // Récupération des informations passées en POST if($_POST) { if(!empty($_POST['nom']) && !empty($_POST['altitude'])) { // Connexion à la base de données session_start(); require "Connection_bdd_hotel.php"; $nom= $_POST['nom']; $altitude= $_POST['altitude']; try { // Construction de la requête INSERT sans injection SQL $query= $db->prepare("INSERT INTO station (sta_nom,sta_altitude) VALUES (:sta_nom,:sta_altitude)"); $query->bindValue(':sta_nom', $nom, PDO::PARAM_STR); $query->bindValue(':sta_altitude', $altitude, PDO::PARAM_INT); $query->execute(); // Libération de la connexion au serveur de BDD require_once('close.php'); // Redirection vers la page add_station.php header("Location: add_station.php"); exit; } // Gestion des erreurs catch (Exception $e) { echo "La connexion à la base de données a échoué ! <br>"; echo "Merci de bien vérifier vos paramètres de connexion ...<br>"; echo "Erreur : " . $e->getMessage() . "<br>"; echo "N° : " . $e->getCode(); die("Fin du script"); } } else { echo "Les champs sont vide"; } } ?> <!DOCTYPE html><html lang="fr"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous"> <title>Ajout station</title> </head> <body> <main class="container"> <div class="row"> <section class="col-12"> <h1 class="p-3 mb-2 bg-success text-light text-center font-weight-light">Ajout d'une station</h1> <form action="" method="post"> <br><br> <div class="input-group input-group-lg"> <div class="input-group-prepend"> <span class="input-group-text bg-success text-light font-weight-light" name="nom" id="nom">Nom</span> </div> <input name="nom" type="text" class="form-control" aria-label="Large" aria-describedby="inputGroup-sizing-sm"> </div> <br><br> <div class="input-group input-group-lg"> <div class="input-group-prepend"> <span class="input-group-text bg-success text-light font-weight-light" name="altitude" id="altitude">Altitude</span> </div> <input name="altitude" type="text" class="form-control" aria-label="Large" aria-describedby="inputGroup-sizing-sm"> </div> <br><br> <button type="submit" class=" col-12 btn btn-success btn-lg btn-block text-center font-weight-light"><b>Valider</b></button> <br><br> <div class="row"> <a href="Liste_station.php"><button type="button" class=" col-12 btn btn-outline-success text-dark">Retour</button></a> </div> </form> </section> </div> </main> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script> </body> </html>
yg_be
- Messages postés
- 14989
- Date d'inscription
- lundi 9 juin 2008
- Statut
- Contributeur
- Dernière intervention
- 7 avril 2021
si je vois bien, tu as choisi de ne pas indiquer chaque fois le nom de chaque page, tout cela est donc bien confus.
rdbn
- Messages postés
- 25
- Date d'inscription
- samedi 3 avril 2021
- Statut
- Membre
- Dernière intervention
- 7 avril 2021
Je n'ai pas bien compris dsl
j'ai ma 1er page avec ma liste et un boutton ajouter qui m'envoie sur ma 2ème page formulaire d'ajout avec un bouton pour valider qui valide mes données et me garde sur la même page et un bouton retour qui m'envoie sur ma 1er page liste ou l'on voit ma liste et également ce que j'ai ajouté
j'ai ma 1er page avec ma liste et un boutton ajouter qui m'envoie sur ma 2ème page formulaire d'ajout avec un bouton pour valider qui valide mes données et me garde sur la même page et un bouton retour qui m'envoie sur ma 1er page liste ou l'on voit ma liste et également ce que j'ai ajouté
rdbn
- Messages postés
- 25
- Date d'inscription
- samedi 3 avril 2021
- Statut
- Membre
- Dernière intervention
- 7 avril 2021
- Messages postés
- 14989
- Date d'inscription
- lundi 9 juin 2008
- Statut
- Contributeur
- Dernière intervention
- 7 avril 2021
bien d'accord mais je l'avais dis mais peut être un peu mal expliqué ma première page s'appel "liste_station" (On voit sur cette page la liste de mes stations avec un bouton "ajouter une station" ce même boutton envoi sur la seconde page) et la seconde "add_station' (affiche un champ nom et altitude pour créer une nouvelle station sur ma ddb) je comprend votre scepticisme quant à la page "add_station" qu'elle charge sur elle même mais comme c'est juste un exercice que je fais pour apprendre à créer des info sur ma ddb j'ai préférer garder un visuel de cette même page que d'avoir une page blanche ou bien même créer une autre page qui nous dis par exemple "Vos modifications sont pris en compte" mon but c'était juste de comprendre le principe de Create
yg_be
- Messages postés
- 14989
- Date d'inscription
- lundi 9 juin 2008
- Statut
- Contributeur
- Dernière intervention
- 7 avril 2021
- Messages postés
- 25
- Date d'inscription
- samedi 3 avril 2021
- Statut
- Membre
- Dernière intervention
- 7 avril 2021
il est inutile de refaire appel à la page "add_station", il suffit de laisse le code continuer, il va afficher le formulaire.
tu peux donc supprimer la ligne "header", ou même la remplacer par un echo "Vos modifications sont pris en compte", qui sera affiché en haut du formulaire.
c'est le double appel à la page qui provoquait le message d'erreur décrite en #10, puisque le second appel (déclenché par header) était fait sans formulaire, et que la page ne réagissait pas bien.
tu peux donc supprimer la ligne "header", ou même la remplacer par un echo "Vos modifications sont pris en compte", qui sera affiché en haut du formulaire.
c'est le double appel à la page qui provoquait le message d'erreur décrite en #10, puisque le second appel (déclenché par header) était fait sans formulaire, et que la page ne réagissait pas bien.
rdbn
- Messages postés
- 25
- Date d'inscription
- samedi 3 avril 2021
- Statut
- Membre
- Dernière intervention
- 7 avril 2021
- Messages postés
- 14989
- Date d'inscription
- lundi 9 juin 2008
- Statut
- Contributeur
- Dernière intervention
- 7 avril 2021
Effectivement même sans le header la page reste sur le formulaire (j'avais utiliser le header car j'avais avant 3 pages la première page était la même mais j'avais séparé le code html et le code php sur deux pages différentes alors que mntn j'ai les deux sur la même page) merci beaucoup pour ton aide et t explications! pouce bleu !!
yg_be
- Messages postés
- 14989
- Date d'inscription
- lundi 9 juin 2008
- Statut
- Contributeur
- Dernière intervention
- 7 avril 2021
la page publiée en #20 est-elle add_station.php?
si oui, que souhaites-tu qu'il se passe après l'insertion d'une nouvelle station?
je suis perplexe en voyant que tu fais une redirection vers la même page...
prends peut-être un peu de temps pour réfléchir (et à expliquer) ce que tu veux afficher et réaliser dans chaque page.
si oui, que souhaites-tu qu'il se passe après l'insertion d'une nouvelle station?
je suis perplexe en voyant que tu fais une redirection vers la même page...
prends peut-être un peu de temps pour réfléchir (et à expliquer) ce que tu veux afficher et réaliser dans chaque page.
jordane45
- Messages postés
- 32040
- Date d'inscription
- mercredi 22 octobre 2003
- Statut
- Modérateur
- Dernière intervention
- 7 avril 2021
Bonjour,
La discussion partant en yoyo .. difficile de suivre.
Mais.. si tu es toujours sur le message d'erreur que tu nous as montré dans ton image :
1 - Première erreur.. message indiquant un souci de connexion à la bdd.
ça .. c'est à cause de ce que tu as mis dans ton CATCH ..
2 - Seconde erreur .. la colonne sta_nom ne peut pas être vide ... il faut donc s'assurer qu'elle n'est pas vide avant d'essayer de faire l'insertion dans la bdd.
(ce que tu fais visiblement)
Par contre, tu as mis des attributs NAME sur tes SPAN .. ça ne se fait pas.. et surtout..ils ont le même nom que tes input .. ça peut éventuellement géner...
Peux tu essayer ça et nous dire ce que ça te donne ?
La discussion partant en yoyo .. difficile de suivre.
Mais.. si tu es toujours sur le message d'erreur que tu nous as montré dans ton image :
1 - Première erreur.. message indiquant un souci de connexion à la bdd.
ça .. c'est à cause de ce que tu as mis dans ton CATCH ..
2 - Seconde erreur .. la colonne sta_nom ne peut pas être vide ... il faut donc s'assurer qu'elle n'est pas vide avant d'essayer de faire l'insertion dans la bdd.
(ce que tu fais visiblement)
Par contre, tu as mis des attributs NAME sur tes SPAN .. ça ne se fait pas.. et surtout..ils ont le même nom que tes input .. ça peut éventuellement géner...
Peux tu essayer ça et nous dire ce que ça te donne ?
<?php session_start(); // A METTRE AVANT TOUT AUTRE CODE ! //affichage des erreurs PHP error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); // Connexion à la base de données require_once "Connection_bdd_hotel.php"; // Récupération des informations passées en POST $nom = !empty($_POST['nom']) ? $_POST['nom'] : NULL; $altitude = !empty($_POST['altitude']) ? $_POST['altitude'] : NULL; //Traitemetn du SUBMIT if(isset($_POST['valider']){ if($nom && $altitude) { try { // Construction de la requête INSERT sans injection SQL $query= $db->prepare("INSERT INTO station (sta_nom,sta_altitude) VALUES (:sta_nom,:sta_altitude)"); $query->bindValue(':sta_nom', $nom, PDO::PARAM_STR); $query->bindValue(':sta_altitude', $altitude, PDO::PARAM_INT); $query->execute(); // Redirection vers la page add_station.php header("Location: add_station.php"); // tu es déjà dans cette page.. donc inutile ... exit; } catch (Exception $e) { echo "Erreur : " . $e->getMessage() . "<br>"; echo "N° : " . $e->getCode(); var_dump($_POST); // pour voir le contenu envoyé par le formulaire ! die("Fin du script"); } } else { echo "Les champs sont vide"; var_dump($_POST); // pour voir le contenu envoyé par le formulaire ! } } ?> <!DOCTYPE html> <html lang="fr"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous"> <title>Ajout station</title> </head> <body> <main class="container"> <div class="row"> <section class="col-12"> <h1 class="p-3 mb-2 bg-success text-light text-center font-weight-light">Ajout d'une station</h1> <form action="" method="post"> <br><br> <div class="input-group input-group-lg"> <div class="input-group-prepend"> <span class="input-group-text bg-success text-light font-weight-light" id="nom">Nom</span> </div> <input name="nom" type="text" class="form-control" aria-label="Large" aria-describedby="inputGroup-sizing-sm"> </div> <br><br> <div class="input-group input-group-lg"> <div class="input-group-prepend"> <span class="input-group-text bg-success text-light font-weight-light" id="altitude">Altitude</span> </div> <input name="altitude" type="text" class="form-control" aria-label="Large" aria-describedby="inputGroup-sizing-sm"> </div> <br><br> <button type="submit" name="valider" class=" col-12 btn btn-success btn-lg btn-block text-center font-weight-light"><b>Valider</b></button> <br><br> <div class="row"> <a href="Liste_station.php"><button type="button" class=" col-12 btn btn-outline-success text-dark">Retour</button></a> </div> </form> </section> </div> </main> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script> </body> </html>
rdbn
- Messages postés
- 25
- Date d'inscription
- samedi 3 avril 2021
- Statut
- Membre
- Dernière intervention
- 7 avril 2021
Bonjour, merci pour votre aide et vos liens mais j'ai réussi à tout corrigé avec l'aide de "yg_be" .
Pour les SPAN c'est noté je les ai retiré.
Et votre code est fonctionnel juste une parenthèse qui manqué sur if(isset($_POST['valider'])) du //Traitement du SUBMIT, mais aucune erreur votre fonctionne très bien
Je suis bien content d'avoir résolu mes erreurs petit à petit juste avec des indications avant qu'on me le serve sur un plateaux !! lol mais un grand merci pour votre aide !
Pour les SPAN c'est noté je les ai retiré.
Et votre code est fonctionnel juste une parenthèse qui manqué sur if(isset($_POST['valider'])) du //Traitement du SUBMIT, mais aucune erreur votre fonctionne très bien
Je suis bien content d'avoir résolu mes erreurs petit à petit juste avec des indications avant qu'on me le serve sur un plateaux !! lol mais un grand merci pour votre aide !
que veux-tu dire par "La page charge dans le vide"? Peux-tu partager le code source HTML de la page affichée?