2 actions :-(

Signaler
Messages postés
1732
Date d'inscription
jeudi 17 juin 2004
Statut
Membre
Dernière intervention
9 mars 2015
-
Messages postés
77
Date d'inscription
vendredi 24 janvier 2003
Statut
Membre
Dernière intervention
19 juin 2006
-
Salut
voila j'ai un problème
j'ai crée un formulaire
puis ajouter un code pour vérifier que les champs soit rempli correctement
masi le problème est que ce code utilise une "action" dans le formulaire lorsque l'on clic sur "envoyer" jusque la vous me diré "et alors ?"
oui mais j'ai déja une "action" d'utiliser pour se rendre sur une autre page php qui envoi les info du formulaire par mail.
je ne sais dont pas comment faire.
Pour info voiçi le début de mon formulaire avec avant et après la méthode pour vérifier les champs :

<?
if($_POST['submit']=='Envoyer')
{
if(empty($_POST['email']))
{ echo "Vous devez specifier votre Adresse Email
"; }
if(empty($_POST['nom']))
{ echo "Vous devez specifier votre Nom
"; }
if(empty($_POST['prenom']))
{ echo "Vous devez specifier votre Prénom
"; }
if(empty($_POST['adresse']))
{ echo "Vous devez specifier vore Adresse
"; }
if(empty($_POST['ville']))
{ echo "Vous devez specifier votre Ville
"; }
if(empty($_POST['postal']))
{ echo "Vous devez specifier Votre code postal
"; }
}
?>

//juste çi dessous c'est la premièr ligne de mon formulaire, je ne met pas le reste sa serai trop long

<form vname="FormName" action="formmail.php" method="post" enctype="multipart/form-data" name="form" action="<?=$_SERVER['PHP_SELF']?>">

//maintenant la deuxième partie du code pour vérifier les champs :

<?
if($_POST['submit']=='Envoyer')
{
if(empty($_POST['pseudo']))
{exit();}

if (empty($_POST['email']))
{exit();;}
else
{
$requete ='INSERT INTO `table` (email, nom, prenom, adresse, ville, postal) VALUES ("", "'.$_POST['email'].'", "'.$_POST['nom'].'","'.$_POST['prenom'].'","'.$_POST['adresse'].'","'.$_POST['ville'].'","'.$_POST['postal'].'"");';
echo 'Remplissez les champs obligatoire
'.$requete;

/*
mysql_query ($requete);
mysql_close() ;
*/
}
}
?>

voila y en a t'il qui peuvent m'aider ?

8-) Bl@cknight91Titi :-p

17 réponses

Messages postés
1662
Date d'inscription
lundi 16 septembre 2002
Statut
Membre
Dernière intervention
30 juillet 2008
1
fais el tout sur la même page à la place c'Est beaucoup plus simple... sinon utilise header()

Bonus
on écrit now <?php et non <?
et <?php echo et non <?=
voir http://www.phpcs.com/code.aspx?ID=24870

PHP Guru
Écoutez les conseils d'un vieux sage ! Ils sont souvent très utiles.
http://www.lookstrike.com
Messages postés
1732
Date d'inscription
jeudi 17 juin 2004
Statut
Membre
Dernière intervention
9 mars 2015
2
Tout sur la même page ?
je voit pas comment je pourai faire sa. j'essaierai
sinon "Header()" ?
c'est quoi ? peut tu m'en dire davantage stp
merci d'avance

a+
8-) Bl@cknight91Titi :-p
Messages postés
1732
Date d'inscription
jeudi 17 juin 2004
Statut
Membre
Dernière intervention
9 mars 2015
2
j'ai mi sa a la place de ma première ligne de formulaire (j'ai chercher un peu pour le header() ) :

<form vname="FormName" method="post" enctype="multipart/form-data" header('Location: formmail.php') name="form" action="<?=$_SERVER['PHP_SELF']?>">

je ne pense pas que se soit bon; a koi sert "header" ? a koi est ce que sa correspond ?
je ne sais pas du tout ou le mettre ni a qu'oi cela sert.. :-|
merci de m'aider :)

arigato gosaimasu

8-) Bl@cknight91Titi :-p
Messages postés
77
Date d'inscription
vendredi 24 janvier 2003
Statut
Membre
Dernière intervention
19 juin 2006
1
Salut, si j'ai bien compris...
alors, tu prend ton formulaire
<form action="verification.php" method="post">
ok?
Tu prend ton verification.php qui fait la verification du formulaire
et a la fin tu met a l'endroit ou le formulaire est bien rempli et tt :
include("tondeuxiemmefichier.php");

voila, je sais pas si c'est juste, je sais pas si c 'est ce que tu attend, mais bon..

@+
Messages postés
1732
Date d'inscription
jeudi 17 juin 2004
Statut
Membre
Dernière intervention
9 mars 2015
2
euuuuu je croit pas avoir très bien compris.
le problème est que mon code pour vérifier que les champs soit bien remplis est séparer en deux; une partie au dessus du formulaire et l'autre partie en dessous.
sa si j'ai bien suivit je n'ai pas besoin d'y toucher c'est sa ?
mais le
include("form.php");
ou d'oi-je le mettre sur ma deuxième page.
De plus si je met sa il va revenir a la page du formulaire et s'arété la
il faudrai mettre une condition sur l'autre page pour dire que si les champs sont vide alors qu'il revienne a lapage du formulaire et marque que les champs sont vident.
Mais sa je ne sais pas comment faire.

n'y a t'il a pa un autre moyen pour dire que lorsque l'on clic sur envoyer il vérifie les champs et aussi qu'il aille sur l'autre page si les champs du formulaire sont correct ?

8-) Bl@cknight91Titi :-p
Messages postés
77
Date d'inscription
vendredi 24 janvier 2003
Statut
Membre
Dernière intervention
19 juin 2006
1
ok, je vais peut etre te donner un exemple.

on va par exemple prendre un code qui affiche bonjour pseudo.

donc tu a formulaire.htm qui contient:
<html>
<form method="post" action="verif.php">
Pseudo :

</form>
</html>

voila apres tu a un fichier verif.php qui contient:
<html>
<?php
$pseudo=$_POST['pseudo'];
if(!$pseudo)
{
print("Veuillez entrer un pseudo");
include("formulaire.htm");
}
else
{
print($pseudo);
}
?>
</html>

donc tu peu faire la verification (le if) et les actions (print($pseudo) ) dans le meme fichier.

je ne sait pas si tu comprend bien...
Messages postés
77
Date d'inscription
vendredi 24 janvier 2003
Statut
Membre
Dernière intervention
19 juin 2006
1
ou pour ton code (dsl du flood)

<form vname="FormName" action="formmail.php" method="post" enctype="multipart/form-data">

avec formmail.php:

<html>
<?
i=0;
if(empty($_POST['email']))
{
echo "Vous devez specifier votre Adresse Email
";
i=1;
}
if(empty($_POST['nom']))
{
echo "Vous devez specifier votre Nom
";
i=1;
}
if(empty($_POST['prenom']))
{
echo "Vous devez specifier votre Prénom
";
i=1;
}
if(empty($_POST['adresse']))
{
echo "Vous devez specifier vore Adresse
";
i=1;
}
if(empty($_POST['ville']))
{
echo "Vous devez specifier votre Ville
";
i=1;
}
if(empty($_POST['postal']))
{
echo "Vous devez specifier Votre code postal
";
i=1;
}
if(empty($_POST['pseudo']))
{
echo "Vous devez specifier votre pseudo.
";
i=1;
}
if(i == 0)
{
$requete ='INSERT INTO `table` (email, nom, prenom, adresse, ville, postal) VALUES ("", "'.$_POST['email'].'", "'.$_POST['nom'].'","'.$_POST['prenom'].'","'.$_POST['adresse'].'","'.$_POST['ville'].'","'.$_POST['postal'].'"");';
/*
mysql_query ($requete);
mysql_close() ;
*/
}
?>
</html>

voila, donc le i c juste pour savoir si il y a des erreurs (je maitrise pas tellement le else) ...
c'est pas trop clair mais je croix que sa devrait marcher...

:p @+
Messages postés
1732
Date d'inscription
jeudi 17 juin 2004
Statut
Membre
Dernière intervention
9 mars 2015
2
mmmm
comment dire....
sa ne vas pas
enfait voila mon fromualire et son but pour que tu comprenne mieu :
il y a deux page pour l'instant :
la première : elle continent le formulaire + la vérification des champs
la deuxième : elle contient un code pour envoyer les informations noté dans les champs par mail sur mon adresse email.
Le problème est que la vérification des champs poru qu'elle s'effectue doit être dans l'action du formulaire, or l'action pour envoyer les info du formulaire sur la page qui envoi le mail prend une action du formulaire donc la vérification des champs ne peut se faire puisque il faut utiliser une action du formulaire. On ne peut mettre de fois "action"
sinon sa aurai été facile mais la on ne peu pa
alors peut être qu'avec la méthode que tu di
lorsque l'on cliquera sur envoyer sa éxécuter une autre page qui vérifira les champs du formulaire puis si la vérificatino est bonne (que les champs sont bien rempli) alors sa éxécutera une autre page qui enverra les information du formulaire par mail.
Si les champs ne sont pas rempli alors la page du formulaire reviendra avec marqué dessus les chamsp non rempli

je ne sais pa si tu comprend
voi tu ce que j'aimerai faire ?
j'ai travaillé toute la journée dessus sans résultat :(

8-) Bl@cknight91Titi :-p
Messages postés
77
Date d'inscription
vendredi 24 janvier 2003
Statut
Membre
Dernière intervention
19 juin 2006
1
rebonjour,

pourquoi veut tu a tout prix avoir 2 fonctions,1 qui verifie et 1 qui effectu , tu peu tout mettre en une fonction..
donc tu met la verification du formulaire dans la 2° page et no problemo
ou alors tu apel la verification avec le formulaire, et a la fin de la verification tu apelle ton action..
Messages postés
1732
Date d'inscription
jeudi 17 juin 2004
Statut
Membre
Dernière intervention
9 mars 2015
2
mm oki
alors comment faire pour revenir a la page du formulaire en gardant les info des champs si tt les champs ne sont pas rempli
(pour le cas ou je met le code sur la deuxième page)
je ne connai pa la fonction pour revenir au formulaire
et si je crée une autre page je ne connai pa la fonction pour revenir sur la 1ère page ni celle pour aller a la 3e

je suis un débutant la dedans même si j'adore programer et que j'essai de tout
pourai u m'indiquer le code pour la première sugestion (metre le code de vérification dans la 2ème page) sa sera plus simple

merci d'avance

8-) Bl@cknight91Titi :-p
Messages postés
1732
Date d'inscription
jeudi 17 juin 2004
Statut
Membre
Dernière intervention
9 mars 2015
2
que me propose tu pour que sa marche ?

