PHP/ MySQL et formulaire

* fredostar2
Anonyme
Envoyé le 14/12/2006 à 16:01

bonjour,
alors la comme je suis trop en galere je vous demande votre aide précieuse!
donc j\'explique j\'ai un formulaire qvec des entrées de toute sorte (int, datetime, char ...) que je veux mettre dans une base de donée (sous mysql)
donc 4fichiers :
un index ou j\'apel toute mes fonction php
un fichier php avec le formulaire (v_creat_race.php) qui renvoi par post les données
un otre c_create_race ou je voudrais qu\'il récuper les entrées (enfin les champ du formulaire)
un otre m_creat_race avec ma requet sql de insert into
donc avec un fichier html (le formulaire) et un fichier php (ou je récuper mes champ et les inser ds ma table) ca marche. seulement c pas ca qui faut faire.
d\'ou ma demande comment faire pour qu\'une fois le formulaire rempli et récupéré sur c_create_race je les renvoi a m_create_race pour qu\'il les inser ds ma table?

et evidement je n\'ai pas qu\'une question :D comment faire pour verifié si les champs sont tous rempli?(j\'aimerai le mettre dans l\'index ca.)
et oui parcqu\'il faudrait que tout passe par l\'index ( quand je post le form ca part sur index qui ouvre le c_create_race)
voila.
merci
fredo
posé tte les questions que vous voulez aussi!
merci.


BlueScreenJunky BlueScreenJunky
3 186 contributions
Membre depuis le 26/04/2002
Envoyé le 14/12/2006 à 19:06 Modifié par Modifié par BlueScreenJunky le


Je comprends vraiment pas là o_O Quel intérêt de faire un fichier c_create_race et un m_create_race ?

Une fois que l\'utilisateur a rempli le formulaire, il suffit de le renvoyer sur c_create_race avec un action=\"c_create_race.php\" dans ton <form>. Ensuite ton c_create race récupère toutes les données contenue dans POST avec un petit extract($_POST) par exemple, puis il fait la requête SQL.

Pour vérifier que tous les champs sont bien remplis, le plus simple est de faire un petit script javascript. Sinon en php tu peux mais ce sera moins pratique pour l\'utilisateur (genre if($champ == \"\") {echo \"vous n\'avez pas rempli tous les champs\";})


Enfin bref, j\'ai pas vraiment compris ce qui te posait problème, si tu pouvais essayer d\'expliquer un peu plus précisément :-/
* fredostar2
Anonyme
Envoyé le 14/12/2006 à 23:53

donc comme je l\'ai mal dit plus haut : j\'ai deux problemes : vérifié (en php) [je verrai pour le javascript si je peux utiliser] les champ. et de recuperer ces champs dans le fichier c_create_race.php qui le renvoie au fichier m_create_race.php (fichier qui contiens le sql ! ) me demande pas pourquoi je doit serparer c com ca. et comme je l\'ai dit plus haut en 1fichier php ca marche!
merci blue!

* fredostar2
Anonyme
Envoyé le 15/12/2006 à 10:43

donc mon code marche nikel. le probleme (immense irrésolu et qui me casse la tete!!!!!) est le suivant.
je voudrais que les champs récuperé par post de v-create dans c-create soit pris en conte dans m-create.
donc ce que je veux faire clairement c récuperé les variable de c-create dans m-create
et j\'y arrive pas :((((((((((((((((

* fredostar2
Anonyme
Envoyé le 15/12/2006 à 10:54

donc ou ic\'est bien ca mon prbleme. faire le lien entre c_create_race et m_create_race

enfait le truc c\'est que l\'on veut tout séparé. le formulaire ds une fonction, les variables controlé (ds c_create_race) et les requetes sql (instert to ds mon cas dans m_create_race) ...
faut que je fasse mes test ds le c qui renvoie a m mais est-ce que ds le m je doit remetre mais $_POST?
commme ce ci :

<?php
/* La fonction permet de récupérer les données pour créer une course
Entrées : parametres entrés par l\'admin
Sortie : ajoute les parametre à la table create_race de la base tuning_zone */

function m_create_race() // $race_name,$type,$length,$weather,$ground,$date,$time,$price,$reward
{
$db = mysql_connect(\'localhost\', \'root\', \'\');
mysql_select_db(\'tuning_zone\',$db);
$race_name = $_POST[\'race_name\'];
$type = $_POST[\'type\'];
$length = $_POST[\'length\'];
$weather = $_POST[\'weather\'];
$ground = $_POST[\'ground\'];
$date = $_POST[\'date\'];
$time = $_POST[\'time\'];
$price = $_POST[\'price\'];
$reward = $_POST[\'reward\'];


//debut de la requete pour inserer les parametres dans la table create_race de la base tuning_zone
$request = \"INSERT INTO create_race (race_name,
type,
length,
weather,
ground,
date,
time,
price,
reward)
values(\'$race_name\',
\'$type\',
\'$length\',
\'$weather\',
\'$ground\',
\'$date\',
\'$time\',
\'$price\',
\'$reward\')\";

mysql_query(\"$request\");
mysql_close();

}




?>

bart64 bart64
182 contributions
Membre depuis le 11/02/2003
Envoyé le 15/12/2006 à 14:41


Salut,

Il me semble (mais j\'en suis pas sûr) qu\'on ne peut pas envoyer des variables d\'une page à une autre sans passer par un formulaire.
Une solution pourrie est de passer tes arguments dans l\'URL.

Exple : http://c_create.php?var1=$var1&var2=$var2 etc...

Tu les récupères ensuite avec :

$var1_recup = $_GET[\'var1\'];
$var2_recup = $_GET[\'var2\'] ;

puis tu rebalances ces variables vers http://m_create.php?var1=$var1_recup&var2=$var2_recup

Mais la taille de l\'url est limitée.

Autre solution : créer une session php et enregistrer tes variables dans la session :
cyberzoide.developpez.com/php4/faqsession/
* fredostar2
Anonyme
Envoyé le 15/12/2006 à 14:59

c\'est bon normalement c\'est moi qui fesait de la merde. et faut oublier les pass dans les adresses (déja limité a 256caracteres et apres vraiment pas sécurisé :D
merci je vous tiens au courrant.

BlueScreenJunky BlueScreenJunky
3 186 contributions
Membre depuis le 26/04/2002
Envoyé le 16/12/2006 à 17:59


Ouais, la session ça me parait une bonne solution (mieux que le $_GET en tout cas ^^), mais bon à ce niveau la je crois que c\'est toute la structure du site qui est bancale :-P

Bon courage en tout cas.
* fredostar2
Anonyme
Envoyé le 16/12/2006 à 22:04

non non tinkiete pas c le but que ca soit pas bancale. loin de la d\'ailleur. non c juste que c\'est beaucoup plus complexe que ca en fait :D je commence a en avoir marre des fonctions... FI

Discussion trop ancienne

Cette discussion a été automatiquement fermée car elle n'a plus reçue de nouveau message depuis trop longtemps.

Nous vous suggérons de créer un nouveau message

« Retour sur la liste des messages de ce forum