Page 1 sur 1

redirection et div cliquable.

Posté : 12 avr. 2010, 10:33
par Simax150
Bonjour à tous ! :D
J'ai trois problèmes et étant seulement débutant (avancé) et trouvant ce forum extrêmement actif (sans doute le plus actif que j'ai vu à présent), j'ai pensé que vous pourriez m'aider.
Voilà mon code (désolé, c'est un peu long...) :
<?php 
include("includes/connexion_mysql.php");

if (isset ($_POST['pseudo']) AND isset ($_POST['mot_de_passe']) AND isset ($_POST['conf_mot_de_passe']) AND isset ($_POST['mail']))
{
	$pseudo = $_POST['pseudo'];
	$mot_de_passe = $_POST['mot_de_passe'];
	$conf_mot_de_passe = $_POST['conf_mot_de_passe'];
	$mail  = $_POST['mail'];
	
	$reg_pseudo = preg_match("#^[a-zA-Z0-9é'è_çà@+=ù*%*€,!?$-]{2,10}$#", "$pseudo");
	$reg_mot_de_passe = preg_match("#^[a-zA-Z0-9éè!?.€ -]{5,15}$#", "$mot_de_passe");
	$reg_conf_mot_de_passe = preg_match("#^".$mot_de_passe."$#", "$conf_mot_de_passe");
	$reg_mail = preg_match("#^[a-z0-9._-]{1,}@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", "$mail");
	
	echo($reg_pseudo);
	echo($reg_mot_de_passe);
	echo($reg_conf_mot_de_passe);
	echo($reg_mail);
	
	if (reg_pseudo == '1' AND reg_mot_de_passe == '1' AND reg_conf_mot_de_passe == '1' AND reg_mail == '1')
	{
	
	header('Location: inscription_validee.php');
	exit();
	
	}
	
	else
	{
	
	header("Location: inscription.php?reg_pseudo=$reg_pseudo&reg_mot_de_passe=$reg_mot_de_passe&reg_conf_mot_de_passe=$reg_conf_mot_de_passe&reg_mail=$reg_mail");
	exit();
	
	}
	
$pseudo = $_POST['pseudo'];
$mot_de_passe = $_POST['mot_de_passe'];
$conf_mot_de_passe = $_POST['conf_mot_de_passe'];
$mail = $_POST['mail'];

}
?>
<!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>Inscription</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>
		
		<?php 
			include("includes/session.php");
			include("includes/entete.php");
	?>
	<div id=menu_et_corps>
	<?php
			include("includes/menu.php");
		
		?>
		
		<div id=corps>
		<h1 class=grostitre>Inscription</h1>
			<p>
				<form action="inscription.php" method=POST>
				
					<label for=pseudo><strong>Pseudo</strong></label><br />
					<input type=text name=pseudo id=pseudo value='<?php if (isset ($pseudo)) {echo ($pseudo);}?>' /><br /><br />
					
					<label for=mot_de_passe><strong>Mot de Passe</strong></label><br />
					<input type=password name=mot_de_passe id=mot_de_passe value='<?php if (isset ($mot_de_passe)) {echo($mot_de_passe);}?>' /><br /><br />
					
					<label for=conf_mot_de_passe><strong>Confirmation du Mot de Passe</strong></label><br />
					<input type=password name=conf_mot_de_passe id=conf_mot_de_passe value='<?php if (isset ($conf_mot_de_passe)) {echo($conf_mot_de_passe);}?>' /><br /><br />
					
					<label for=mail><strong>Adresse Mail</strong></label><br />
					<input type=text name=mail id=mail value='<?php if (isset ($mail)) {echo($mail);}?>' /><br /><br />
					
					
					<input type=submit value='OK' />
				
				</form>
			</p>
			
		</div>
	</div>
		
		<?php
			include("includes/pied.php");
		?>
		
   </body>
</html>
Il marche plutôt bien, mais la redirection me pose quelque problème:
  • lorsque les champs valent tous '1', la redirection ne fonctionne pas, je me retrouve sur "inscription.php?reg_pseudo=1&reg_mot_de_passe=1&reg_conf_mot_de_passe=1&reg_mail=1" au lieu d'être sur "inscription_validee.php"
  • lorsque certain champs sont faux, je me retrouve bien sur l'adresse indiqué, avec les variable qui valent vrai ou faux en fonction des entrés, mais le pré-remplissage ne fonctionne pas.
  • lorsque j'efface les lignes concernant la redirection, le pré remplissage à bien lieu.
et un autre petit problème moins important :
j'ai inséré ma bannière en créant un div vide et en plaçant l'image de la bannière dedans grâce au CSS. Je pensait que cela serait comme ça plus facile de changer de bannière (quoique un include aurait eu le même effet). Mais comment faire en sorte que la bannière soit cliquable et dirige vers la page d'accueil ? Y-a t-il une façon de rendre un div cliquable ?

Merci beaucoup pour vos réponses futures !

Re: redirection et div cliquable.

Posté : 12 avr. 2010, 11:05
par macgawel
Bonjour.

1.
if (reg_pseudo == '1' AND reg_mot_de_passe == '1' AND reg_conf_mot_de_passe == '1' AND reg_mail == '1')
Il faudrait peut-être mettre le $ devant tes variables #-o

2. SI tous tes champs sont remplis, tu testes leur validité.
SI ils sont valides, tu rediriges sur inscription_validee.php
SINON tu rediriges sur Location: inscription.php?etc.
Mais tu ne récupères pas les valeurs de tes champs (en fait, tu les récupères, mais après, et de toute manière tu ne les passes pas à la page appelée).
Tu pourrais envisager d'utiliser des sessions pour les récupérer.
Ou placer ton code de vérification dans la page du formulaire, au début. SI on arrive sur cette page par un POST, on fait les vérifications, en cas d'erreur on a les valeurs à utiliser pour remplir le formulaire...

Pour ton problème de DIV : c'est plus une question de CSS/HTML...
Le plus simple, c'est de placer un lien vers la page d'accueil, et de mettre la bannière en "background-image" (ou encore plus simplement en image).
HTML (à placer dans ton DIV, ou mieux dans un H1) :
<a href="accueil.html" id="banniere">accueil</a>
CSS :
#banniere {
background-image:url("mabanniere.jpg");
background-repeat: no-repeat;
height:90px; /* La hauteur de la banniere */
width:100%;
display:block;
text-indent:-10000px;
}

Re: redirection et div cliquable.

Posté : 12 avr. 2010, 12:54
par Simax150
Wahou !
Quelle rapidité !

Je me sent idiot d'un coup :oops: :oops: :oops: ...
Donc merci beaucoup pour la bannière !

Re: redirection et div cliquable.

Posté : 12 avr. 2010, 14:50
par zeus
Modération :
Puisque ta question est résolue, je l'indique en ajoutant la petite icône verte "Résolu" pour que les futures personnes qui voudront consulter ce sujet sachent qu'il contient une solution.

TTu peux réaliser cette opération toi-même en cliquant sur le bouton Image en haut à droite de la réponse qui te semble la plus pertinente, si tu as posté le 1er message en tant que membre (inscrit et identifié).

Alors... inscris-toi !!! ;)