Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Gleicher Name durch unterschiedliche Schreibweise registriertbar
#1
Exclamation 
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 ^^
Antworten
#2
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.
Es gibt keine dummen Antworten - nur dumme Fragen.
Antworten
  


Gehe zu:


Benutzer, die gerade dieses Thema anschauen:
1 Gast/Gäste