Problème lors de la validation de mon formulaire
Résolu/Fermé
rdbn
Messages postés
95
Date d'inscription
samedi 3 avril 2021
Statut
Membre
Dernière intervention
26 décembre 2022
-
3 avril 2021 à 19:40
rdbn Messages postés 95 Date d'inscription samedi 3 avril 2021 Statut Membre Dernière intervention 26 décembre 2022 - 4 avril 2021 à 18:07
rdbn Messages postés 95 Date d'inscription samedi 3 avril 2021 Statut Membre Dernière intervention 26 décembre 2022 - 4 avril 2021 à 18:07
A voir également:
- Problème lors de la validation de mon formulaire
- Ethernet n'a pas de configuration ip valide - Guide
- Formulaire de réclamation facebook - Guide
- Récupérer compte outlook sans formulaire - Forum Hotmail / Outlook.com
- Commande en cours de validation fnac - Forum Consommation & Internet
- Le nom du champ de tableau croisé dynamique n'est pas valide ✓ - Forum Excel
11 réponses
yg_be
Messages postés
23191
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 septembre 2024
Ambassadeur
1 533
Modifié le 3 avril 2021 à 20:39
Modifié le 3 avril 2021 à 20:39
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
95
Date d'inscription
samedi 3 avril 2021
Statut
Membre
Dernière intervention
26 décembre 2022
3 avril 2021 à 20:44
3 avril 2021 à 20:44
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
38241
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 septembre 2024
4 688
3 avril 2021 à 21:19
3 avril 2021 à 21:19
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://forums.commentcamarche.net/forum/affich-37584941-php-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://forums.commentcamarche.net/forum/affich-37584947-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://forums.commentcamarche.net/forum/affich-37584941-php-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://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
rdbn
Messages postés
95
Date d'inscription
samedi 3 avril 2021
Statut
Membre
Dernière intervention
26 décembre 2022
3 avril 2021 à 21:40
3 avril 2021 à 21:40
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);
jordane45
Messages postés
38241
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 septembre 2024
4 688
Modifié le 3 avril 2021 à 22:00
Modifié le 3 avril 2021 à 22:00
Bonjour,
Visiblement... la page est bloquée par ton antivirus...
Quoi qu'il en soit, appliques les conseils (consignes.. ) que je t'ai donné et montre nous le code corrigé.
Si le souci persiste, essaye depuis un autre navigateur.
Et indique nous si tu bosses en local sur ton ordi .. ou si tu utilises un hébergeur.
Penses également à nous préciser l'url qui s'affiche dans ton navigateur lorsque tu envoies le formulaire.
Visiblement... la page est bloquée par ton antivirus...
Quoi qu'il en soit, appliques les conseils (consignes.. ) que je t'ai donné et montre nous le code corrigé.
Si le souci persiste, essaye depuis un autre navigateur.
Et indique nous si tu bosses en local sur ton ordi .. ou si tu utilises un hébergeur.
Penses également à nous préciser l'url qui s'affiche dans ton navigateur lorsque tu envoies le formulaire.
rdbn
Messages postés
95
Date d'inscription
samedi 3 avril 2021
Statut
Membre
Dernière intervention
26 décembre 2022
>
jordane45
Messages postés
38241
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 septembre 2024
4 avril 2021 à 13:43
4 avril 2021 à 13:43
Bonjour; j'ai donc désactiver l'antivirus aucune diff
utiliser un autre navigateur aucune diff
en tout cas pour ce nouveau code..
je boss sur un un serveur virtuel (Wamp)
je vous montre maintenant l'url avec le code erreur affiché sur la page avec une capture et mon nouveau code j'ai essayais de tout re-codé à l'aide des consignes
dans les erreurs on voit bien "Connection Successful" j'ai rajouter un echo sur ma page de connexion à la bdd c'est que la connexion à la bdd est réussi
je pense que l'erreur vient du champ nom qui ne peut être vide (NULL) mais le champs et rempli en réalité
je suis maintenant sur un autre problème en cas tout merci beaucoup pour ton aide !
voici mon code :
utiliser un autre navigateur aucune diff
en tout cas pour ce nouveau code..
je boss sur un un serveur virtuel (Wamp)
je vous montre maintenant l'url avec le code erreur affiché sur la page avec une capture et mon nouveau code j'ai essayais de tout re-codé à l'aide des consignes
dans les erreurs on voit bien "Connection Successful" j'ai rajouter un echo sur ma page de connexion à la bdd c'est que la connexion à la bdd est réussi
je pense que l'erreur vient du champ nom qui ne peut être vide (NULL) mais le champs et rempli en réalité
je suis maintenant sur un autre problème en cas tout merci beaucoup pour ton aide !
voici mon code :
<?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 $nom = !empty($_POST['nom']) ? $_POST['nom'] : NULL; $altitude = !empty($_POST['altitude']) ? $_POST['altitude'] : NULL; // Connexion à la base de données require "Connection_bdd_hotel.php"; 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'); } // 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"); } // Redirection vers la page add_station.php header("Location: add_station.php"); exit; ?>
yg_be
Messages postés
23191
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 septembre 2024
1 533
>
rdbn
Messages postés
95
Date d'inscription
samedi 3 avril 2021
Statut
Membre
Dernière intervention
26 décembre 2022
4 avril 2021 à 14:02
4 avril 2021 à 14:02
le code ne devrait-il pas vérifier que $nom est "rempli", avant de faire l'insertion?
rdbn
Messages postés
95
Date d'inscription
samedi 3 avril 2021
Statut
Membre
Dernière intervention
26 décembre 2022
>
jordane45
Messages postés
38241
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 septembre 2024
4 avril 2021 à 14:03
4 avril 2021 à 14:03
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
95
Date d'inscription
samedi 3 avril 2021
Statut
Membre
Dernière intervention
26 décembre 2022
>
yg_be
Messages postés
23191
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 septembre 2024
4 avril 2021 à 14:09
4 avril 2021 à 14:09
avec ce code je vérifie si la variable $nom existe est n'est pas vide et elle est bien avant l'insertion dans mon code
$nom = !empty($_POST['nom']) ? $_POST['nom'] : NULL;
rdbn
Messages postés
95
Date d'inscription
samedi 3 avril 2021
Statut
Membre
Dernière intervention
26 décembre 2022
3 avril 2021 à 22:09
3 avril 2021 à 22:09
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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
rdbn
Messages postés
95
Date d'inscription
samedi 3 avril 2021
Statut
Membre
Dernière intervention
26 décembre 2022
4 avril 2021 à 16:37
4 avril 2021 à 16:37
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
95
Date d'inscription
samedi 3 avril 2021
Statut
Membre
Dernière intervention
26 décembre 2022
4 avril 2021 à 16:44
4 avril 2021 à 16:44
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
23191
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 septembre 2024
Ambassadeur
1 533
4 avril 2021 à 16:58
4 avril 2021 à 16:58
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
95
Date d'inscription
samedi 3 avril 2021
Statut
Membre
Dernière intervention
26 décembre 2022
4 avril 2021 à 17:05
4 avril 2021 à 17:05
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é
yg_be
Messages postés
23191
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 septembre 2024
1 533
4 avril 2021 à 17:13
4 avril 2021 à 17:13
ces pages ont un nom, l'une s'appelle sans doute add_station.php, l'autre a un nom probablement secret.
chaque fois que tu mentionnes une page, utilise son nom.
chaque fois que tu nous montres du code, précise le nom de la page.
chaque fois que tu mentionnes une page, utilise son nom.
chaque fois que tu nous montres du code, précise le nom de la page.
rdbn
Messages postés
95
Date d'inscription
samedi 3 avril 2021
Statut
Membre
Dernière intervention
26 décembre 2022
>
yg_be
Messages postés
23191
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 septembre 2024
4 avril 2021 à 17:24
4 avril 2021 à 17:24
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
23191
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 septembre 2024
1 533
>
rdbn
Messages postés
95
Date d'inscription
samedi 3 avril 2021
Statut
Membre
Dernière intervention
26 décembre 2022
4 avril 2021 à 17:34
4 avril 2021 à 17:34
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
95
Date d'inscription
samedi 3 avril 2021
Statut
Membre
Dernière intervention
26 décembre 2022
>
yg_be
Messages postés
23191
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 septembre 2024
4 avril 2021 à 17:49
4 avril 2021 à 17:49
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
23191
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 septembre 2024
1 533
>
rdbn
Messages postés
95
Date d'inscription
samedi 3 avril 2021
Statut
Membre
Dernière intervention
26 décembre 2022
4 avril 2021 à 17:57
4 avril 2021 à 17:57
pourras-tu alors marquer la discussion comme résolue?
yg_be
Messages postés
23191
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 septembre 2024
Ambassadeur
1 533
Modifié le 4 avril 2021 à 17:16
Modifié le 4 avril 2021 à 17:16
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
38241
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 septembre 2024
4 688
4 avril 2021 à 17:40
4 avril 2021 à 17:40
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
95
Date d'inscription
samedi 3 avril 2021
Statut
Membre
Dernière intervention
26 décembre 2022
4 avril 2021 à 18:06
4 avril 2021 à 18:06
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 !
3 avril 2021 à 20:39
que veux-tu dire par "La page charge dans le vide"? Peux-tu partager le code source HTML de la page affichée?
3 avril 2021 à 20:43
3 avril 2021 à 21:44