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 :

Récupérer données d'un formulaire de façon sécurisée [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Distribution

    Informations forums :
    Inscription : Mai 2011
    Messages : 48
    Points : 22
    Points
    22
    Par défaut Récupérer données d'un formulaire de façon sécurisée
    Bonjour à tous.

    J'ai une page "formulaire.php" qui, comme son nom l'indique, contient un formulaire avec les champs nom prénom ville etc...
    lorsque le visiteur valide ses coordonnées, elles s'enregistrent directement dans la BDD et ensuite redirection sur une page "facture.php"
    Voici donc mon problème. Comment récupérer les coordonnées du client pour les insérer directement dans ma facture.
    Pour le moment, mon code dans facture.php récupère la dernière entrée de la BDD. Mais je ne suis pas sur que ce soit très sécurisé comme façon de faire.
    J'ai donc pensé à un truc du genre $_POST['nom'] du formulaire à comparer avec le nom inscrit dans la BDD et si ce nom se trouve parmi les 2 derniers enregistrements de la BDD par ex, alors récupérer les données.
    Ou alors utiliser un cookie, mais ça je ne sais pas du tout comment faire.. ou peut être une session.. mais idem, je ne sais pas comment faire...
    Quelqu'un aurai une idée svp??

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 146
    Points : 262
    Points
    262
    Par défaut
    Une façon simple de faire sans tout changer a ton code

    Après l'insert en base tu utilise :
    http://php.net/manual/fr/function.mysql-insert-id.php

    pour récupérer l'id puis tu le stocke dans une variable de session et la récupère dans ta page facture.

  3. #3
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    le plus simple dans ton cas c'est d'utiliser une session et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['previous_post']=$_POST;
    sur la page qui fait l'inscription sur la bdd, mais bon faut que ton site soit "session ready".

  4. #4
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    voilà en fait ce que je propose c'est un principe. Je suis bien conscient qu'il est bête de stoker des données non validées dans $_SESSION.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Distribution

    Informations forums :
    Inscription : Mai 2011
    Messages : 48
    Points : 22
    Points
    22
    Par défaut
    Bonsoir,
    Voila, je me suis donc tourné vers les sessions. Formidable ça marche.
    Il me reste un petit problème.
    Mes sessions sont définis après l’insertion des données dans la BDD.
    Seulement, sur ma page "facture.php" j'ai besoin d'un numéro de facture.
    J'ai donc pensé que l'id pourrai faire office de numéro de facture.
    Seulement impossible de le récupérer.
    J'ai essayé avec session_id() mais il me le sors tout crypté...
    Une idée???

  6. #6
    Membre actif
    Homme Profil pro
    Inscrit en
    Décembre 2004
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 174
    Points : 241
    Points
    241
    Par défaut
    Citation Envoyé par moimeme340 Voir le message
    Bonsoir,
    Voila, je me suis donc tourné vers les sessions. Formidable ça marche.
    Il me reste un petit problème.
    Mes sessions sont définis après l’insertion des données dans la BDD.
    Seulement, sur ma page "facture.php" j'ai besoin d'un numéro de facture.
    J'ai donc pensé que l'id pourrai faire office de numéro de facture.
    Seulement impossible de le récupérer.
    J'ai essayé avec session_id() mais il me le sors tout crypté...
    Une idée???
    Bonjour, oui, c'est bien de stocker en session, c'est rapide et efficace...

    Tu dis
    ...Mes sessions sont définis après l’insertion des données dans la BDD.
    Et alors ?
    Tu fais un session_start() en début de script, après tu y mets et y ajoutes (supprimes, réinitilaises...) ce que tu veux !
    Donc
    - session_start
    - ton SQL
    - les $_POST en session
    - gère, crée, récupère un num de facture, en session également
    - puis header sur ton script facture.php

    Voilà (si mon interprétation correspond bien à ton besoin...)

    lenono

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Distribution

    Informations forums :
    Inscription : Mai 2011
    Messages : 48
    Points : 22
    Points
    22
    Par défaut
    Voici le code pur mieux me faire comprendre:
    formulaire.php
    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
    17
    18
    19
    20
    if (isset($_POST['civilite']) AND isset($_POST['nom']) AND isset($_POST['prenom']) AND isset($_POST['adresse']) AND isset($_POST['codepostal']) AND isset($_POST['ville']) AND isset($_POST['email']))
     
    {
        $civilite = mysql_real_escape_string(htmlspecialchars($_POST['civilite'])); 
        $nom = mysql_real_escape_string(htmlspecialchars($_POST['nom'])); 
    	$prenom = mysql_real_escape_string(htmlspecialchars($_POST['prenom'])); 
        $adresse = mysql_real_escape_string(htmlspecialchars($_POST['adresse'])); 
        $codepostal = mysql_real_escape_string(htmlspecialchars($_POST['codepostal'])); 
        $ville = mysql_real_escape_string(htmlspecialchars($_POST['ville'])); 
        $email = mysql_real_escape_string(htmlspecialchars($_POST['email'])); 
        $REMOTE_ADDR = mysql_real_escape_string(getenv('REMOTE_ADDR'));
        mysql_query("INSERT INTO formulaire VALUES('', '" . $civilite . "','" . $nom . "', '" . $prenom . "', '" . $adresse . "', '" . $codepostal . "', '" . $ville . "', '" . $email . "', '".date("Y-m-d H:i:s")."', '".$REMOTE_ADDR ."')");	
    }
     
    $_SESSION['civilite'] = $civilite;
    $_SESSION['nom'] = $nom;
    $_SESSION['prenom'] = $prenom;
    $_SESSION['adresse'] = $adresse;
    $_SESSION['codepostal'] = $codepostal;
    $_SESSION['ville'] = $ville;
    facture.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    	<td class='entete'>
    		".$_SESSION['civilite']."
    &nbsp;
            ".$_SESSION['nom']."
    &nbsp;
    		".$_SESSION['prenom']."
    <br>
    		".stripslashes($_SESSION['adresse'])."
    <br>
    		".$_SESSION['codepostal']."
    &nbsp;
    		".$_SESSION['ville']."
    <br> Facture n°: (ici il me faudrait l'id)
    	</td>
    Comment est ce que je peux faire pour récupérer l'id pour l'utiliser en tant que numéro de facture???

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 146
    Points : 262
    Points
    262
    Par défaut
    De la façon proposée dans ma 1ère réponse ?

    http://php.net/manual/fr/function.mysql-insert-id.php

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Distribution

    Informations forums :
    Inscription : Mai 2011
    Messages : 48
    Points : 22
    Points
    22
    Par défaut
    Mais le problème de mysql-insert-id c'est que si entre temps une autre commande est effectuée, elle risque d'avoir le même num de facture.
    c'est pour cela que je préfère passer par la session.
    j'ai trouvé session_id() mais il me le sors de façon crypté. Y aurait il un moyen de l'avoir non crypté???

  10. #10
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 146
    Points : 262
    Points
    262
    Par défaut
    Bah non il te ressort l id de la dernier insertion faite avec ta connexion donc c'est forcement l'ID correspondant a ta facture.

    La fonction n'aurait pas beaucoup d’intérêt si elle te renvoyait des informations aléatoires non ?

  11. #11
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Distribution

    Informations forums :
    Inscription : Mai 2011
    Messages : 48
    Points : 22
    Points
    22
    Par défaut
    Voila, je t'ai écouté Tolriq et ça à l'air de marcher parfaitement....
    Merci beaucoup pour ton aide...
    Si ça te dis, je vais bientôt créer un nouveau sujet concernant l'enregistrement de la facture php en pdf automatique.... si ça te dis...

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

Discussions similaires

  1. Récupérer donnée d'un formulaire dans un fichier
    Par koyote63 dans le forum Langage
    Réponses: 10
    Dernier message: 02/02/2008, 19h41
  2. Récupérer données d'un formulaire dynamique
    Par nylsax dans le forum Langage
    Réponses: 6
    Dernier message: 07/12/2007, 16h29
  3. Récupérer données dans un formulaire continu
    Par benazerty dans le forum Access
    Réponses: 1
    Dernier message: 12/09/2006, 17h44
  4. Récupérer données source formulaire sans recordSet
    Par sunvialley dans le forum Access
    Réponses: 5
    Dernier message: 07/06/2006, 13h45
  5. Réponses: 6
    Dernier message: 26/11/2005, 15h43

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