Bonjour à tous et bonne année.

Je viens vers vous dans le but de résoudre un problème auquel je suis confronté depuis 3 jours et dont je ne me sors pas.

J'ai dans ma page register.php le code suivant qui permet certains controles :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<?php
session_start();
 
// on teste si le visiteur a soumis le formulaire
if (isset($_POST['register']) && $_POST['register'] == 'register') {  
   // on teste l'existence de nos variables. On teste également si elles ne sont pas vides
   if (	(isset($_POST['account_type']) && !empty($_POST['account_type'])) &&
			(isset($_POST['mail_address']) && !empty($_POST['mail_address']) && filter_var($_POST['mail_address'], FILTER_VALIDATE_EMAIL)) &&
			(isset($_POST['username']) && !empty($_POST['username'])) && 
			(isset($_POST['password']) && !empty($_POST['password'])) && 
			(isset($_POST['confirm_password']) && !empty($_POST['confirm_password']))
	  ) 
	{ 
 
	  //On enleve lechappement si get_magic_quotes_gpc est active
        if(get_magic_quotes_gpc())
        {
			$_POST['username'] = stripslashes($_POST['username']);
			$_POST['password'] = stripslashes($_POST['password']);
			$_POST['confirm_password'] = stripslashes($_POST['confirm_password']);
			$_POST['mail_address'] = stripslashes($_POST['mail_address']);
        }
 
			// on teste les deux mots de passe
			if ($_POST['password'] != $_POST['confirm_password']) 
			{ 
				$erreurpass = 'The two passwords are different.'; 
			} 
 
		else { 
			$base = mysql_connect ('localhost', 'root', ''); 
			mysql_select_db ('BASE', $base); 
 
			// on recherche si ce username est déjà utilisé par un autre membre
			$sql = 'SELECT id FROM user WHERE username="'.mysql_real_escape_string($_POST['username']).'"'; 
			$req = mysql_query($sql) or die('erreur SQL !<br />'.
				$sql.'<br />'.
				mysql_error()); 
			$data = mysql_fetch_array($req);
 
				if ($data[0] == 0) 
				{  
					$sql = 'INSERT INTO user VALUES("" ,"'.mysql_real_escape_string($_POST['account_type']).'",
													"'.mysql_real_escape_string($_POST['mail_address']).'",
													"'.mysql_real_escape_string($_POST['username']).'", 
													"'.mysql_real_escape_string(md5($_POST['password'].$salt)).'")';
					mysql_query($sql) or die('erreur SQL !'.$sql.'<br />'.mysql_error()); 
 
				// on récupère l'id de notre nouveau membre
				$id = mysql_insert_id();
 
				session_start(); 
				$_SESSION['username'] = $_POST['username']; 
 
				// on stocke cet id dans une variable de session
				$_SESSION['id'] = $id; 
				header('Location: home.php'); 
				exit(); 
				} 
				else { 
					$erreurlogin = 'Another member is already using this pseudo.'; 
				} 
			}	 
	} 
	else {
		$erreur = 'Please fill in all the fields.';
	}
}
?>
J'ai plusieurs soucis.
Le premier est qu'il ne m'affiche aucun message si je valide le formulaire alors qu'aucun champs n'est rempli.
En second, plutôt que d'afficher les erreurs les unes après les autres et attendre la correction de l'utilisateur, j'aimerai pouvoir toutes les afficher en même temps.
En troisième, j'ai deux fonctions qui doivent permettre le contrôle de la disponibilité d'un login :
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function file(fichier) {
     if(window.XMLHttpRequest) // FIREFOX
          xhr_object = new XMLHttpRequest();
     else if(window.ActiveXObject) // IE
          xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
     else
          return(false);
     xhr_object.open("GET", fichier, false);
     xhr_object.send(null);
     if(xhr_object.readyState == 4) return(xhr_object.responseText);
     else return(false);
     }
 
 
function verif(c,v,d){
   result = file('verif.php?c='+c+'&v='+v);
   document.getElementById(d).innerHTML=result;
}
et qui sont appelé de la façon suivante dans mon formulaire :
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
<input type="text" class="inputform" id="username" name="username" onBlur="verif('username',this.value,'username_verif')"  required /> <div name='pseudo_verif'></div>

et enfin le verif.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
 
if(isset($_GET['c']) && isset($_GET['v'])){ //verification que les variables c et v existent
   if($_GET['c']!='' && $_GET['v']!=''){ //verification que les variables c et v ne sonts pas vides
      if($_GET['c']=='username'){ //si c=pseudo
         $link = mysql_connect('localhost','root','mot de passe'); //connection à la bdd
         $result = mysql_db_query('ma_bdd','SELECT * FROM ma_table WHERE username=`'.$_GET['v'].'`',$link); //requete
         if(mysql_num_rows($result)<1){
            echo('Ce pseudo est libre'); //envoi du message si libre
         }else{
            echo('Ce pseudo est deja pris'); // envoi du message si deja pris
         }
      }
   }
}
 
?>
et donc je n'arrive pas à mixer les deux register.php et verif.php.

Voila je crois que se sera tous... C'est pas mal déjà et merci à tous ceux qui prendront le temps de me lire et surtout de m'aider.