zEvolutions

Normale Version: Gleicher Name durch unterschiedliche Schreibweise registriertbar
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
URL zu deinem ZE-Projekt: Chatbroetchen

Deine ZE-Version: ZE-Chat vZE_09_rev141015

Deine PHP-Version: 5.4.34-0+deb7u1

Deine MySQL-Version: 5.5.40-0+wheezy1

Fehler- oder Problembeschreibung:
Es ist möglich durch unterschiedliche Schreibweise einen Nick mehrfach zu registrieren, z.B. wenn Maike vergeben ist kann man dennoch maike, mAike, MaIke usw registrieren. Dieses sollte, denke ich nicht im Sinne des Betrachters sein. Dies könnte somit auch für größere Chats oder auch Communities zu Problemen führen.

Was hast du bereits versucht um den Fehler/das Problem zu lösen:
Hab mich direkt ans Forum gewendet ^^
Für die Selbermacher unter euch:

Öffne /class/user.class.php

Füge unter

PHP-Code:
public function getInfo($s_field$s_param$field) {
    
$query =
      
mysql_query("SELECT `$field` FROM `ze_user` WHERE `$s_field` = '$s_param' LIMIT 1")
        OR die(
"Error: <br>".mysql_error());
    while(
$row mysql_fetch_object($query)){
      return 
$row->$field;
    }
    
mysql_free_result($query);
  } 

ein:

PHP-Code:
public function checkName($name) {
    
$helper 0;
    
$name strtolower($name);
    
$query =
      
mysql_query("SELECT `user_name` FROM `ze_user`")
        OR die(
"Error: <br>".mysql_error());
    while(
$row mysql_fetch_object($query)){
      if(
$name == strtolower($row->user_name)) {
        
$helper 1;
      }
    }
    
mysql_free_result($query);
    if(
$helper == 1) {
      return 
true;
    } else {
      return 
false;
    }
  } 

Speichern. Öffne /inc/ajax/overview.ajax.php und ersetze

PHP-Code:
$check_name $ZE_USER->getInfo('user_name'$new_char_name'user_id');
    if(
$check_name != '' && $name_valid == '1') {
      
$confirm_color "#990000";
      
$confirm_state $LANG["main_crea_error_2"];
      unset(
$name_valid);
    } 

mit:

PHP-Code:
if($ZE_USER->checkName($new_char_name) == true) {
      
$confirm_color "#990000";
      
$confirm_state $LANG["main_crea_error_2"];
      unset(
$name_valid);
    } 

Speichern. Öffne /inc/ajax/login.ajax.php und ersetze

PHP-Code:
$query =
      
mysql_query("SELECT `user_name`
                   FROM `ze_user`
                   WHERE `user_name` = '
$reglogin'");
      while(
$row mysql_fetch_object($query)){
        
$namebad $row->user_name;
      }
    if(
$reglogin == $namebad && $error == '0'){
      
$confirm_color "#990000";
      
$confirm_state $LANG["main_reg_error_5"];
      
$error '1';
    } 

mit:

PHP-Code:
if($ZE_USER->checkName($reglogin) == true) {
      
$confirm_color "#990000";
      
$confirm_state $LANG["main_reg_error_5"];
      
$error '1';
    } 

Speichern. Fertig.