prob de script

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : prob de script

par DocType » 30 sept. 2005, 16:04

Il manque une accolade de fermeture dans ton exemple PRoGRaFLaSH. Le même en XHTML valide
<?php
echo("<?xml version="1.0" encoding="iso-8859-1"?>\n");
?>
[...]</body>
</html>
Ouep :P
Pas testé le script donc pas vu la tite erreur. :oops:
en meme temps il etait 4h02... :)

par pjl » 30 sept. 2005, 12:23

Exactement.

par Gico » 30 sept. 2005, 11:38

Merci a vous, mais j'ai déja un peu de mal a maitriser php alors me lancer dans JS...j'ai cependant trouvé une solution. Le formulaire recharge la page, un script recupère la valeur de la variable et redirige ou non vers la page de validation.
//init des variables 
if(!isset($HTTP_GET_VARS['accepter'])) $accepter="";
else $accepter=$HTTP_GET_VARS['accepter'];
puis
<?php
$accepter = ($HTTP_GET_VARS['accepter']);
if ($accepter=="ok")
{
header ("Location: commandevalidee.php");
}
?>

je pense que c'est sur cette piste que voulait me mettre pjl.

Merci

par Invité » 30 sept. 2005, 11:12

C'est a dire ?

par Cyrano » 30 sept. 2005, 08:03

Il manque une accolade de fermeture dans ton exemple PRoGRaFLaSH. Le même en XHTML valide
<?php
echo("<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" xml:lang="fr" />
<title>Validation et traitement de formulaire</title>
</head>
<body>
<?
if ((isset($_POST["pseudo"])) and (isset($_POST["message"])))
{
    if (empty($_POST["pseudo"]))
    {
        echo "Tu dois entrer ton pseudo ! <a href='exprimer.php'>Retour</a>";
    }
    elseif(empty($_POST["message"]))
    {
        echo "Tu dois entrer ton message ! <a href='exprimer.php'>Retour</a>";
    }
    else
    {
        //traitement de ton formulaire
    }
}
else
{
?>
<script type="text/javascript">
<!--
function verifchamps()
{
    if (document.forms['envoi_exprimer'].elements['pseudo'].value == "")
    {
        alert("Tu dois entrer ton pseudo !");
        return false;
    }
    if (document.forms['envoi_exprimer'].elements['message'].value == "")
    {
        alert("Tu dois entrer ton message !");
        return false;
    }
    return true;
}
-->
</script>
<form action="exprimer.php" id="envoi_exprimer" method="post" onsubmit="return verifchamps(); return false;">
  <p><input type="text" size="42" name="pseudo" id="pseudo" /><br />
  <textarea name="message" id="message" cols="30" rows="8"></textarea><br />
  <input type="submit" value="M'exprimer !" /></p>
</form>
<?
}
?>
</body>
</html>

par DocType » 30 sept. 2005, 04:02

Et si tu faisais un test sur tes variables lorsqu'elles sont envoyées par le formulaire (sur onsubmit). UN petit test javascript qui t'avertit que tas oublié un champ ou non et surtout la case...
Ensuite, tu recharges la meme page pour voir si tes variables existent...
Un exemple ?
<?
if ((isset($_POST["pseudo"])) and
		(isset($_POST["message"])))	{
		if (empty($_POST["pseudo"]))	{
			echo "Tu dois entrer ton pseudo ! <a href='exprimer.php'>Retour</a>";
		}	elseif(empty($_POST["message"]))	{
			echo "Tu dois entrer ton message ! <a href='exprimer.php'>Retour</a>";
		}	else	{
			//traitement de ton formulaire
	}	else	{
		?>
		<script type="text/javascript">
		<!--
		function verifchamps()	{
			if (document.envoi_exprimer.pseudo.value == "")	{
				alert("Tu dois entrer ton pseudo !");
				return false;
			}
			if (document.envoi_exprimer.message.value == "")	{
				alert("Tu dois entrer ton message !");
				return false;
			}
			return true;
		}
		-->	
		</script>
		<form action="exprimer.php" name="envoi_exprimer" method="post" onsubmit="return verifchamps();">
			<input type="text" size="42" name="pseudo" /><br />
			<textarea name="message" cols="30" rows="8"></textarea><br />
			<input type="submit" value="M'exprimer !" /><br />
		</form>
		<?
	}
?>

par pjl » 30 sept. 2005, 00:42

utilise la fonction header alors.

par Gico » 30 sept. 2005, 00:34

je voudrais qu'aprés avoir remplis le formulaire et coché la case "accepter"(les conditions), on aille sur la page "valider" sinon que rien ne se passe, on recharge la page actuelle.

Re: prob de script

par pjl » 30 sept. 2005, 00:30

je voudrais donc que la validation du formulaire, a condition que le champ "accepter" soit egal à 1, pointe sur la page "valider.php".
ça marche pas
Tu veux que ton visiteur après avoir validé le formulaire arrive sur la page valider.php ou que le traitement du formulaire se fasse dans la page valider.php ?

par Gico » 30 sept. 2005, 00:08

je crois comprendre, ou dois je mettre cette variable pour qu'elle soit prise en compte. Puisqu'il s'agit d'un champs du formulaire ?

par Cyrano » 29 sept. 2005, 23:51

Relis ce que j'ai mis plus haut: j'avais bien deviné et ça ne peut pas fonctionner de cette manière.

par Invité » 29 sept. 2005, 23:46

La variable est une chekbox dans le formulaire

Code : Tout sélectionner

<input name="accepter" type="checkbox" id="accepter" value="1">
le formulaire est en Get est je vois la variable sur 1. Donc elle est bien passée. J'ai essayé sans les guillemets, ça fonctionne pas mieux
Merci

par Cyrano » 29 sept. 2005, 23:17

Tu as raison Truc, en fait, je flaire un truc à 100km : la variable est définie d'après une valeur sélectionnée dans le formulaire lui-même : ça ne peut donc pas fonctionner puisqu'au moment de l'affichage du formulaire, cette valeur n'a pas encore pu être sélectionnée, donc la variable ne peut pas être initialisée. À moins que ce soit une valeur provenant d'un formulaire d'une page précédente...? Mais bon, j'attends la réponse, on verra bien.

par Truc » 29 sept. 2005, 23:04

Où et quand est définie la variable $valider ?
$accepter tu veut dire non ?!

sinon la comparaison sur un numerique se fait sans les guillemets :arrow:
$accepter == 1, mais ça c'est pour la forme, dis nous en plus. Que fait ton script et que doit-t-il faire exactement.

par Cyrano » 29 sept. 2005, 22:44

Où et quand est définie la variable $valider ?