PDA

Voir la version complète : Ajax registration (AJAXREG)


M-spooky
19/10/2007, 22h50
Description Ce hack permet d'eviter les erreurs pendant l'enregistrement
Remerciements et support / Thanks and support
Ce Hack a été traduit en français pour vBulletin-Ressources avec l'autorisation explicite de son auteur. / This Hack was translated into French for vBulletin-Ressources with the explicit authorization of its author.
vBulletin-Ressources et son équipe offrira du support vis à vis des hacks traduits, bien sûr, dans la mesure du possible de chacun, autant en terme de temps que de connaissances/ vBulletin-Ressources and its team will offer support for the translated hacks, of course, as far as possible for everyone, as much in term of time that knowledge.
vBulletin-Ressources remercie l'auteur du hack pour avoir fourni son autorisation. / vBulletin-Ressources thanks the author for the hack to have provided its authorization.Conception
Auteur du Hack / Author Of Hack : Coders Shack (http://www.vbulletin.org/forum/member.php?u=196696)
version : 3.11
Source / Link of Thread: ajaxReg - Ajax Registration, with instant field checking - vBulletin.org Forum (http://www.vbulletin.org/forum/showthread.php?t=144869)
Version vBulletin Requise / Version vBulletin Required : vB 3.6.x
Testé / Tested: Non
Traducteur / Translator: M-spooky
Copyright © 2006 vBulletin-Ressources.com - Tous droits réservés Uniquement pour nos traductions / Copyright © 2006 vBulletin-Ressources.com - All Rights Reserved Only for ours translationsInstallation


Uploadez tous les fichier se trouvant dans le dossier "Forum"
Importez le fichier .XMLModifications templates:
dans le template register
ajoutez a la premiere ligne:
<script type="text/javascript" src="./clientscript/register.js"></script>
<script type="text/javascript">
var ajaxreg_email_error_1 = "$vbphrase[ajaxreg_email_error_1]";
var ajaxreg_email_error_2 = "$vbphrase[ajaxreg_email_error_2]";
var ajaxreg_email_error_3 = "$vbphrase[ajaxreg_email_error_3]";
var ajaxreg_email_error_4 = "$vbphrase[ajaxreg_email_error_4]";
var ajaxreg_email_error_5 = "$vbphrase[ajaxreg_email_error_5]";
var ajaxreg_email_error_6 = "$vbphrase[ajaxreg_email_error_6]";
var ajaxreg_email_error_7 = "$vbphrase[ajaxreg_email_error_7]";
var ajaxreg_email_error_8 = "$vbphrase[ajaxreg_email_error_8]";
var ajaxreg_name_minuserlength = "' . $minuserlength['minuserlength'] . '";
var ajaxreg_name_usernameregex = "' . $usernameregex['usernameregex'] . '";
var ajaxreg_name_inuse = "$vbphrase[ajaxreg_name_inuse]";
var ajaxreg_name_illegal = "$vbphrase[ajaxreg_name_illegal]";
var ajaxreg_name_ok = "$vbphrase[ajaxreg_name_ok]";
var ajaxreg_name_error_1 = "$vbphrase[ajaxreg_name_error_1]";
var ajaxreg_name_error_2 = "$vbphrase[ajaxreg_name_error_2]";
var ajaxreg_name_checking = "$vbphrase[ajaxreg_name_checking]";
var ajaxreg_password_error_1 = "$vbphrase[ajaxreg_password_error_1]";
var ajaxreg_password_ok = "$vbphrase[ajaxreg_password_ok]";
var ajaxreg_password_nomatch = "$vbphrase[ajaxreg_password_nomatch]";
var ajaxreg_password_match = "$vbphrase[ajaxreg_password_match]";
var ajaxreg_email_ok = "$vbphrase[ajaxreg_email_ok]";
var ajaxreg_email_nomatch = "$vbphrase[ajaxreg_email_nomatch]";
var ajaxreg_email_match = "$vbphrase[ajaxreg_email_match]";

function showStrength(strength) {
var strengthText = "";
if (strength == 0) {
strengthText = "Password Strength";
} else if (strength < 20) {
strengthText = "Very weak";
} else if (strength < 30) {
strengthText = "Weak";
} else if (strength < 60) {
strengthText = "Moderate";
} else if (strength < 85) {
strengthText = "Strong";
} else {
strengthText = "Very strong";
}
updateBar(strength, 'barMask', 'barBG', 'barText', strengthText);
}
function updateBar(val, maskId, bgId, textId, newHTML) {
barWidth = parseInt(document.getElementById(bgId).style.width );
maskWidth = barWidth - (barWidth * (val/100));
document.getElementById(maskId).style.width = maskWidth + "px";
if (!newHTML) {
document.getElementById(textId).innerHTML = Math.floor((curLeft / parseInt(document.getElementById(bgId).offsetWidth ))*100) + "%";
} else {
document.getElementById(textId).innerHTML = newHTML;
}
}
function passwordStrength(passwd, username) {
var intScore = 0;
var strLog = "";
if (passwd == username)
{
intScore = 1;
return intScore;
}
if ((passwd.length > 0) && (passwd.length <= 4))
{
intScore = 2;
strLog = strLog + "2 points for length (" + passwd.length + "); ";
}
else if ((passwd.length>=5) && (passwd.length<=7))
{
intScore = passwd.length / 0.6;
strLog = strLog + intScore + " points for length (" + passwd.length + "); ";
}
else if ((passwd.length>=8) && (passwd.length<=10))
{
intScore = (passwd.length * 1.5) / 0.6;
strLog = strLog + intScore + " points for length (" + passwd.length + "); ";
}
else if (passwd.length >= 11)
{
intScore = 25;
strLog = strLog + intScore + " points for length (" + passwd.length + "); ";
}
if (passwd.match(/[a-z]/))
{
intScore = (intScore + 2)
strLog = strLog + "2 point for at least one lower case char; "
}
if (passwd.match(/[A-Z]/))
{
intScore = (intScore + 5)
strLog = strLog + "5 point for at least one upper case char; "
}
if (passwd.match(/\d+/))
{
intScore = (intScore + 5)
strLog = strLog + "5 points for at least one number; "
}

if (passwd.match(/(.*[0-9].*[0-9].*[0-9])/))
{
intScore = (intScore + 13)
strLog = strLog + "13 points for at least three numbers; "
}
if (passwd.match(/.[!,@,#,$,%,^,&,*,?,_,~]/))
{
intScore = (intScore + 8)
strLog = strLog + "8 points for at least one special char; "
}
if (passwd.match(/(.*[!,@,#,$,%,^,&,*,?,_,~].*[!,@,#,$,%,^,&,*,?,_,~])/))
{
intScore = (intScore + 11)
strLog = strLog + "11 points for at least two special chars; "
}
if (passwd.match(/([a-z].*[A-Z])|([A-Z].*[a-z])/))
{
intScore = (intScore + 8)
strLog = strLog + "8 points for upper and lower combo; "
}
if (passwd.match(/(\d.*\D)|(\D.*\d)/))
{
intScore = (intScore + 10)
strLog = strLog + "10 points for letter and number combo; "
}
if (passwd.match(/([a-zA-Z0-9].*[!,@,#,$,%,^,&,*,?,_,~])|([!,@,#,$,%,^,&,*,?,_,~].*[a-zA-Z0-9])/))
{
intScore = (intScore + 13)
strLog = strLog + "13 points for letter, number and special char combo; "
}
return intScore;
}
function psDebug(aMsg) {
setTimeout(function() { throw new Error("[debug] " + aMsg); }, 0);
}
</script>trouvez
<input type="text" class="bginput" name="username" size="50" maxlength="$vboptions[maxuserlength]" value="$username" />remplacez par
<input type="text" class="bginput" name="username" size="25" maxlength="$vboptions[maxuserlength]" value="$username" id="username" style="width: 212px" onblur="CheckUserName();" /><span id="username_status"></span>
Trouvez
<input type="password" class="bginput" name="password" size="25" maxlength="50" value="$password" />Remplacez par :
:showStrength(passwordStrength(this.value, document.getElementById('username').value));" id="password_1"/>trouvez

<input type="password" class="bginput" name="passwordconfirm" size="25" maxlength="50" value="$passwordconfirm" />
</td>
</tr>remplacez par
<input type="password" class="bginput" name="passwordconfirm" size="25" maxlength="50" value="$passwordconfirm" onblur="varfield(2);" id="password_2" />
</td>
</tr>
<tr>
<td colspan="2">
<span id="password_1_status"></span>
</td>
</tr>
<tr>
<td colspan="2">
<span id="password_2_status"></span>
</td>
</tr>
trouvez
<input type="text" class="bginput" name="email" size="25" maxlength="50" value="$email" dir="ltr" />
remplacez avec
<input type="text" class="bginput" name="email" size="25" maxlength="50" value="$email" dir="ltr" onblur="varfield(3);" id="email_1" />
dans :template IMAGEREG
trouvez :
<input id="imagestamp" type="text" class="bginput" name="imagestamp" size="10" maxlength="6" />remplacez par
<script type="text/javascript">
var isWorking = false;
function handleHttpResponse_3() {
if (http.readyState == 4) {
if (http.responseText.indexOf('invalid') == -1) {
// Split the comma delimited response into an array
results = http.responseText.split(",");
if (results[1] == "Working") {
//document.getElementById('imagestamp').value = unescape(results[0]);
document.getElementById('imagestamp').setAttribute ("class", "inputgood");
document.getElementById('imagestamp').setAttribute ("className", "inputgood");
document.getElementById('imagestamp_status').inner HTML = "&nbsp;<img src='./images/misc/good.gif'>&nbsp;'.$vbphrase[ajaxreg_regimage_match].'";
isWorking = false;
} else {
document.getElementById('imagestamp').value = '';
document.getElementById('imagestamp').setAttribute ("class", "inputbad");
document.getElementById('imagestamp').setAttribute ("className", "inputbad");
document.getElementById('imagestamp_status').inner HTML = "&nbsp;<img src='./images/misc/bad.gif'>&nbsp; <b>" + results[0] + "</b> '.$vbphrase[ajaxreg_regimage_nomatch].'";
isWorking = false;
var poststr = "do=imagereg&imagehash=" + document.getElementById('imagehash').value;
makeajaxregRequest( 'ajax.php?do=imagereg&imagehash=' + document.getElementById('imagehash').value, poststr);
}
}
}
}
function CheckTheImageCode() {
if (!isWorking && http) {
http.open("GET", 'ajax.php?do=CheckTheImageCode&imagehash=' + document.getElementById('imagehash').value + '&imagestamp=' + document.getElementById('imagestamp').value, true);
http.onreadystatechange = handleHttpResponse_3;
isWorking = true;
http.send(null);
}
}

function makeajaxregRequest(url, parameters) {
ajaxreg_request = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
ajaxreg_request = new XMLHttpRequest();
if (ajaxreg_request.overrideMimeType) {
// set type accordingly to anticipated content type
//ajaxreg_request.overrideMimeType('text/xml');
ajaxreg_request.overrideMimeType('text/html');
}
} else if (window.ActiveXObject) { // IE
try {
ajaxreg_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
ajaxreg_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!ajaxreg_request) {
alert('Cannot create XMLHTTP instance');
return false;
}

ajaxreg_request.onreadystatechange = alertajaxregContents;
ajaxreg_request.open('POST', url, true);
ajaxreg_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
ajaxreg_request.setRequestHeader("Content-length", parameters.length);
ajaxreg_request.setRequestHeader("Connection", "close");
ajaxreg_request.send(parameters);
}
function alertajaxregContents(){
if (ajaxreg_request.readyState == 4) {
if (ajaxreg_request.status == 200) {
var imagehash = ajaxreg_request.responseText.match(/<imagehash>(.*)<\/imagehash>/);
document.getElementById('imagehash').value = imagehash[1];
document.getElementById('imagereg').src = 'image.php?type=regcheck&imagehash=' + imagehash[1];
} else {
alert('There was a problem with the request.');
}
}
}
function getHTTPObject() {
var xmlhttp;
/*@cc_on
@if (@_jscript_version >= 5)
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
@else
xmlhttp = false;
@end @*/
if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
try {
xmlhttp = new XMLHttpRequest();
} catch (e) {
xmlhttp = false;
}
}
return xmlhttp;
}
var http = getHTTPObject(); // We create the HTTP Object
</script><input id="imagestamp" type="text" class="bginput" name="imagestamp" size="10" maxlength="6" onblur="CheckTheImageCode();" /><span id="imagestamp_status"></span>http://img260.imageshack.us/img260/4805/newregisterpq3.png

lagrace
19/10/2007, 23h36
pour tester merci

Allan
20/10/2007, 20h59
Merci de cette traduction, mais la prochaine fois, demande nous si nous avons l'autorisation de l'auteur avons toute création de sujet ;)

lagrace
20/10/2007, 21h22
salut

j'ai ceci comme probleme en enregistrant le template register

L'erreur suivante s'est produite en essayant d'évaluer ce template :

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home.10.17/pandoextn/www/includes/adminfunctions_template.php(3587) : eval()'d code on line 11

Ceci a probablement été provoqué par un expression conditionnelle mal formulée. Il est fortement recommandé de corriger cette erreur avant de continuer. Vous pouvez néanmoins ignorer cet avertissement et continuer.

Ombre
20/10/2007, 21h30
Tu as tout simplement mal modifié ce fichier :) vérifies mieux...

BalHack
20/10/2007, 21h37
salut

j'ai ceci comme probleme en enregistrant le template register

L'erreur suivante s'est produite en essayant d'évaluer ce template :

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home.10.17/pandoextn/www/includes/adminfunctions_template.php(3587) : eval()'d code on line 11

Ceci a probablement été provoqué par un expression conditionnelle mal formulée. Il est fortement recommandé de corriger cette erreur avant de continuer. Vous pouvez néanmoins ignorer cet avertissement et continuer.

Salut, lagrace essaye ça

recherche
var ajaxreg_name_minuserlength = "' . $minuserlength['minuserlength'] . '"; remplace par
var ajaxreg_name_minuserlength = "' . $minuserlength[minuserlength] . '";ensuite la ligne en dessous, ou recherche

var ajaxreg_name_usernameregex = "' . $usernameregex['usernameregex'] . '";Remplace par
var ajaxreg_name_usernameregex = "' . $usernameregex[usernameregex] . '";Je pense que cela devrait être mieux :) A vérifié
Je pense que ça vient de là mais si c'est pas ça, je regarderai de plus près
Merci M-spooky

M-spooky
20/10/2007, 22h27
Merci de cette traduction, mais la prochaine fois, demande nous si nous avons l'autorisation de l'auteur avons toute création de sujet ;)Je lui ai demandé sa avant ::
---------------------------------------------------------------------------------------------------------------
Ben c'est mon premier hack traduit , Si il ya des Bugs . J'essayerai de les reparer

Ombre
20/10/2007, 23h03
Tu n as pas compris il me semble, quand Allan te demande de nous le demander, c est a nous et pas a son auteur, a la base seul Allan a aurité sur vb-r pour en faire la demande, sauf si le hack est sous une licence libre de droit et de partage, bien sur a nous justifié au passage :)

par contre pour ton installe, je vois trouver cela et remplacer par cela ... souvent les codes son identique, est ce normal ??

M-spooky
20/10/2007, 23h31
Tu n as pas compris il me semble, quand Allan te demande de nous le demander, c est a nous et pas a son auteur, a la base seul Allan a aurité sur vb-r pour en faire la demande, sauf si le hack est sous une licence libre de droit et de partage, bien sur a nous justifié au passage :)

par contre pour ton installe, je vois trouver cela et remplacer par cela ... souvent les codes son identique, est ce normal ??
Erreurs template Reparées
MErci de l'avoir signalé

lagrace
21/10/2007, 00h33
salut

je vient de regarder l'original sur vb.org et ca ne correspond aucunement les modifs templates de la mon erreur merci de bien regarder et de réparer cela pour ceux que ca interesse merci


ps: sait le meme que le hack que sofia a posté ici http://www.vbulletin-ressources.com/forum/showthread.php?t=4194

LittleBigTouff
21/10/2007, 01h56
salut

je vient de regarder l'original sur vb.org et ca ne correspond aucunement les modifs templates de la mon erreur merci de bien regarder et de réparer cela pour ceux que ca interesse merci


ps: sait le meme que le hack que sofia a posté ici [vB 3.6.5] Amélioration des inscriptions (Ajax) - vBulletin-Ressources (http://www.vbulletin-ressources.com/forum/showthread.php?t=4194)

Il se ressemble mais ne sont pas tout a fait pareil dans celui ci, on peut voir le niveaux de sécurité du mot de passe alors que dans celui qu'a traduit sofia, il n'y pas cette fonction ;)