probleme formulaire et redirection

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 : probleme formulaire et redirection

Re: probleme formulaire et redirection

par Ryle » 28 déc. 2011, 19:11

La fonction header attends une chaine de caractère en paramètre. Celle-ci doit donc être entre apostrophes/guillemets... et finir l'instruction par un ; :)
header("Location:mon_site");

Re: probleme formulaire et redirection

par fatih » 28 déc. 2011, 18:53

Sinon en php, tu peux utiliser header() pour effectuer la redirection avant et renvoyer l'utilisateur vers une page où il aura le message de succès :)
header('Location:http://forum.phpfrance.com/');
Bonjour

J'essaie d'ajouter la redirection, mais je reçois en retour un message d'erreur au niveau de la ligne 'header' : Parse error: syntax error, unexpected ':' in

Voici mon bout de code :

if ($res) {
echo $msg_ok;
header(Location:mon_site)
} else {
echo mysql_error();
}

res = insertion des données dans la base

Re: probleme formulaire et redirection

par Ryle » 20 juil. 2011, 22:07

En fait, ce qui importe c'est la chaine sql que tu vas envoyer à mysql, peut importe comment celle-ci a été constituée.

Pour le moment, tu ne mets à jour que 3 champs de ta table, en te servant de valeur émises par l'utilisateur, mais tu pourrais tout aussi bien fixer certaines variable en dur, ou déterminer ces valeurs à l'aide de traitement php.

Dans ton cas, tu peux récupérer la date courante avec la fonction date() de php. Il te suffit de formater cette date au format attendu par mysql et de l'inclure dans la requête que tu vas lui envoyer. Par exemple :
$req=$bdd->prepare('INSERT INTO formulaire(pseudo,mdp,mail,date)VALUES (?,?,?,?)'); // on précise la zone en plus
$req->execute(array(
   $_POST['pseudo'],
   md5($_POST['mdp']),
   $_POST['mail'],
   date('Y-m-d')
));

Re: probleme formulaire et redirection

par lebarbare » 20 juil. 2011, 19:19

probleme regler merci pour les infos j'aurais une autre question j'ai créer dans ma table un champ DATE j'aimerais que a l'envoie de mon formulaire la date d'inscription s'enregistre dans ma table....mais je vois pas comment faire ??!!

il faut que j'ajoute a mon INSERT INTO mais ajouter quoi je n'ai pas de variable issus du formulaire pour cette date !!

Re: probleme formulaire et redirection

par Ryle » 19 juil. 2011, 20:23

En html le délai est exprimé en seconde (2s), tandis qu'en javascript il est en milliseconde (donc 2000ms pour 2s)

Pour faire disparaitre ton formulaire, le plus simple c'est de placer ton traitement avant l'affichage du formulaire. Tu pourras ainsi conditionner son affichage en fonction du résultat de ton traitement. Par exemple : si le formulaire n'a pas encore été envoyé ou s'il y a des erreurs tu affiches le formulaire pour permettre de compléter/corriger, sinon tu ne l'affiche pas et tu mets juste le message de confirmation :)

Re: probleme formulaire et redirection

par lebarbare » 19 juil. 2011, 19:19

oui pour mon pti souci j'ai réparé c'est good j'ai refait entre temp merci quand meme ;)

pour la redirection oui j'aimerais que mon formulaire disparaisse pour n'afficher que la phrase comme quoi tous est ok puis etre rediriger sur la page d'acceuil ...

je vais tester ton bout de code php pour la redirection mais je veut bien savoir comment faire disparaitre mon formulaire pour n'afficher que ma phrase ?

c'est quoi le 2000 a la fin de ton code ??

Re: probleme formulaire et redirection

par Ryle » 19 juil. 2011, 19:01

L'accolade ligne 71 n'est elle pas en trop ?
Si tu indentes bien ton code (tu décales à droite à chaque fois que tu ajoutes un accolade ouvrante, et tu décales à gauche chaque fois que tu la referme) tu verras rapidement s'il y a un problème dans l'organisation de tes blocs