8-) Bl@cknight91Titi :-p
Messages postés
77
Date d'inscription
vendredi 24 janvier 2003
Statut
Membre
Dernière intervention
19 juin 2006
1
Bon je vien de mettre au point un script qui peut convenir, tu n'a juste qu'a ajouter des variables pour ton formulaire mais si tu suit l'exemple, aucun pb apparent
EN PLUS, 1 SEULE PAGE!!!!!

donc vala le code

<html>
<head>
<title>Bonjour</title>
</head>

<?php
$name = "";
$pass = "";
//recuperation du formulaire.
if (isset($_POST["name"])) $name = $_POST["name"];
if (isset($_POST["password"])) $pass = $_POST["password"];
//recuperation de l'action.
if (!isset($_GET["to"])) $to = "new";
else $to = $_GET["to"];
//nouveau formulaire.
if ($to == "new")
{
?>
<form action="action.php?to=try" method="post" name="form" id="form">

">

">

</form>
<?php
}
elseif ($to == "try")
{
if ($name != "" && $pass != "")
{
//ici les actions
print("Bonjour, ".$name.", ton mot de pass est $pass .");
}
else
{
//erreur
?>
Erreur!
<form action="action.php?to=try" method="post" name="form" id="form">

">

">

</form>
<?php
}
}
?>

