IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Aide sur enregistrement de données dans MySQL [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé
    Homme Profil pro
    Touche à tout
    Inscrit en
    Mai 2017
    Messages
    474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 474
    Par défaut Aide sur enregistrement de données dans MySQL
    Bonjour,

    J'enregistre des données dans une base MySQL par la méthode "POST"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form class="form-inline" name="monformulaire" action="Montraitement.php" method="post" onsubmit="return CheckForm(this);">...</form>
    Ma question est comment faire pour ne pas afficher la page traitement "Montraitement.php" (nouvel onglet), c'est à dire que l'enregistrement se fasse et que:

    1./Pas la possibilité de faire un multiples enregistrements par le refresh de la page,
    2./Message d'erreur ou de succès.

    Merci par avance

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 651
    Par défaut
    à la fin du traitement, il suffit de faire une redirection vers un autre URL qui affichera le message :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    header("Location: http://serveur/message.php");
    exit();

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    à lire :


    (*Copie)
    Voici une technique (Formulaire et Traitement sur la même page) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?php if(session_id()=='') { session_start(); }
    // TRAITEMENT SI LE FORM A ETE POSTE
    if (isset($_SESSION['random_OK'], $_POST['randomformOK'])
    	&& $_POST['randomformOK']==$_SESSION['random_OK']) {
    	include('./form-traiter.php'); // traitement...
    }
    // Protection contre "actualiser la page" ou envoi depuis l'extérieur (vol de formulaire)
    unset($_POST);
    $_SESSION['random_OK'] = rand(100000,999999); // nombre aléatoire
    // -----------------------
    // AFFICHAGE DU FORMULAIRE
    ?>
    	<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    		<input type="hidden" name="randomformOK" value="<?php echo $_SESSION['random_OK']; ?>" />
    	..........
    	</form>
    • $_SESSION['random_OK'] contient un nombre aléatoire
    • il est mis dans un input hidden du formulaire => il sera alors récupéré via $_POST['randomformOK']


    SI on recharge la page (F5):
    • $_SESSION['random_OK'] est modifié
    • MAIS $_POST['randomformOK'] NON.

    Ils sont différents => le traitement ne se fait pas (une 2ème fois).

  4. #4
    Membre éclairé
    Homme Profil pro
    Touche à tout
    Inscrit en
    Mai 2017
    Messages
    474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 474
    Par défaut
    Merci, je vais regarder tout ça

  5. #5
    Membre éclairé
    Homme Profil pro
    Touche à tout
    Inscrit en
    Mai 2017
    Messages
    474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 474
    Par défaut
    Bonjour,

    je viens enfin de tester... ça enregistre bien mais par contre je perd ma variable provenant d'une autre page... comment faire pour ne pas la perdre (peut-être impossible à cause du $_SERVER['PHP_SELF'])?

    Car au départ j'affiche ma page de la manière suivante: "mapage.php?mavariable=32"

    Merci par avance.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Soit dans un input hidden, soit dans une SESSION.

  7. #7
    Membre éclairé
    Homme Profil pro
    Touche à tout
    Inscrit en
    Mai 2017
    Messages
    474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 474
    Par défaut
    Ok, merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Enregistrer données dans mysql
    Par Xeuch dans le forum Ext JS / Sencha
    Réponses: 5
    Dernier message: 24/11/2013, 18h27
  2. Réponses: 9
    Dernier message: 01/12/2010, 05h24
  3. [MySQL] Enregistrement da données dans une table Mysql
    Par xunil2003 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 26/03/2010, 17h27
  4. [MySQL] S'assurer du bon enregistrement des données dans BDD mysql
    Par lilly91 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 16/12/2009, 14h14
  5. [C#] Comment enregistrer des données dans un base Mysql ?
    Par zidenne dans le forum Accès aux données
    Réponses: 3
    Dernier message: 21/09/2006, 17h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo