Author Topic: [MOD] - AJAX - register with username suggestion  (Read 37098 times)

0 Members and 1 Guest are viewing this topic.

Offline nobby

  • 4images Guru
  • *******
  • Posts: 2.873
    • View Profile
Re: [MOD] - AJAX - register with username suggestion
« Reply #15 on: June 06, 2008, 08:22:54 PM »
Du hast recht wir werden alt  :mrgreen:

Und trotzdem sind wir Gut, nicht  :P :P  :wink:

nobby

Offline Jan-Lukas

  • Addicted member
  • ******
  • Posts: 1.289
    • View Profile
    • Discover the New World of Kindersurprise
Re: [MOD] - AJAX - register with username suggestion
« Reply #16 on: June 06, 2008, 10:50:33 PM »
auf alle Fälle, wenn nicht wir, wer sonst *grübel*
Danke Harald




Offline Sunny C.

  • Addicted member
  • ******
  • Posts: 1.806
  • I ♥ 4I
    • View Profile
Re: [MOD] - AJAX - Registration mit Überprüfung auf Verfügbarkeit
« Reply #17 on: October 15, 2008, 04:07:08 PM »
Thanks to Thunderstrike for this Mod: http://www.4homepages.de/forum/index.php?topic=19462.msg104998#msg104998

Übersetzung:
Translate:


Diese Modifikation überprüft ob bestimmte Usernamen schon vorhanden sind.
Ist ein Name vorhanden so bekommt man eine Message das der Name vorhanden sein.
Ebenso wird man Vorschläge gezeigt bekommen.

// Step 1

Öffne: register.php
Finde:

Code: [Select]
if ($user_info['user_level'] != GUEST && $action != "activate") {
  show_error_page($lang['already_registered']);
}
$content = "";

Füge darunterr:

Code: [Select]
if ($action == "register_suggest") {
   
    if (isset($HTTP_GET_VARS['q']) || isset($HTTP_POST_VARS['q'])) {
        $q = (isset($HTTP_GET_VARS['q'])) ? un_htmlspecialchars(trim($HTTP_GET_VARS['q'])) : un_htmlspecialchars(trim($HTTP_POST_VARS['q']));
        $q = preg_replace("/[^a-z0-9_-]+/i", "", $q);
    } else {
        $q = "";
    }
   
    if (isset($q) && !empty($q)) {
   
    $q = (isset($q)) ? strip_tags(trim($q)) : "";
   
    $sql = "
   
    SELECT " . get_user_table_field("", "user_name") . "
    FROM " . USERS_TABLE . "
    WHERE " . get_user_table_field("", "user_name") . " LIKE '" . $q . "'
   
    ";
   
    $same_user = $site_db->query_firstrow($sql);
    $user_name = format_text(trim($same_user[$user_table_fields['user_name']]), 2);
   
    if (strlen($q) > 0) {
        $q = strtolower(trim($q));
       
        $hint = "";       
        for ($i = 0; $i < count($index_name); $i++) {
            if ($q == strtolower(substr($index_name[$i], 0, strlen($q)))) {
                if ($hint == "") {
                    $hint = $index_name[$i];
                   
                } else {
                    $hint = $hint." , ".$index_name[$i];                   
                }
            }
        }
    }
   
    if (isset($additional_index_name_filter_check) && is_array($additional_index_name_filter_check) && !empty($additional_index_name_filter_check)) {
        $index_flag_for_no = false;
        $index_flag_for_yes = false;
        foreach ($additional_index_name_filter_check as $key => $val) {
            if (!preg_match("/$val/i", $q)) {
                $index_flag_for_no .= true;
            } elseif (preg_match("/$val/i", $q)) {
                $index_flag_for_yes .= true;
            }
        }
    }               

    if ($hint == "" && !preg_match("/$user_name/i", $q) && isset($index_flag_for_no) && $index_flag_for_no == true) {
        $response = $lang['register_suggest_available'];       
       
    } elseif (isset($index_flag_for_yes) && $index_flag_for_yes == true) {
        $response = $lang['register_suggest_cannot_key_names'];       
   
    } elseif (preg_match("/[a-z0-9_-]/i", $user_name) && $user_name == $q) {
        mt_srand((double) microtime() * 1000000);
        $puddle = '0123456789';
        $user_password = "";
        $check_user_name = "";         
        for ($i = 0; $i < 5; $i++) {           
            $user_name = preg_replace("/[0-9]+/i", "", $user_name);
            $user_password .= substr($puddle, (mt_rand()%(strlen($puddle))), 1);           
        }               
        $check_user_name .= $user_name. $user_password . "<br />";
        $response = preg_replace("/" . $site_template->start . "check_user_name" . $site_template->end . "/siU", format_text(trim($check_user_name), 1), $lang['register_suggest_already_exists']);
       
    } elseif ($hint != "" && $q != $user_name) {
        $response = $hint;
    }
   
    echo $response;
    exit;
    }
}

Finde:

