CONNEXION
  • RetourJeux
    • Tests
    • Soluces
    • Previews
    • Sorties
    • Hit Parade
    • Les + attendus
    • Tous les Jeux
  • RetourActu
    • Culture Geek
    • Astuces
    • Réalité Virtuelle
    • Rétrogaming
    • Toutes les actus
  • RetourHigh-Tech
    • Actus JVTECH
    • Bons plans
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTECH
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch
    • Xbox Series
    • Overwatch 2
    • FUT 23
    • League of Legends
    • Genshin Impact
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • PS4
  • One
  • Switch
  • Wii U
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Etoile Abonnement RSS

Sujet : Formulaire PHP/HTML

DébutPage précedente
12
Page suivantePage suivante
Greezy_51 Greezy_51
MP
Niveau 4
03 juillet 2015 à 16:34:54

Moi je pensais envoyé un mail avec le lien du formulaire 2, à partir du moment où le service 1 a validé son formulaire, juste pour prévenir le service 2. Exemple : "Etape 1 terminée, à vous de remplir".

Darkandgel Darkandgel
MP
Niveau 10
03 juillet 2015 à 16:38:24

Ben oui.
Et dans ce lien tu rajoutes les infos remplies dans le formulaire 1.

Ca te permet de ne créer ta ligne en base que lorsque tu as toutes tes infos.

Sinon tu crées une ligne dans ta table une fois que le formulaire 1 a été envoyé et tu fais des update a chaque formulaire suivant.

Ou, 3eme option, tu remplis une table tampon et tu ne remplis ta table de prod qu'une fois que tu as toutes tes infos

Greezy_51 Greezy_51
MP
Niveau 4
03 juillet 2015 à 17:03:28

La première solution m'a l'air bien mais cela voudrait dire que je rajoute à chaque fois les informations. Par exemple : Formulaire 1 -> lien.php (avec les infos du formulaire 1 et un bouton pour accéder au formulaire 2) -> Formulaire 2 -> lien.php (avec les infos du formulaire 1 et 2, et un bouton pour accéder au formulaire 3) etc... ???

2ème option : Pour remplir une ligne, on peut faire un Insert pour 3 champs (Formulaire 1), ensuite un update pour le 4eme 5eme 6eme champs (Formulaire 2), etc ... ?

3ème option : Une table tampon c'est à dire ?

Je ne sais pas si j'ai été bien clair sur les 3 options. Merci de prendre de ton temps depuis le début pour me répondre, c'est sympa :)

Darkandgel Darkandgel
MP
Niveau 10
03 juillet 2015 à 18:09:56

Enfin en week end !

Pour reprendre, ce que je te propose :

1) Quand tu submit form1.php, tu envoies un mail qui contient un lien sous cette forme :
http://mon/chemin/vers/form2.php?var1=toto&var2=tata&var3=blabla

Dans ta page form2.php, tu recuperes ces valeurs avec $_GET['var1'], etc.

Le probleme, c'est que les url ont une taille max, donc ti tu tentes de passer 50 infos tu vas te retrouver a court d'espace. Egalment, comme ça passe en clair dans l'URL, aucune donnée sensible ne doit transiter par la (password et cie).

2) oui, tu peux parfaitement faire des updates. Le probleme de cette méthode c'est que si tu as un certain laps de temps entre l'envoi de ton 1er formulaire et l'envoi du dernier, tu vas te retrouver avec une base dans laquelle il manque des infos.

Par exemple, si tu as une table Personne avec age, nom, sexe comme champs, et que ton 1er formulaire ne remplis que "age", alors si tu fais un select * from Personne, tu vas avoir une ligne sans nom ni sexe. Tu peux y pallier en rajoutant par exemple un flag booleen "pret_a_etre_utilise" que tu ne passes a true que lorsque ton dernier formulaire a été envoyé. Et au lieu de faire select * from Personne, tu feras select * from Personne where pret_a_etre_utilise = true pour recuperer ta liste de personnes

3) Une table dans laquelle tu mets les infos au fur et a mesure, et une fois que ta ligne est crée completement, tu la bascules sur ta table de prod. pour reprendre l'exempel du dessus, tu auras une table Personne_buffer dans laquelle tu vas ecrire nom, age et sexe, et quand tu auras envoyé le derniere formulaire, tu recopie cette ligne dans la table Personne et tu la supprimes (ou pas) de Personne_buffer

Greezy_51 Greezy_51
MP
Niveau 4
03 juillet 2015 à 18:20:13

D'accord, merci pour ta réponse, je testerais ça lundi au boulot. Pour toi quelle est la meilleur solution ?

Darkandgel Darkandgel
MP
Niveau 10
03 juillet 2015 à 18:47:00

Probablement la 2

Greezy_51 Greezy_51
MP
Niveau 4
13 juillet 2015 à 09:09:05

J'up le sujet, j'ai opté pour la solution 2, ça a l'air de fonctionner mais mettre au moins 50 champs dans une table d'une bdd me paraît beaucoup non ?

Darkandgel Darkandgel
MP
Niveau 10
13 juillet 2015 à 10:13:16

C'est vrai que ça fait beaucoup, mais ce n'est pas forcement une erreur

Greezy_51 Greezy_51
MP
Niveau 4
13 juillet 2015 à 10:59:34

Ce serait pas mieux de faire plusieurs tables avec un même ID article ?

