Vous n'êtes pas identifié(e).
formulaire html : alimenter une base et recevoir un mail en retour
Voilà ! tout est dit !
[[[je poste ici car je n'ai pas trouve d'autre formulaire de depot de ma demande que ici. Mes excuses si ce n'est pas le bon endroit !]]]
Voici ma question :
Sujet : form, action, base, table, mail ... ça ne marche pas !
// Bonjour
je me suis mise au PHP et SQL - et je suis totalement autodidacte - parce que j'ai besoin de realiser une page html de formulaires : textarea, checkbox, radio, annuler/valider, et besoin d'utiliser ensuite les valeurs qui seront entrées par les utilisateurs dans les formulaires. Et j'ai continué parce que cela m'interesse.
J'ai un serveur virtuel Simple Hosting chez GANDI. Apache 2.4.1 (Unix), PHP 5.3.10-2, et PhpMyAdmin3.5.2.1, sur lequel j'ai cree une base de données, BASEXXX et une table, TABLEXXX.
J'ai cree la base avec la fonction proposée par PhpMyAdmin, mais j'ai ecrit moi-meme la requete pour creer la table, juste du 1er coup (du moins le serveur l'a acceptee sans aucun message d'erreur), meme si j'ai quelques doutes sur les attributs que j'ai donnés aux colonnes (attention ! ce n'est pas la meme chose que les attributs donnes aux champs ! hou la la !)... On verra à l'usage !
Voilà ma question :
J'ai besoin de :
1°) Récuperer les valeurs deposées par les utilisateurs dans les formulaires.
2°) Les inserer et les stocker dans la table de la base de données.
3°) Afficher au visiteur, apres qu'il ait envoyé ses données, un ecran qui les lui rappelle et le remercie.
4°) Lui envoyer un email pour lui dire la même chose.
5°) M'envoyer un email à moi-meme pour que je sois prevenue du passage sur le site de l'utilisateur et pour que je recupere les données qu'il a laissées afin de les traiter.
J'ai beaucoup, beaucoup travaillé, depuis je n'ose dire, plusieurs mois, car je suis partie de zero, plusieurs cahiers, papier crayon, face à l'ecran bien sur, sur les forum (le votre !), les tutos, etc ..., mais je n'y arrive pas. Et c'est la premiere fois que je vais sur un forum.
J'utilise notepad++.
J'ai établi le script que je vous envoie.
Il ne marche pas (points 1°, 2°, et 3°).
(je n'ai pas encore cherche à faire fonctionner les points ci-dessus 4° et 5° - envoi des emails - puisque la table n'est pas alimentée et est vide)
Avec ce script, j'obtient tout simplement une page blanche, totalement vide, et si je regarde sur le serveur, le serveur n'a aucune trace de mon passage.
1.Pourtant 1, je pense que cote serveur sur la base de données, c'est clean.
2.Pourtant 2, le script marche quand je ne mets que le seul script de connexion à la base. A moins que ce ne soit seulement un retour de "echo" qui se contente de m'afficher que je suis connectee alors que je ne le suis pas ?
Comment savoir : Je pense que c'est cela, parce que je n'ai pas de message d'erreur, et si j'etais passee par la base sur le serveur, j'aurais un message d'erreur, et le serveur en aurait trace.
3.Le fait que la page d'apres traitement php s'affiche me dit sans doute que l'adresse que j'ai mise pour le fichier de traitement php est bonne : <form action="../php/test.php" method="post">
Pour trouver le probleme, je me suis donc concentree sur la connexion (CONNECT), la selection (SELECT), et l'insertion (INSERT). ET j'ai cru qu'en etant methodique, j'allais y arriver.
Mais je n'ai pas reussi à trouver l'(es) erreur(s), ou ce qui manque.
Pouvez-vous m'aider, me donner une piste, ou carrement me dire la solution, car je suis epuisee maintenant et en plus cela m'aiderait de trouver vite !
Je vous remercie !
A part cela, j'ai aussi deux autres preoccupations :
1 ere question : je ne voudrais pas que le visiteur soit obligé de remplir tous les champs du formulaire. Je l'ai fait comme ça parce que je n'ai trouve que des scripts avec champs obligatoires expliques dans les tutos, mais je voudrais que certains champs soient obligatoires et d'autres pas : est-ce que je peux supprimer les isset et les empty des champs que le visiteur peut ne pas compléter. Je suppose que oui, mais j'hesite.
2 eme question : Il y aura trois types d'utilisateurs : A,B, et C.
En fait, je voudrais que "action" (dans <form action="../php/test.php" method="post">) dans la page de formulaire ( qui est aussi ma page d'accueil index.html), ait une condition qui dispatche les utilisateurs vers 3 pages differentes , tout en conservant les données dejà entrees par l'utilisateur.
Trois pages spécifique a chaque categorie d'utilisateurs: indexA.html, indexB.html, et indexC.html, qui auraient chacune, a leur tour, une "action" (dans leur propre code <form action="../php/test.php" method="post"> ), et que l'utilisateur validerait.
En fait l'ideal, ce serait que l'utilisateur ne s'aperçoive pas qu'il a change de page, de index. html vers indexA.html (s'il est utilisateur A par exemple).
Donc cette deuxieme question, c'est :<form action="../php/test.php" method="post">)
- Comment ajouter une condition à trois choix( j'insiste : trois ! : A,B, et C),
à l'instruction action ="../php/test.php" dans <form action="../php/test.php" method="post">)
- Comment conserver les données dejà entrées dans les formulaires de la page par l'utilisateur.
Ensuite, évidemment, il y aura le retour depuis le serveur des infos par email à l'utilisateur, et à moi.
Qu'en pensez-vous ?
Cela est-il possible ?
Vais-je y arriver ?
Mes explications sont elles utilisables !
Hum ! Hum !
Merci a tous !
a bientot
jnspev
//code sur la page index.html
<form action="../php/test.php" method="post">
// demande
<textarea type="VARCHAR" name="demande" cols="52" rows="6">demande</textarea>
// accord
<input name="accord" value="OUI" type="CHECKBOX"> OUI</font>
<input name="accord" value="NON" type="CHECKBOX"> NON</font>
// etat civil
<input size="40" name="nom" type="VARCHAR">nom
<input size="40" name="prenom" type="VARCHAR">prenom
// code
<input name="code_A" value="20" type="radio">A
<input name="code_B" value="50" type="radio">B
<input name="code_C" value="100" type="radio">C
duree
<input name="duree" value="10" type="radio">10
<input name="duree" value="20" type="radio">20
<input name="duree" value="50" type="radio">50
<input name="duree" value="100" type="radio">100
event
<input name="event" value="OUI" type="CHECKBOX">OUI
<input name="event" value="NON" type="CHECKBOX">NON
validation
<input type="submit" value="VALIDER">
<input type="reset" value="ANNULER">
code sur la page test.php :
<?php
// On commence par récupérer les champs
if(isset($_POST['creation_date'])) $creation_date=$_POST['creation_date'];
else $creation_date="";
if(isset($_POST['date'])) $date=$_POST['date'];
else $date="";
if(isset($_POST['update_date'])) $update_date=$_POST['update_date'];
else $update_date="";
if(isset($_POST['demande'])) $demande=$_POST['demande'];
else $demande="";
if(isset($_POST['accord'])) $accord=$_POST['accord'];
else $accord="";
if(isset($_POST['nom'])) $nom=$_POST['nom'];
else $nom="";
if(isset($_POST['prenom'])) $prenom=$_POST['prenom'];
else $prenom="";
if(isset($_POST['code_A'])) $code_A=$_POST['code_A'];
else $code_A="";
if(isset($_POST['code_B'])) $code_B=$_POST['code_B'];
else $code_B="";
if(isset($_POST['code_C'])) $code_C=$_POST['code_C'];
else $code_C="";
if(isset($_POST['adresse'])) $adresse=$_POST['adresse'];
else $adresse="";
if(isset($_POST['codepostal'])) $codepostal=$_POST['codepostal'];
else $codepostal="";
if(isset($_POST['ville'])) $ville=$_POST['ville'];
else $ville="";
if(isset($_POST['telephone'])) $telephone=$_POST['telephone'];
else $telephone="";
if(isset($_POST['telephone_p'])) $telephone_p=$_POST['telephone_p'];
else $telephone_p="";
if(isset($_POST['email'])) $email=$_POST['email'];
else $email="";
if(isset($_POST['siret'])) $siret=$_POST['siret'];
else $siret="";
if(isset($_POST['duree'])) $duree=$_POST['duree'];
else $duree="";
if(isset($_POST['event'])) $event=$_POST['event'];
else event="";
// On vérifie si les champs sont vides
if(empty($creation_date) OR empty($date) OR empty($update_date) OR empty($demande) OR empty($accord) OR empty($nom) OR empty($prenom) OR empty($adresse) OR empty($codepostal) OR empty($ville) OR empty($telephone) OR empty($telephone_P) OR empty($email) OR empty($siret) OR empty($duree) OR empty($event) OR empty($code_A) OR empty($code_B)) OR empty($code_C);
{
echo '<font color="red">Vous devez remplir tous les champs !</font>';
}
// Aucun champ n'est vide, on peut enregistrer dans la table
else
{
// connexion à la base
$link = mysql_connect('localhost','root','password');
if (!$link) {
die('Could not connect to MySQL: ' . mysql_error());
}
echo 'vous etes connecte'; mysql_close($link);
// sélection de la base
mysql_select_db('bazeu',$db) or die('Erreur de selection '.mysql_error());
// on écrit la requête sql
$sql = "INSERT INTO tableue_tbl(id, creation_date, date, update_date, nom, prenom, adresse, codepostal, ville, telephone, telephone_p, email, siret, demande, accord, duree, event, code_A, code_B, code_C, VALUES('','$creation_date','$date','$update_date','$nom','$prenom','$adresse','$codepostal','$ville','$telephone','$telephone_p','$email','$siret','$demande','$accord','$duree','$event','$code_A','$code_B','$code_C')";
// on insère les informations du formulaire dans la table
mysql_query($sql);
die('Erreur SQL !'.$sql.'<br>'.mysql_error());
// on affiche le résultats pour le visiteur
echo 'Vous avez depose cette demande : <br>htmlspecialchars($_POST['demande'])';
mysql_close(); // on ferme la connexion
}
?>
Hors ligne
Je me mets une reponse a moi-meme parce que je ne sais pas si mon post est au bon endroit ou bien va etre deplace par les moderateurs
j'ai omis de dire les url de ce que j'ai dejà trouve
Poster une demande d'aide : mode d'emploi
c'est là :
forum.phpdebutant.org/viewtopic.php?id=3012
"Passage de variables d'un formulaire à l'autre"
c'est là :
http://forum.phpdebutant.org/viewtopic.php?id=852
apprendre le php
c'est là :
http://www.creation-du-web.com/honolulu … -php4.html
rendre un champ obligatoire
c'est là :
http://forum.phpdebutant.org/viewtopic.php?id=17331
transmettre des donnees avec les formulaires
c'est là :
http://www.siteduzero.com/tutoriel-3-14 … aires.html
etc etc ...
Hors ligne