Code: [Select]
if (isset($HTTP_POST_VARS['user_name'])) {

Füge darunter:

Code: [Select]
if (isset($additional_index_name_filter_check) && is_array($additional_index_name_filter_check) && !empty($additional_index_name_filter_check)) {         
          foreach ($additional_index_name_filter_check as $key => $val) {
              if (preg_match("/$val/i", $user_name)) {
                  unset ($user_name);
                  $msg .= (($msg != "") ? "<br />" : "").$field_error = $lang['register_suggest_cannot_key_names'];
                  $error = 1;
                  break;
              }
          }
      }

Finde:

Code: [Select]
"lang_captcha_desc" => $lang['captcha_desc'],

Füge darunter:

Code: [Select]
"lang_register_suggest_text" => $lang['register_suggest_text'],     
"register_suggest" => true,     

// Step 2

Öffne: includes/db_field_definitions.php
Füge vor
Code: [Select]
?>Das ein:

Code: [Select]
$additional_index_name_filter_check = array("sex", "test", "webm", "adm", "await", "user", "guest", "password", "email");

Das sind Wörter die verboten sind! Diese kannst du bearbeiten oder weitere hinzufügen!

// Step 3

Öffne: includes/page_header.php
finde:

Code: [Select]
"url_captcha_image" => $site_sess->url(ROOT_PATH."captcha.php"),

Füge darunter:

Code: [Select]
"register_suggest" => false,

// Step 4

Öffne: lang/deutsch/main.php
Füge vor:
Code: [Select]
?>Das ein:

Code: [Select]
$lang['register_suggest_available'] = "<font color=\"green\">Verfügbar !</font>";
$lang['register_suggest_cannot_key_names'] = "<font color=\"red\">Diesen Benutzernamen kannst du nicht verwenden!</font>";
$lang['register_suggest_already_exists'] = "<font color=\"red\">Dieser benutzername ist schon vorhanden!</font><br /><br />Try with:<br /><b>{check_user_name}</b>";
$lang['register_suggest_text'] = "Vorschläge: ";
$index_name = array("Anna", "Brittany", "Cinderella", "Diana", "Eva", "Fiona", "Gunda", "Hege", "Inga", "Johanna", "Kitty", "Linda", "Nina", "Ophelia", "Petunia", "Amanda", "Raquel", "Cindy", "Doris", "Eve", "Evita", "Sunniva", "Tove", "Unni", "Violet", "Liza", "Elisabeth", "Ellen", "Wenche", "Vicky");

// Step 5

Öffne: templates/your_template/register_form.html

finde:

Code: [Select]
<input type="text" name="user_name" size="30" value="{user_name}" class="input" />

Ersetze mit:

Code: [Select]
<input type="text" name="user_name" size="30" value="{user_name}" id="txt1" onkeyup="showHint(this.value)" class="input" />
              <br />
              {lang_register_suggest_text}<span id="txtHint"></span>

// Step 6

Öffne: templates/your_template, Erstelle diese Datei: clienthint.js .

Mit diesem Inhalt:

Code: [Select]
var xmlHttp

function showHint(str)
{
if (str.length==0)
  {
  document.getElementById("txtHint").innerHTML=""
  return
  }
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
  {
  alert ("Browser does not support HTTP Request")
  return
  }
var url="register.php"
url=url+"?action=register_suggest&q="+str
//url=url+"&sid="+Math.random()
xmlHttp.onreadystatechange=stateChanged
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}

function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
 {
 document.getElementById("txtHint").innerHTML=xmlHttp.responseText
 }
}function GetXmlHttpObject()
{
var xmlHttp=null;
try
 {
 // Firefox, Opera 8.0+, Safari
 xmlHttp=new XMLHttpRequest();
 }
catch (e)
 {
 // Internet Explorer
 try
  {
  xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
  }
 catch (e)
  {
  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
 }
return xmlHttp;
}

// Step 7

Öffne: templates/your_template/header.html

finde:

Code: [Select]
{if has_rss}
<link rel="alternate" type="application/rss+xml" title="{rss_title}" href="{rss_url}" />
{endif has_rss}

Füge darunterr:

Code: [Select]
{if register_suggest}
<script src="{template_url}/clienthint.js"></script>
{endif register_suggest}

Die URL der JS Datei muss so bleiben! Wenn der Pfad geändert wird, wird diese Modifikation nicht mehr funktionieren! Also bitte an die Anleitung zu 100% halten!

Offline mawenzi

  • Moderator
  • 4images Guru
  • *****
  • Posts: 4.500
    • View Profile
Re: [MOD] - AJAX - register with username suggestion
« Reply #18 on: October 15, 2008, 05:33:23 PM »
... ich hoffe doch stark, dass du nun auch den deutschen Support für diese Modifikation übernimmst ...
Your first three "must do" before you ask a question ! ( © by V@no )
- please read the Forum Rules ...
- please study the FAQ ...
- please try to Search for your answer ...

You are on search for top 4images MOD's ?
- then please search here ... Mawenzi's Top 100+ MOD List (unsorted sorted) ...

Offline Sunny C.

  • Addicted member
  • ******
  • Posts: 1.806
  • I ♥ 4I
    • View Profile
Re: [MOD] - AJAX - register with username suggestion
« Reply #19 on: October 15, 2008, 06:09:27 PM »
Ähm... ja!
Sonst würde ich das nicht machen!  :wink:

Offline kai

  • Administrator
  • Addicted member
  • *****
  • Posts: 1.423
    • View Profile
    • 4images - Image Gallery Management System
Re: [MOD] - AJAX - register with username suggestion
« Reply #20 on: October 15, 2008, 06:13:00 PM »
@ Phisker B: Please use the php BB-code for posting php sourcecode.
Your first three "must do" before you ask a question:
1. Forum rules
2. FAQ
3. Search