Bonjour,

Je voudrais permettre à mes membres de changer de pseudo mais en vérifiant que celui-ci n'existe pas encore dans la base de données.

Don, j'ai un formulaire où le membre introduit son nouveau pseudo, de là on vérifie si ce nouveau pseudo existe déjà.
Si oui, un message d'erreur apparait pour proposer au membre d'en choisir un autre.
Si non, je fais un UPDATE dans la BDD pour changer le pseudo.

Voici ce que j'ai actuellement.
Mais 1/ au premier test le pseudo était bien changé mais possibilité d'en avoir un qui existe déjà.
2/ le message d'erreur ne s'affiche pas.

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
 
<?php
if ( !defined( 'SMARTY_DIR' ) ) {
    include_once( 'init.php' );
}
 
include( 'sessioninc.php' );
 
 
$user = $db->getRow('select username from ! where id = ?', array( USER_TABLE, $_SESSION['UserId']) );
 
$username = $user['username'];
 
$change = $_POST['txtusername'];
 
$t->assign('lang',$lang);
 
$t->assign('username',$username);
 
$t->assign( 'rendered_page', $t->fetch( 'changepseudo.tpl' ) );
 
$t->display('index.tpl');
 
// vérification si pseudo existe déjà
$query = mysql_query("SELECT COUNT(*) AS nbr FROM gaydate_user WHERE username = '".$change."' ");
$result = mysql_fetch_array($query);
if($result['nbr'] == 0)
{
 $sqlchange = "UPDATE ! SET username='$change' WHERE id = ?"; 
 $db->query( $sqlchange, array( USER_TABLE, $_SESSION['UserId'] ) );
 header ('location: changepseudo.php?msg='.CHANGE_OK );
}else{
 header ('location: changepseudo.php?msg='.CHANGE_NO );
}
 
?>
J'ai essayé un header pour le message d'erreur mais si il y a moyen d'avoir une alert c'est encore mieux.

Merci pour votre aide.