Page 1 sur 2
Checkbox de validation.
Posté : 17 mai 2006, 09:39
par azerty53
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
Posté : 17 mai 2006, 09:54
par JS
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.
Posté : 17 mai 2006, 09:56
par azerty53
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.
Posté : 17 mai 2006, 10:05
par charabia
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
Posté : 17 mai 2006, 10:06
par JS
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!
Posté : 17 mai 2006, 10:16
par azerty53
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

:)
Posté : 17 mai 2006, 10:28
par charabia
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>
Posté : 17 mai 2006, 10:39
par azerty53
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
Posté : 17 mai 2006, 10:41
par charabia
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.
Posté : 17 mai 2006, 10:46
par azerty53
non j'ai rien devant.
mais ca vient peut etre du fait que j'utilise des pseudo frame.
Non ???

Posté : 17 mai 2006, 10:49
par charabia
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.
Posté : 17 mai 2006, 10:52
par Ryle
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é...
Posté : 17 mai 2006, 10:54
par charabia
Il ta faudra utiliser la redirection javascript ou avec les méta je pense.
Posté : 17 mai 2006, 10:54
par azerty53
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
Posté : 17 mai 2006, 10:56
par azerty53
oui je pense me mettre au javascript.
Je vous remercie a tous pour votre aide et votre soutien.
Au plaisir.
Cédric Daniel
