Probleme de formulaire et de onclick

Petit nouveau ! | 5 Messages

04 juin 2009, 12:02

Bonjour tout le monde


Voila en fait je suis entrain de créer un site avec un système d'authentification et donc une zone pour les membres et je coince au niveau du formulaire et de la validation de ce dernier.

Voici le code en question :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>test</title>
<SCRIPT LANGUAGE=javascript><!--

function ouvrir(){
fenetre=window.open("enregistrement.php","","width=600,height=300,toolbar=no, scrollbars=false,status=no")

fenetre.creator=self

}



function verif(){

error=false;
   if(pseudo==""){
      alert("veuillez saisir le pseudo");
      error=true;
   }
   if(pass==""){
      alert("veuillez saisir mot de passe");
      error=true;
   }

   if (error) return false;
   else return true;
}

 

 
</SCRIPT> 
<!-- declare chemin vers le feuille de style -->
<link href="CSS/css.css" rel="stylesheet" type="text/css" /> 
<script src="Scripts/AC_RunActiveContent.js" type="text/javascript"></script>


<?php
$erreur = false;
if(isset($_POST['connexion'])){
	$pseudo = preg_replace('/[^A-Za-z]/', '', $_POST['pseudo']);
	$pass = md5($_POST['pass']);
	if(file_exists('utilisateurs/' . $pseudo . '.xml')){
		$xml = new SimpleXMLElement('utilisateurs/' . $pseudo . '.xml', 0, true);
		if($pass == $xml->pass){
			session_start();
			$_SESSION['pseudo'] = $pseudo;
			header('Location: index.php');
			die;
		}
	}
	$erreur = true;
}
?>

</head>

<body bgcolor="#262222">
<!--contenu-->
<div class="fond"> 
<!--animation flash-->
	
    	<div class="Login">
        	<div class="formulaire">
<form method="post" action="">
          	      	<div class="ident">
        				<input type="text" name="pseudo"  /><br/><br/>
                    </div>
                    <div class="mdp">
        				<input type="password" name="pass"  />
                        <?php
		if($erreur){
			echo '<p>Mot de passe ou pseudo invalide!</p>';
		}
		?>
       				  <br/>
                    </div>
					<div class="Envoi">
					  <input class="send" type="button" value="S'inscrire&nbsp;" onclick="ouvrir()" />
                      
   					</div>
                    <div class="Connect">
					<input class="send" type="submit" value="Se connecter&nbsp;" name="connexion" onsubmit="return verif()"  />
					  
                    </div>
       			</form>
          </div>
</body>
</html>
Au debut ce que je voulais c'était de mettre un onclick sur le bouton se connecter et le "faire fonctionner" uniquement apres verification php mais je n'ai pas su le faire.
Je me suis alors dis qu'une verification des champs du formulaire suffirait coté client puisque cote serveur il y'aurait la verification php.

Voila j'avoue être un peu coincé à ce niveau là et je ne sais pas comment faire étant donné que le code tel quel ne permet pas de "se logguer".
J'aimerais que la page de login apparaisse dans un popup comme pour la page enregistrement.
D'ailleurs j'en profite pour demander si quelqu'un connait une alternative aux popups.
Je sais qu'il en existe comme Lightbox JS par exemple pour des images mais pour des pages avec du texte je ne vois pas .


Voila je vous remercie d'avance

ViPHP
AB
ViPHP | 5818 Messages

15 juin 2009, 00:10

Il y a un tuto avec code complet sur l'inscription et la connexion dans un espace membre ici http://www.phpfrance.com/forums/voir_sujet-242539.php

L'exemple est avec une bdd mais tu peux l'adapter si tes identifiants sont dans un fichier texte ou xml

Concernant la vérification on fait parfois une vérification sommaire en JS qui teste si les champs sont remplis et on soumet le formulaire si le test javascript est OK. Cela sert à peu de chose finalement puisqu'on peut faire le test également en php (comme dans le tuto ci-dessus).

Enfin si tu veux faire un premier test en js tu peux faire comme ceci

Code : Tout sélectionner

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr"><head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Formulaire de connexion</title> <script type="text/javascript"> function verif(){ var message = ''; for (var i=0; i < verif.arguments.length; i++) { if (this.champ = document.getElementById(verif.arguments[i])) { if (this.champ.value == '') {message += ' - Le champ '+verif.arguments[i]+' doit être rempli\n';} } } if (message != '') {alert(message);return false;} else return true; } </script> </head> <body> <div id = "connexion"> <form action = "#" method="post" onsubmit="return verif('pseudo','pass')"> <h1>Connexion</h1> <p><label for = "pseudo">Pseudo : </label><input type="text" name="pseudo" id="pseudo" /></p> <p><label for = "pass">Mot de passe : </label><input type="password" name="pass" id="pass" /></p> <p><input type="submit" value="Envoyer" id = "valider" /></p> </form> </div> </body> </html>