Salut,
tu as juste à modifier ta requête SQL comme ça, en remplacant le AND par un OR :
$sql = "SELECT COUNT(*) AS nbr FROM membres WHERE pseudo='".$pseudo."' OR ip='".$ip."'";
D'ailleurs avec ton code actuel, si je tente de m'inscrire avec un pseudo déjà pris, mais que je n'ai pas la même adresse IP, ça marche quand même, vu que les 2 conditions ne sont pas remplies (vu que tu utilisais un AND).
Par ailleurs, si tu souhaites personnaliser ton message d'erreur, tu devrais faire la reqûete suivante, puis le traitement suivant dessous :
$sql = "SELECT `pseudo`, `ip` FROM `membres` WHERE `pseudo`='".$pseudo."' OR `ip`='".$ip."' LIMIT 1";
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_assoc($req);
if(sizeof($data) and $data'pseudo'] != $pseudo AND $data'ip'] != $ip){
$sql = "INSERT INTO `membres` (`pseudo`,`pass`,`ip`,`mail`, `level`) VALUES ('$pseudo','$pass','$ip','$mail', '1')";
mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$erreur = "Tu as bien été inscris.";
}elseif($data'pseudo'] == $pseudo){
$erreur = "Un membre possède déjà ce même pseudo.";
}elseif($data'ip'] == $ip){
$erreur = "Un membre possède est déjà enregistré avec cette adresse IP.";
}
Note le LIMIT 1 dans la requête. Dans ton cas on veut seulement savoir si au moins un membre possède déjà le pseudo ou l'ip.
Note aussi les backquotes dans la requête ( ) qui sont aussi une protection en plus contre les injections SQL même si tu utilises mysql_real_escape_string().
En espérant avoir pu t'aider.