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 :
J'ai plusieurs soucis.
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.'; } } ?>
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 :
et qui sont appelé de la façon suivante dans mon formulaire :
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; }
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
et donc je n'arrive pas à mixer les deux register.php et 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 } } } } ?>
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.
Partager