Bonjour,
Me (re)voilà perdu dans la jungle du PHP.
Mon problème d'aujourd'hui est le suivant. J'aimerai que lorsque que quelqu'un rempli un de mes formulaires et qu'il clique sur Envoyer, les résultats de ce formulaire me soient envoyés par mail.
Pour l'instant j'ai réussis à faire quelque chose.
D'abord la page HTML avec le formulaire.
Code :
<form action="go.php" method="post">
<p>Prenom :
<input type="text" name="prenom" /></p>
<p>Nom :
<input type="text" name="nom /></p>
<p><input type="submit" value="envoyer le formulaire" /></p>
Et le problème c'est que tout ça, ça ne marche qu'a moitié.
Ca m'envois mon mail tout bien, mais au lieu de me mettre le nom et le prénom du visiteur, j'ai à la place "$prenom" et "$nom".
Donc je demande votre aide. Merci d'avance.
Message édité par laponies le 24-08-2006 à 09:55:00
Pour que ce soit plus facile, je te conseil de nommer les variables avec des nom facile afin de ne pas te perdre dans la relecture du code, et meme pour les autres.
Exemple concret, plutot que de mettre $login pour prenom et $pass pour nom, pourquoi ne met tu pas $prenom et $nom ?
Maintenant je me demandais si c'était possible que la page HTML avec le formulaire envois des infos à 2 pages en même temps. Donc que ça donne quelque chose comme ça:
Code :
<form action="go.php && go2.php" method="post">
<p>Prenom :
<input type="text" name="prenom" /></p>
<p>Nom :
<input type="text" name="nom /></p>
<p><input type="submit" value="envoyer le formulaire" /></p>
</form>
Mais bien sûr cette technique-la, ne marche pas. Ainsi que si je mets une virgule.
Merci d'avance.
Message édité par laponies le 24-08-2006 à 10:00:23
Oh misère....
1. Apprend le php et le html stp.
2. Qu'est-ce-qu'il y a de si important dans go2.php que tu ne puisse pas le mettre dans go.php ?
3. définit/utilise des fontions et/ou des classes php -> manuel php > fonctions/classes
Excuse-moi, je reformule :
- tu n'as pas besoins normalement de rediriger ton formulaire si ton code php est bien agencé, et respect des règles simple de bonne pratique de la programmation.
- je te conseil de te renseigner sur le mot clé fonction en php. il peut surement t'aider.
ps :
en 1, je constatais juste que tu essayais la programmation par tatonnement et pas en te référent qu manuel php.
en 2, je te demandais ce qu'il y avait dans go2.php, ou le but de rediriger vers 2 pages.
en 3, je te conseiller de nettoyer ton code et d'utiliser des classes et des fonctions.
Amicalement
Les formules de politesses d'usages
tout ca tout ca...
Excuse-moi, je reformule :
- tu n'as pas besoins normalement de rediriger ton formulaire si ton code php est bien agencé, et respect des règles simple de bonne pratique de la programmation.
- je te conseil de te renseigner sur le mot clé fonction en php. il peut surement t'aider.
ps :
en 1, je constatais juste que tu essayais la programmation par tatonnement et pas en te référent qu manuel php.
en 2, je te demandais ce qu'il y avait dans go2.php, ou le but de rediriger vers 2 pages.
en 3, je te conseiller de nettoyer ton code et d'utiliser des classes et des fonctions.
Amicalement
Les formules de politesses d'usages
tout ca tout ca...
Merci pour ta réponse et merci pour le fait que tu ai pris la peine de te reprendre.
Concernant mes méthodes de travaille, j'ai toujours tatonné et je n'ai jamais acheté ou lu de livre concernant la création Web. Et aujourd'hui j'arrive à faire des sites que l'on pourrai nommé de semi-professionnels. Mais là où tu as raison, c'est que aujourd'hui, où je franchis la porte du PHP j'aurai peut-être besoin d'apprendre les B-A-BAs.
Maintenant pour go & go2, je cherche à envoyé des informations à ces 2 pages mais ce qu'il faut comprendre c'est que ce ne sont pas les même informations. Je voudrais, par exemple, utiliser "prenom" sur go.php et "nom" sur go2.php.
Mais ce que je pense faire, c'est séparé ce formulaire en deux.
Sur ma page HTML du début mettre un formulaire avec le prénom qui envois cet info à go.php et sur ce même go.php: un deuxième formulaire avec le nom, qui envoi les info à go2.php
En tous cas, merci pour vous deux: Vinz42 & Daniel Costa.
Et pour finir, un autre problème, parce qu'une bonne nouvelle n'arrive jamais seule.
Serait-il possible que lorsque l'on clique sur "Submit" à la fin d'un formulairen on ne soit pas automatiquement redirectionné vers la page php ?
Mais ce que je pense faire, c'est séparé ce formulaire en deux.
Sur ma page HTML du début mettre un formulaire avec le prénom qui envois cet info à go.php et sur ce même go.php: un deuxième formulaire avec le nom, qui envoi les info à go2.php
Pour faire ça, tu auras besoin de javascript du genre "form.submit" (recherche la syntaxe exacte sur google).
Mais ce n'est pas la solution optimale.
Je persiste en disant de faire de la facon suivante :
- Créer un fichier tools.php
- écris des fonctions génériques
- appel ces fonctions à partir du fichier go.php.
Nan, en faite ce que je voudrais c'est que je reste sur la même page après avoir cliqué sur Go!.
Et si j'ai bien compris ce que tu me propose c'est de changer le lien de la page php qui interpretra les données.
Et puis je n'utilise pas "<form action="go.php">"
J'utilise "<form name="data" method="post" action="go.php">"
Je ne sais pas si ça change quelque chose, mais je trouve ça plus joli !
Message édité par laponies le 25-08-2006 à 10:59:42
Ou sinon, je sais pas si c'est très cool mais ça a le mérite de fonctionner...
Tu met <form method="post" action="tonformulaire.php">
<balise>etc etc...
<input type="submit" name="envoi" value="Enregistrer"/></form>
Et dans ce même formulaire, tu met tout en haut de ta page une tite balise PHP
<?php if(isset($_POST['envoi'])&&$_POST['envoi']=="Enregistrer" ){
éxécution du reste du code de traitement des info du formulaire
}?>
Avantage: ça fait ce que tu veux
Inconvénient: Si tu laisse le code comme ça, les variable POST ne seront pas détruite immédiatement ce qui inclu la variable $_POST['envoi']...Ceci peut créer un problème si ton code gère une BDD (ou des mail) car si on appui sur F5 (Actualiser la page), $_POST['envoi'] sera encore défini donc le code sera rééxécuté :s...Pour parer a ça, tu met le traitement PHP tout en haut de la page (avant <head></head> et autre balise HTML) et avant la fin du PHP tu rajoute les lignes suivante :
unset($_POST['envoi']);//Détruit la variale $_POST['envoi']
header('location:tonformulaire.php');//Redirige instantanément vers le meme formulaire
euh il me semble qu'il y ait un probleme juste en relisant le dernier post, car il me semble avoir lu que la fonction header('') ne peut pas etre dans du code html sinon ça redirige pas
genre :
Code :
<html>
<head>
<head>
<body>
<?php header('Location: index.php'); ?>
</body>
mais bon rester a tester j'ai lui ça il me semble mais je suis pas 100% sur
Non...La fonction header comme la fonction de gestion des cookies doit etre placée avant toute balise HTML....Mais rien ne t'empeche de mettre du HTML après la fonction header....C'est aussi pour ça que je disais de déplacer le bloc de traitement PHP tout en haut de la page avant même les balise <head></head> et cie...Après ceci n'est valable QUE pour la fonction de redirection...Mais si on prend le header dans la génération d'une Image avec LibGD2 (par exemple), jusque là il m'a même été impossible de rajouter d'autre instruction PHP autre que celle qui gèrent l'image actuelle (par exemple des requete SQL pour dessiner a partir d'un contenu de données d'une base)
Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois. Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.