Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

Messages recommandés

Posté(e)

bonjour je suis debutant alors ne m en voulez pas si je ne suis pas clair...alors voila : j appelle dans une page un formulaire par un include , quand tout est bien rempli je fais arriver un message "merci ...blablabla" , quand certains champs ne sont pas remplis je fais apparaitre des messages d alertes via une verif par exp reg, mais je n arrive pas a revenir sur la page de mon formulaire je reviens tout le temps sur une page vide comme si pas d'include et il faut que je passe par le menu pour faire revenir le formulaire ce qui n est pas logique...bref que puis je faire

merci de m aider je bloque grave

Posté(e)

voici le code de la page appelée par le formulaire c'est la suite de cette page qui ne se passe pas bien

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" type="text/css" href="css/common.css">
<script language=JavaScript src="js/formulaire.js"></SCRIPT>
<title>formulaire php E et G</title>

</head>

	<script LANGUAGE="JavaScript">
	MM_swapImgRestore();
	MM_preloadImages();
	MM_findObj(); 
	MM_swapImage();
	function GereControle(Controleur, Controle, Masquer);
	function cacher_montrer();
	</SCRIPT>


<body onload="MM_preloadImages('images/balle_golf_rieuse2.gif')">

<!--<div id="news"><h4></h4>
<iframe src="news.htm" width="175" scrolling="no" frameborder="1"></iframe> </div>-->

<table border="0" >
 <tr>
<td id="bandeau" colspan="6"></td>
 </tr>

  <tr>
	<td  rowspan="3" valign="top" id="menu"><br /><br /><br /><br />
	<?php include "menu.html";?>
	</td>
		<td  id="sous_bandeau1"><a href="presentation.php">Présentation</a></td>
		<td  id="sous_bandeau2">Les rendez-vous</td>
		<td  id="sous_bandeau3"><a href="sponsoriser.php">Sponsoriser</a></td>
		<td  id="sous_bandeau4"><a href="liens_utiles.php">Liens utiles</a></td>
		<td  id="sous_bandeau5"><a href="mailto:xxx@yyyyy.fr?subject=Entreprendre et Golfer">Contact</a></td>
 </tr>

		  <tr>
			<td  colspan="5"  id="page">
			<blockquote>
			<?php

$nom=$_POST["nom"];
$prenom=$_POST["prenom"];
$telephone_portable=$_POST["telephone"];


//verification contenu nom
if((empty($nom)))
echo"<script type='text/javascript'> alert('Vous devez indiquer votre nom !');</script>";
else
{
echo ' ';
}

	//verification contenu prenom
	if((empty($prenom)))
	echo"<script type='text/javascript'> alert('Vous devez indiquer votre prénom !');</script>";
	else 
	{
	echo 'Bonjour  '.$prenom.' '.$nom.' , votre inscription a bien été enregistrée.';
	}


		//verification numericite telephone si champ rempli
		if((empty($telephone_portable)))
		echo '';
		else if (!is_numeric($telephone_portable))   
		{   
		echo"<script type='text/javascript'> alert('Votre numéro de téléphone n\'est pas valide !');</script>";   								}  

?></blockquote></td>

		  </tr>

			  <tr>
				<td  colspan="5"  id="pied_de_page1"><?php include'pied_de_page.html'?></td>
			 </tr>
</table>


</body>
</html>

Posté(e)

Effectivement, ta page fait afficher une alerte mais oublie de rediriger vers la page de formulaire (et je déconseille de la mettre en include au milieu de celle-ci !).

 

Pour le principe :

- une page de formulaire

- une page de vérification

- une page de remerciements

Normalement :

* la page de formulaire est capable de s'auto-remplir si l'URL ou la requête HTTP contient des données qui concernent ses champs

* la page de vérification traite les données reçues et redirige le navigateur soit vers la page de remerciements, soit vers la page de formulaire (en passant les données déjà saisies, et éventuellement un code/message d'erreur)

 

-- solution alternative --

Vérifications en JavaScript sur la page de formulaire, en interceptant le submit() du formulaire : pas besoin de page de vérification, pas besoin de redirection.

Inconvénient : ne fonctionne pas sur les navigateurs ne supportant pas le JavaScript !

Posté(e)

Dans ce genre de cas la meilleure solution c'est que le formulaire appelle la même page que celle dans laquelle il est inclu, par exemple :

disons que ta pages c'est formulaire.php et le formulaire à inclure c'est formulaire.inc.php,

 

voici un formulaire simplifié :

<form name="formulaire" METHOD="POST" ACTION="<?php echo $_SERVER["PHP_SELF"] ?>">
<!-- en utilisant $PHP_SELF tu es sûr que quelle que soit la page où tu inclus ton formulaire il appellera la même page;) -->
<input type=text name="nom" value="<?php echo @$_REQUEST["nom"] ?>">
<!-- echo @$_REQUEST["nom"] permet de récupérer les champs déjà remplis, le @ évite les messages d'erreur pour les champs qui sont vides -->
<input type=text name="prenom" value="<?php echo @$_REQUEST["prenom"] ?>">
<input type=text name="telephone_portable" value="<?php echo @$_REQUEST["telephone_portable"] ?>">
<input type="hidden" name="formulaire_sent" value="yes">
<!-- ce champ caché permet de savoir si le formulaire à déjà été posté ou si c'est le premier chargement, voir plus bas -->
</form>

 

en début de ta page formulaire.php tu place tes tests sur les champs obligatoires :

je le fais sans javascript, ça ne change rien au principe:

if(!empty($_POST["formulaire_sent"] AND $_POST["formulaire_sent"] == "yes") {
  $nom=$_POST["nom"];
  $prenom=$_POST["prenom"];
  $telephone_portable=$_POST["telephone"];

  $champs_invalides = 0; // on initialise le nombre de champs invalides

  //verification contenu nom
  if (empty($nom)) {
   echo"Vous devez indiquer votre nom !<br/>\n";
   $champs_invalides++; // on incrémente le nombre d'erreurs
  }

  //verification contenu prenom
  if (empty($prenom)) {
   echo"Vous devez indiquer votre prenom !<br/>\n";
   $champs_invalides++; // on incrémente le nombre d'erreurs
  }

  //verification contenu telephone_portable
  if (empty($telephone_portable)) {
   echo"Vous devez indiquer votre telephone_portable !<br/>\n";
   $champs_invalides++; // on incrémente le nombre d'erreurs
  }
  else if (!is_numeric($telephone_portable)) {
   echo"Votre numéro de téléphone n\'est pas valide !<br/>\n";	
   $champs_invalides++; // on incrémente le nombre d'erreurs		
  }
} 
// si il y a des erreurs ou bien si c'est le premier "passage", on inclut le formulaire								 
if($champs_invalides > 0 OR empty($_REQUEST["formulaire_sent"]))
  include("formulaire.inc.php");
else // suite du traitement

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...