Checkbox de validation.

Eléphant du PHP | 119 Messages

17 mai 2006, 09:39

Bonjour,

j'ai un petit probleme lorsque l'utilisateur doit valider le reglement avec une case a cocher.

en fait je voudrais qu'il doive cocher la case pour passer a la page inscription2.php

Code : Tout sélectionner

<form method="post" action="index.php?page=inscription2"> <input type="checkbox" name="reglement"> J'ai lu et j'accepte le règlement<br /><br /> <input type="image" class="nobordure" name="img" src="Templates/Images/jpg/valider.jpg" alt="valider"> </form> <?php if (!isset($_POST['reglement'])) { echo 'Vous devez accepter le reglement pour continuer!'; } ?>
le probleme vient que lorsque je charge la page inscription1.php il m'affiche le message d'erreur comme quoi il faut valider.

Mais surtout il passe a la page 2 meme si la case n'est pas cochée.

Si quelqu'un avait une reponse pour moi

je vous remercie d'avance

Cordialement Cédric Daniel

JS
Invité n'ayant pas de compte PHPfrance

17 mai 2006, 09:54

Salut!
esceque :

Code : Tout sélectionner

<form method="post" action="index.php?page=inscription2"> <input type="checkbox" name="reglement"> J'ai lu et j'accepte le règlement<br /><br /> <input type="image" class="nobordure" name="img" src="Templates/Images/jpg/valider.jpg" alt="valider"> </form>
et
   <?php 
      if (!isset($_POST['reglement'])) { 
      echo 'Vous devez accepter le reglement pour continuer!'; } 
   ?>
sont sur la même page?
Parce que si oui c normale qu'il t'affiche le message car lors du 1er chargement de la page $_POST['reglement'] n'est pas defini.

Eléphant du PHP | 119 Messages

17 mai 2006, 09:56

oui ils sont sur la meme page.

mais ce qu'il me gene surtout c'est le fait que l'utilisateur passe a la page2 meme s'il a pas coché la case.

Avatar du membre
ViPHP
ViPHP | 3008 Messages

17 mai 2006, 10:05

Tu peux faire quelque chose comme ça !

Page formulaire :
<form method="post" action="valid1.php">
<input type="checkbox" name="reglement">J'ai lu et j'accepte le règlement<br /><br />       
<input type="Submit" value="go" name="go"> 
</form> 
    
<?php
if (isset($erreur)) { 
echo 'Vous devez accepter le reglement pour continuer!'; }
?>
Page valid1.php :
<?php
if(isset($_POST['go']) && $_POST['go']=="go")
{
	if (!isset($_POST['reglement'])) { 
	echo '<script type="text/javascript">window.location.href("valid.php?erreur");</script>';
	}
}
?>
valid 1 ok

JS
Invité n'ayant pas de compte PHPfrance

17 mai 2006, 10:06

Oki
Bon moi verai un truc comme ça :
<?php 
      if (!isset($_POST['reglement']) && isset($page)) { 
      echo 'Vous devez accepter le reglement pour continuer!'; 
      exit;} 
   ?>

ou:
<?php 
      if (!isset($_POST['reglement']) && isset($page) && $page !='inscription1') { 
      $erreur_regl =  'Vous devez accepter le reglement pour continuer!'; 
      header("location:index.php?page=inscription1&erreur_regl=$erreur_regl);
      exit;} 
   ?>

et :
<form method="post" action="index.php?page=inscription2"> 
         <input type="checkbox" name="reglement"> 
         J'ai lu et j'accepte le règlement<br /><br />        
         <input type="image"  class="nobordure" name="img" src="Templates/Images/jpg/valider.jpg" alt="valider"> 
      </form> 
if (isset($_REQUEST['erreur_regl'])) echo $_REQUEST['erreur_regl'];
Mais je me prend peut etre la tete lol!

Eléphant du PHP | 119 Messages

17 mai 2006, 10:16

j'ai essayé la solution de charabia mais que la case soit cochée ou non il passe a la page valid1.php et marque valid ok.

j'espere qu'on arrivera a trouver une solution

mais en tout cas je vous remercie tous d'essayer de m'aider :):)

Avatar du membre
ViPHP
ViPHP | 3008 Messages

17 mai 2006, 10:28

Heu...j'ai essayé ça fonctionne bien chez moi. C'est que tu n'as pas activé la javascript dans ce cas. Faut faire la redirection en php si c'est le cas.
<form method="post" action="valid1.php">
<input type="checkbox" name="reglement">J'ai lu et j'accepte le règlement<br /><br />       
<input type="Submit" value="go" name="go"> 
</form> 
    
<?php
if (isset($erreur)) { 
echo 'Vous devez accepter le reglement pour continuer!'; }
?>
<?php
if(isset($_POST['go']) && $_POST['go']=="go")
{
	if (!isset($_POST['reglement'])) { 
	header("location:valid.php?erreur");
	exit;}
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
	<title>Untitled</title>
</head>

<body>

pahe ok


</body>
</html>

Eléphant du PHP | 119 Messages

17 mai 2006, 10:39

il me met ca par contre quand je coche pas la case:

Warning: Cannot modify header information - headers already sent by (output started at D:\wamp5\www\Dcp\index.php:12) in D:\wamp5\www\Dcp\valid1.php on line 5

Avatar du membre
ViPHP
ViPHP | 3008 Messages

17 mai 2006, 10:41

S'il te met ça c'est que tu as quelque chose avant
<?php 
if(isset($_POST['go']) && $_POST['go']=="go") 
{ 
    if (!isset($_POST['reglement'])) { 
    header("location:valid.php?erreur"); 
    exit;} 
} 
?>
Même un tit espace peut générer cette erreur. Efface vraiment tout ce qu'il y a en haut de ta page avant de coller ce code.

Eléphant du PHP | 119 Messages

17 mai 2006, 10:46

non j'ai rien devant.
mais ca vient peut etre du fait que j'utilise des pseudo frame.

Non ???

:oops: :oops:

Avatar du membre
ViPHP
ViPHP | 3008 Messages

17 mai 2006, 10:49

voui c'est là le problème. Si tu utilises des pseudos frames, tu as forcément un autre code avant...qui ne se trouve pas sur la page sur laquelle tu as la redirection.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

17 mai 2006, 10:52

Où se fait le traitement des données de ton formulaire exactement ? sur la page du formulaire ou sur la page inscription2 ?

En fait lorsque tu soumets le formulaire, tu demandes l'ouverture de la page inscription2 à ta pseudo frame, c'est donc elle qui doit gérer les données, l'affichage éventuel des messages d'erreur et le retour au formulaire... comme tu es en pseudo frame, tu ne peux à priori pas utiliser la fonction header dans tes pages/frame puisqu'il y a déjà eu du code html affiché...

Avatar du membre
ViPHP
ViPHP | 3008 Messages

17 mai 2006, 10:54

Il ta faudra utiliser la redirection javascript ou avec les méta je pense.

Eléphant du PHP | 119 Messages

17 mai 2006, 10:54

mon formulaire de la page inscription1.php est juste une case a cocher comme quoi on valide le reglement du site.

donc le traitement se fait sur la page inscription1.php

voili voilou

Eléphant du PHP | 119 Messages

17 mai 2006, 10:56

oui je pense me mettre au javascript.

Je vous remercie a tous pour votre aide et votre soutien.

Au plaisir.

Cédric Daniel :)