Quant au message et la redirection, ça dépend un peu de ce que tu veux faire...

Pour afficher un message avant la redirection, tu peux garder ton script actuel, afficher un message de succès et faire une redirection en javascript après "x" secondes (exemple 2 sec.):

En html :
<meta http-equiv="refresh" content="2;url=http://forum.phpfrance.com/">
En javascript :
setTimeout("document.location='http://forum.phpfrance.com/'", 2000);
Sinon en php, tu peux utiliser header() pour effectuer la redirection avant et renvoyer l'utilisateur vers une page où il aura le message de succès :)
header('Location:http://forum.phpfrance.com/');
(et tu peux éventuellement passer des paramètres pour dire quel message doit être affiché après la redirection :))

probleme formulaire et redirection

par lebarbare » 19 juil. 2011, 17:37

bonjour nouveau sur ce forum et grand debutant dans le php je fait mes premiers pas mais deja des galeres lol normal vous allez me dire ^^
bref voila apres de longue bataille et recherche sur le net j'ai fait mon premier bout de code avec un formulaire mon premier souci j'ai une erreur ligne 71 que je ne trouve pas !! la ou je dis qui si les deux mails ne sont pas identique je veut tel message ....

secondo j'aimerais que une fois l'envoie du formulaire le message comme quoi tous est ok s'affiche sur une page vierge puis redirige mon visiteur sur la page d'accueil
mais pour sa un pti coup de main serais pas de refus :D
<!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>
       <title>MN-Iformatique.com</title>
       <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
	   <link rel="stylesheet" media="screen" type="text/css" title="Design" href="design.css" />
   </head>
   <body>
   
   <div id="en_tete">
   </div>
   
   <?php include("menu.php");?>
   
   <div id="corps">
   <div id="formulaire">
		<h2>Formulaire d'inscription</h2>
		
		<form method="post" action="formulaire.php">
		
		
	<fieldset>
	<p>
		<br/><br/>		<label for="pseudo">Pseudo :</label> <input type="text" name="pseudo" id="pseudo" maxlength="15"/>
		<br/><br/>		<label for="mdp">Mot de passe :</label> <input type="password" name="mdp" id="mdp" maxlength="15"/>
		<br/><br/>		<label for="mail">Mail :</label> <input type="text" name="mail" id="mail"maxlength="50"/>
		<br/><br/>		<label for="confirm_mail">Confirmation mail :</label> <input type="text" name="confirm_mail" id="confirm_mail" maxlength="50"/>
	</fieldset>
						<input type="submit" name="valider" value="Valider"/> <input type="reset" />
	</p>
		</form>
				
				

<?php
		// connexion a bdd 
		
				try
			{
				$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
				$bdd = new PDO('mysql:host=localhost;dbname=mn_info', 'root', '', $pdo_options);
			}
				catch (Exception $e)
			{
				die('Erreur : ' . $e->getMessage());
			}
		?>
		
		<?php		
		
		// on verifie  que tous les champs soit remplis 
		if(
				!empty($_POST['pseudo'])
				&&!empty($_POST['mdp'])
				&&!empty($_POST['mail'])
				&&!empty($_POST['confirm_mail']))
		{
		if($_POST['mail']==$_POST['confirm_mail'])  //on verifie que les adresses soit les meme
		{
		
		
		$req=$bdd->prepare('INSERT INTO formulaire(pseudo,mdp,mail)VALUES (?,?,?)');
		$req->execute(array(
							$_POST['pseudo'],
						md5($_POST['mdp']),
							$_POST['mail']));
		
				echo 'Inscription valide merci de la confirmer dans le mail que vous avez recu ';
		}
		}
				elseif  (isset($_POST['mail'])!=($_POST['confirm_mail']))
		{
				echo 'Les deux adresses mail doivent etre les meme';
		}
				elseif (!empty($_POST['valider']))
		{
				echo 'Tous les champs doivent etre remplis';
		}
		?>
	</div>
	</div>
	</body>
	</html>