Darkandgel Darkandgel
MP
Niveau 10
13 juillet 2015 à 11:08:43

Si tu stockes des infos relatives a divers objets (utilisateur, client, article, whatever), alors oui.
Si tu ne stockes que des infos relatives a un même objet, je ne suis pas fan de morceler les tables

Greezy_51 Greezy_51
MP
Niveau 4
13 juillet 2015 à 11:12:18

C'est des infos que sur un article..

rangerprice rangerprice
MP
Niveau 10
13 juillet 2015 à 18:25:25

Utilise les variables de sessions pour transmettre les informations de pages en pages, pas les variables d'environnement GET et POST, qui, elles sont moins sécurisé.

Dans le cadre d'un formulaire, le formulaire est remplis la variable GET ou POST reçoit les données, seulement, la variable GET et POST est modifiable par le client, et ça, c'est très dangereux. Never trust user input :noel:

Tandis qu'avec les variables de sessions, c'est le serveur qui s'occupe de tout ce que contient $_SESSION, et c'est ainsi plus sécurisé. :hap:

Il y a des moments ou utiliser chaque type de variable, mais pour les formulaires, privilèges les variables de sessions. :hap:

SPYNOTE SPYNOTE
MP
Niveau 1
23 juillet 2015 à 17:12:26

Bonjour à tous, je pense que tu pourrais même gérer le fais qu' un service ne peux remplir le formulaire sans qu'un autre n'est rempli le sien. Comment me diriez-vous , tout simplement en mettant dans la base de donnée un champ boolean ou un entier avec un 1 si le formulaire 1 a été rempli et 0 s'il n'as pas été rempli comme ça si le service tente de remplir le sien il ne pourra pas le validé car au préalable on ira cherche la valeur de teste du formulaire préalable a celui ci.

Plan  POUR LA BASE DE DONNEE:
Table de la base de donnée :
table formulaire1 :
IDFORM1:int (identifiant le formulaire 1)
les autres infos du formulaire 1
IDTESTFORM1 : int (s'il vaut 1 c que le formulaire 1 a ete rempli)
table formulaire2 :
IDFORM2:int (identifiant le formulaire 2)
les autres infos du formulaire 2
IDFORM1 (permet de faire la jointure entre la table formulaire 1 et formulaire2 permet de recupere la variable IDTESTFORM1 qui permet de savoir si le formulaire 2 pourra etre valide)
IDTESTFORM2 : int (s'il vaut 1 c que le formulaire 2 a ete rempli et le formulaire 3 pourra etre alors validé)
table formulaire3 :
IDFORM3:int (identifiant le formulaire 2)
les autres infos du formulaire 2
IDFORM2 (permet de faire la jointure entre la table formulaire 2 et formulaire3 permet de récupéré la variable IDTESTFORM2 qui permet de savoir si le formulaire 3 pourra etre validé)
IDTESTFORM3 : int (s'il vaut 1 c que le formulaire 3 a ete rempli et le formulaire 4 pourra etre alors validé)

PARTI PROGRAMMATION :

•FORMULAIRE (<form action etc..></form>, <input …../> etc ….)

exemple :
<form method="POST" action="Panier.htm">
<input type="submit" name="panier" value="Panier"/>
</form>

•recuperation de donnee sur une autre feuille($_POST ou $_GET a toi de voir se que tu utilise)
exemple :

<?php
if(empty($_POST['numFilm'])){ //$_POST ici me permet de recupere le champ rempli avec le name=  numFilm
echo "<br/>veuillez entrer un numero de film.";";
}
else{
$numerofilm = $_POST['numFilm'];
if(!is_numeric($numerofilm)){
echo "<br/>désolé ce n'est pas un numero .";
else etc...

•Acces base de donnee
exemple :
fonctions de connexion  (mettre dans un fichier exemple outil.inc) :

function DB_Connect(){//db-oracle.ufr-info-p6.jussieu.fr
$cnx=mysql_pconnect("localhost", "nomprojet");
mysql_set_charset ('UTF8');
if($cnx==0){
echo "La connexion à échoue.\n";
return 0;
}
if(mysql_select_db("nomprojet",$cnx)==0){
echo "Accès à la base de donnée impossible.\n";
echo mysql_error($cnx);
return 0;
}
return $cnx;

}

function DB_execSQL($req, $serv){

$res=mysql_query($req, $serv);
if($res==0){
echo "La requete à échoue.\n";
echo mysql_error($serv);
return 0;
}
return $res;

}

puis on les utilise comme ca (dans un autre fichier):

include("Outils.inc");
$server = DB_connect();
if(ici le test){
echo "";
}else{
$req="select * from FILMS where NoFilm='".$numfilm."'";
$reponse =DB_execSQL($req, $server);//ici teste la requete req
$film = mysql_fetch_object($rep);
echo "<tr>" ;
echo "<td>$film->Titre</td>";
echo '<td><input type="checkbox" name="Case'.$i.'" /></td>';
echo "<tr>";
}

en espérant t'avoir aidé et encore désolé pour le roman.

DébutPage précedente
12
Page suivantePage suivante
Répondre
Prévisu
?
Victime de harcèlement en ligne : comment réagir ?
Infos 0 connecté(s)

Gestion du forum

Modérateurs : godrik, LGV
Contacter les modérateurs - Règles du forum

Sujets à ne pas manquer

La vidéo du moment