</html>

dsl du retard mais c long a coder... :p
Messages postés
1732
Date d'inscription
jeudi 17 juin 2004
Statut
Membre
Dernière intervention
9 mars 2015
2
euuu
le code ne marche pas
je veu dire
la vérificaion de champs de marche pas
j'ai relié cette page a formmail.php pour que il envoi le mail
mais la vérification de mail ne marche pas :

Va voir içi

merci beacoup pour le code :-)
8-) Bl@cknight91Titi :-p
Messages postés
1732
Date d'inscription
jeudi 17 juin 2004
Statut
Membre
Dernière intervention
9 mars 2015
2
et aussi
je n'ai pas besoin de mettre de mot de passe dans mon formulaire enfin j'essaierai de trouver ce qu'il n'y as pas besoin

8-) Bl@cknight91Titi :-p
Messages postés
77
Date d'inscription
vendredi 24 janvier 2003
Statut
Membre
Dernière intervention
19 juin 2006
1
Tu as modifié mon code, tu a mit 2 pages au lieu de une, et au mauvais endroit (je n'ai pas acces a ton code, il est interprété coté serveur...) je te passe mon code et ce que sa fait (le code est commenté pour savoir où modifier pour rajouter des valeures de formulaire etc...

ici le code
ici la page

donc si tu suit les commentaire (il y a environ 5 lignes a rajouter par input de formulaire (1 pour le formulaire lui-meme , 1 pour le formulaire en cas d'erreur, 2 pour recuperer les eventuelles valeurs, et 1 pour verifier si le champ est vide...))
sa devrait bien se passer...

bon @+
et msn-moi si ya pb
marvin_rouge@hotmail.com
Messages postés
1732
Date d'inscription
jeudi 17 juin 2004
Statut
Membre
Dernière intervention
9 mars 2015
2
non je n'ai fait qu'une page l'autre c'est pour envoyer le mail

8-) Bl@cknight91Titi :-p
Messages postés
77
Date d'inscription
vendredi 24 janvier 2003
Statut
Membre
Dernière intervention
19 juin 2006
1
Pas besoin, tu n'as juste qu'a appeller ta fonction mail dans la page (je vien de reparer le pb sur mon ftp...).

ATTENTION, il ne faut pas modifier la ou les commentaires ne le disent pas.