Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/09/2011, 18h20   #1
Invité de passage
 
Homme
Étudiant
Inscription : mai 2011
Messages : 45
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Distribution

Informations forums :
Inscription : mai 2011
Messages : 45
Points : 2
Points : 2
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??
moimeme340 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/09/2011, 18h59   #2
Membre confirmé
 
Inscription : juillet 2011
Messages : 146
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : juillet 2011
Messages : 146
Points : 253
Points : 253
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.
Tolriq est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/09/2011, 19h00   #3
Membre Expert
 
Avatar de gene69
 
Inscription : janvier 2006
Messages : 951
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 : 951
Points : 1 063
Points : 1 063
le plus simple dans ton cas c'est d'utiliser une session et

Code :
$_SESSION['previous_post']=$_POST;
sur la page qui fait l'inscription sur la bdd, mais bon faut que ton site soit "session ready".
__________________
PHP fait nativement la validation d'adresse électronique Vous êtes perdu en PHP? rassurez-vous ici (en)
Utilisez le bouton résolu!
gene69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/09/2011, 19h04   #4
Membre Expert
 
Avatar de gene69
 
Inscription : janvier 2006
Messages : 951
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 : 951
Points : 1 063
Points : 1 063
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.
__________________
PHP fait nativement la validation d'adresse électronique Vous êtes perdu en PHP? rassurez-vous ici (en)
Utilisez le bouton résolu!
gene69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/09/2011, 01h08   #5
Invité de passage
 
Homme
Étudiant
Inscription : mai 2011
Messages : 45
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Distribution

Informations forums :
Inscription : mai 2011
Messages : 45
Points : 2
Points : 2
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???
moimeme340 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/09/2011, 11h45   #6
Membre confirmé
 
Homme Arnaud
Inscription : décembre 2004
Messages : 167
Détails du profil
Informations personnelles :
Nom : Homme Arnaud
Âge : 40
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : décembre 2004
Messages : 167
Points : 238
Points : 238
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
Citation:
...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
lenono est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/09/2011, 13h26   #7
Invité de passage
 
Homme
Étudiant
Inscription : mai 2011
Messages : 45
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Distribution

Informations forums :
Inscription : mai 2011
Messages : 45
Points : 2
Points : 2
Voici le code pur mieux me faire comprendre:
formulaire.php
Code :
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 :
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???
moimeme340 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/09/2011, 14h42   #8
Membre confirmé
 
Inscription : juillet 2011
Messages : 146
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : juillet 2011
Messages : 146
Points : 253
Points : 253
De la façon proposée dans ma 1ère réponse ?

http://php.net/manual/fr/function.mysql-insert-id.php
Tolriq est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/09/2011, 14h56   #9
Invité de passage
 
Homme
Étudiant
Inscription : mai 2011
Messages : 45
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Distribution

Informations forums :
Inscription : mai 2011
Messages : 45
Points : 2
Points : 2
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é???
moimeme340 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 02/09/2011, 15h18   #10
Membre confirmé
 
Inscription : juillet 2011
Messages : 146
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : juillet 2011
Messages : 146
Points : 253
Points : 253
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 ?
Tolriq est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/09/2011, 15h33   #11
Invité de passage
 
Homme
Étudiant
Inscription : mai 2011
Messages : 45
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Distribution

Informations forums :
Inscription : mai 2011
Messages : 45
Points : 2
Points : 2
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...
moimeme340 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h32.


 
 
 
 
Partenaires

Hébergement Web