Inscription: plus de mail envoyer pour approbation [Réglé]
Un problème récent apparemment
Support Général
Hervé-PCS Membre non connecté
Booster Bazooka
-
Booster Bazooka
- Voir le profil du membre Hervé-PCS
- Inscrit le : 18/08/2008
- Site internet
On vient de m'avertir que les mails de confirmation d'inscription ne sont plus envoyés, ce qui rend impossible la validation du compte.
En regardant l'administration je vois des erreurs apparaître
Remarque : Undefined index: verif_code_difficulty
Ligne 125 : register.php
Remarque : Undefined index: verif_code_difficulty
Ligne 73 : register_valid.php
Voici le register.php
Caché :
<?php
/*##################################################
* register.php
* -------------------
* begin : August 04 2005
* copyright : (C) 2005 Viarre Régis
* email : crowkait@phpboost.com
*
*
*
###################################################
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
###################################################*/
require_once('../kernel/begin.php');
define('TITLE', $LANG['title_register']);
require_once('../kernel/header.php');
$Cache->load('member');
if (!$CONFIG_USER['activ_register'])
redirect(get_start_page());
$key = retrieve(GET, 'key', '');
$get_error = retrieve(GET, 'error', '');
$get_erroru = retrieve(GET, 'erroru', '');
$register_valid = retrieve(POST, 'register_valid', '');
$register_confirm = retrieve(POST, 'confirm', '');
if (empty($key))
{
if (!$User->check_level(MEMBER_LEVEL) && !empty($CONFIG_USER['msg_register']) && empty($register_confirm) && empty($get_error) && empty($get_erroru))
{
$Template->set_filenames(array(
'register' => 'member/register.tpl'
));
$Template->assign_vars(array(
'C_CONFIRM_REGISTER' => true,
'L_HAVE_TO_ACCEPT' => !empty($register_valid) ? $LANG['register_have_to_accept'] : '',
'MSG_REGISTER' => second_parse($CONFIG_USER['msg_register']),
'L_REGISTER' => $LANG['register'],
'L_REGISTRATION_TERMS' => $LANG['register_terms'],
'L_ACCEPT' => $LANG['register_accept'],
'L_SUBMIT' => $LANG['submit']
));
$Template->pparse('register');
}
elseif ($User->check_level(MEMBER_LEVEL) !== true && (!empty($register_confirm) || empty($CONFIG_USER['msg_register']) || !empty($get_error) || !empty($get_erroru)))
{
$Template->set_filenames(array(
'register' => 'member/register.tpl'
));
//Gestion des erreurs.
switch ($get_error)
{
case 'verif_code':
$errstr = $LANG['e_incorrect_verif_code'];
break;
case 'lenght_mini':
$errstr = $LANG['pseudo_how'] . ', ' . $LANG['password_how'];
break;
case 'pass_same':
$errstr = $LANG['e_pass_same'];
break;
case 'incomplete':
$errstr = $LANG['e_incomplete'];
break;
case 'invalid_mail':
$errstr = $LANG['e_mail_invalid'];
break;
case 'pseudo_auth':
$errstr = $LANG['e_pseudo_auth'];
break;
case 'mail_auth':
$errstr = $LANG['e_mail_auth'];
break;
default:
$errstr = '';
}
if (!empty($errstr))
$Errorh->handler($errstr, E_USER_NOTICE);
if (isset($LANG[$get_erroru]))
$Errorh->handler($LANG[$get_erroru], E_USER_WARNING);
$Template->assign_vars(array(
'C_REGISTER' => true
));
//Mode d'activation du membre.
if ($CONFIG_USER['activ_mbr'] == '1')
{
$Template->assign_block_vars('activ_mbr', array(
'L_ACTIV_MBR' => $LANG['activ_mbr_mail']
));
}
elseif ($CONFIG_USER['activ_mbr'] == '2')
{
$Template->assign_block_vars('activ_mbr', array(
'L_ACTIV_MBR' => $LANG['activ_mbr_admin']
));
}
//Code de vérification, anti-bots.
import('util/captcha');
$Captcha = new Captcha();
if ($Captcha->is_available() && $CONFIG_USER['verif_code'] == '1')
{
$Captcha->set_difficulty($CONFIG_USER['verif_code_difficulty']);
$Template->assign_vars(array(
'C_VERIF_CODE' => true,
'VERIF_CODE' => $Captcha->display_form(),
'L_REQUIRE_VERIF_CODE' => $Captcha->js_require()
));
}
//Autorisation d'uploader un avatar sur le serveur.
if ($CONFIG_USER['activ_up_avatar'] == 1)
{
$Template->assign_block_vars('upload_avatar', array(
'WEIGHT_MAX' => $CONFIG_USER['weight_max'],
'HEIGHT_MAX' => $CONFIG_USER['height_max'],
'WIDTH_MAX' => $CONFIG_USER['width_max']
));
}
//Gestion langue par défaut.
$array_identifier = '';
$lang_identifier = '../images/stats/other.png';
foreach($LANGS_CONFIG as $lang => $array_info)
{
if ($array_info['secure'] == -1)
{
$info_lang = load_ini_file('../lang/', $lang);
$selected = '';
if ($CONFIG['lang'] == $lang)
{
$selected = ' selected="selected"';
$lang_identifier = '../images/stats/countries/' . $info_lang['identifier'] . '.png';
}
$array_identifier .= 'array_identifier['' . $lang . ''] = '' . $info_lang['identifier'] . '';' . "n";
$Template->assign_block_vars('select_lang', array(
'NAME' => !empty($info_lang['name']) ? $info_lang['name'] : $lang,
'IDNAME' => $lang,
'SELECTED' => $selected
));
}
}
//Gestion éditeur par défaut.
$editors = array('bbcode' => 'BBCode', 'tinymce' => 'Tinymce');
$select_editors = '';
foreach ($editors as $code => $name)
{
$selected = ($code == $CONFIG['editor']) ? 'selected="selected"' : '';
$select_editors .= '<option value="' . $code . '" ' . $selected . '>' . $name . '</option>';
}
//Gestion fuseau horaire par défaut.
$select_timezone = '';
for ($i = -12; $i <= 14; $i++)
{
$selected = ($i == $CONFIG['timezone']) ? 'selected="selected"' : '';
$name = (!empty($i) ? ($i > 0 ? ' + ' . $i : ' - ' . -$i) : '');
$select_timezone .= '<option value="' . $i . '" ' . $selected . '> [GMT' . $name . ']</option>';
}
$Template->assign_vars(array(
'JS_LANG_IDENTIFIER' => $array_identifier,
'IMG_LANG_IDENTIFIER' => $lang_identifier,
'SELECT_EDITORS' => $select_editors,
'SELECT_TIMEZONE' => $select_timezone,
'L_REQUIRE_MAIL' => $LANG['require_mail'],
'L_REQUIRE_PSEUDO' => $LANG['require_pseudo'],
'L_REQUIRE_PASSWORD' => $LANG['require_password'],
'L_REGISTER' => $LANG['register'],
'L_REQUIRE' => $LANG['require'],
'L_PASSWORD_SAME' => $LANG['e_pass_same'],
'L_MAIL_INVALID' => $LANG['e_mail_invalid'],
'L_PSEUDO_AUTH' => $LANG['e_pseudo_auth'],
'L_MAIL_AUTH' => $LANG['e_mail_auth'],
'L_MAIL' => $LANG['mail'],
'L_VALID' => $LANG['valid'],
'L_PSEUDO' => $LANG['pseudo'],
'L_PSEUDO_HOW' => $LANG['pseudo_how'],
'L_PASSWORD' => $LANG['password'],
'L_PASSWORD_HOW' => $LANG['password_how'],
'L_CONFIRM_PASSWORD' => $LANG['confirm_password'],
'L_VERIF_CODE' => $LANG['verif_code'],
'L_VERIF_CODE_EXPLAIN' => $LANG['verif_code_explain'],
'L_LANG_CHOOSE' => $LANG['choose_lang'],
'L_OPTIONS' => $LANG['options'],
'L_THEME_CHOOSE' => $LANG['choose_theme'],
'L_EDITOR_CHOOSE' => $LANG['choose_editor'],
'L_TIMEZONE_CHOOSE' => $LANG['timezone_choose'],
'L_TIMEZONE_CHOOSE_EXPLAIN' => $LANG['timezone_choose_explain'],
'L_HIDE_MAIL' => $LANG['hide_mail'],
'L_HIDE_MAIL_WHO' => $LANG['hide_mail_who'],
'L_INFO' => $LANG['info'],
'L_WEB_SITE' => $LANG['web_site'],
'L_LOCALISATION' => $LANG['localisation'],
'L_JOB' => $LANG['job'],
'L_HOBBIES' => $LANG['hobbies'],
'L_SEX' => $LANG['sex'],
'L_MALE' => $LANG['male'],
'L_FEMALE' => $LANG['female'],
'L_DATE_OF_BIRTH' => $LANG['date_of_birth'],
'L_DATE_FORMAT' => $LANG['date_birth_format'],
'L_SIGN' => $LANG['sign'],
'L_SIGN_WHERE' => $LANG['sign_where'],
'L_CONTACT' => $LANG['contact'],
'L_AVATAR_MANAGEMENT' => $LANG['avatar_gestion'],
'L_AVATAR_LINK' => $LANG['avatar_link'],
'L_AVATAR_LINK_WHERE' => $LANG['avatar_link_where'],
'L_WEIGHT_MAX' => $LANG['weight_max'],
'L_UPLOAD_AVATAR' => $LANG['upload_avatar'],
'L_UPLOAD_AVATAR_WHERE' => $LANG['upload_avatar_where'],
'L_SUBMIT' => $LANG['submit'],
'L_PREVIOUS_PASS' => $LANG['previous_password'],
'L_EDIT_JUST_IF_MODIF' => $LANG['fill_only_if_modified'],
'L_NEW_PASS' => $LANG['new_password'],
'L_CONFIRM_PASS' => $LANG['confirm_password'],
'L_LANG_CHOOSE' => $LANG['choose_lang'],
'L_HIDE_MAIL' => $LANG['hide_mail'],
'L_HIDE_MAIL_WHO' => $LANG['hide_mail_who'],
'L_INFO' => $LANG['info'],
'L_SITE_WEB' => $LANG['web_site'],
'L_LOCALISATION' => $LANG['localisation'],
'L_HEIGHT_MAX' => $LANG['height_max'],
'L_WIDTH_MAX' => $LANG['width_max']
));
//Gestion thème par défaut.
if ($CONFIG_USER['force_theme'] == 0) //Thèmes aux membres autorisés.
{
foreach($THEME_CONFIG as $theme => $array_info)
{
if ($CONFIG['theme'] == $theme || ($array_info['secure'] == -1 && $theme != 'default'))
{
$selected = ($CONFIG['theme'] == $theme) ? ' selected="selected"' : '';
$info_theme = load_ini_file('../templates/' . $theme . '/config/', $CONFIG['lang']);
$Template->assign_block_vars('select_theme', array(
'NAME' => $info_theme['name'],
'IDNAME' => $theme,
'SELECTED' => $selected
));
}
}
}
else //Thème par défaut forcé.
{
$theme_info = load_ini_file('/config/', get_ulang());
$Template->assign_block_vars('select_theme', array(
'NAME' => !empty($theme_info['name']) ? $theme_info['name'] : $CONFIG['theme'],
'IDNAME' => $CONFIG['theme']
));
}
//Champs supplémentaires.
$extend_field_exist = $Sql->query("SELECT COUNT(*) FROM " . DB_TABLE_MEMBER_EXTEND_CAT . " WHERE display = 1", __LINE__, __FILE__);
if ($extend_field_exist > 0)
{
$Template->assign_vars(array(
'L_MISCELLANEOUS' => $LANG['miscellaneous']
));
$Template->assign_block_vars('miscellaneous', array(
));
$result = $Sql->query_while("SELECT exc.name, exc.contents, exc.field, exc.required, exc.field_name, exc.possible_values, exc.default_values
FROM " . DB_TABLE_MEMBER_EXTEND_CAT . " AS exc
WHERE exc.display = 1
ORDER BY exc.class", __LINE__, __FILE__);
while ($row = $Sql->fetch_assoc($result))
{
// field: 0 => base de données, 1 => text, 2 => textarea, 3 => select, 4 => select multiple, 5=> radio, 6 => checkbox
$field = '';
switch ($row['field'])
{
case 1:
$field = '<input type="text" size="30" name="' . $row['field_name'] . '" id="' . $row['field_name'] . '" class="text" value="' . $row['default_values'] . '" />';
break;
case 2:
$field = '<textarea class="post" rows="4" cols="27" name="' . $row['field_name'] . '" id="' . $row['field_name'] . '">' . unparse($row['default_values']) . '</textarea>';
break;
case 3:
$field = '<select name="' . $row['field_name'] . '" id="' . $row['field_name'] . '">';
$array_values = explode('|', $row['possible_values']);
$i = 0;
foreach ($array_values as $values)
{
$selected = ($values == $row['default_values']) ? 'selected="selected"' : '';
$field .= '<option name="' . $row['field_name'] . '_' . $i . '" value="' . $values . '" ' . $selected . '/> ' . ucfirst($values) . '</option>';
$i++;
}
$field .= '</select>';
break;
case 4:
$field = '<select name="' . $row['field_name'] . '[]" multiple="multiple" id="' . $row['field_name'] . '">';
$array_values = explode('|', $row['possible_values']);
$array_default_values = explode('|', $row['default_values']);
$i = 0;
foreach ($array_values as $values)
{
$selected = in_array($values, $array_default_values) ? 'selected="selected"' : '';
$field .= '<option name="' . $row['field_name'] . '_' . $i . '" value="' . $values . '" ' . $selected . '/> ' . ucfirst($values) . '</option>';
$i++;
}
$field .= '</select>';
break;
case 5:
$array_values = explode('|', $row['possible_values']);
foreach ($array_values as $values)
{
$checked = ($values == $row['default_values']) ? 'checked="checked"' : '';
$field .= '<input type="radio" name="' . $row['field_name'] . '" id="' . $row['field_name'] . '" value="' . $values . '" ' . $checked . ' /> ' . ucfirst($values) . '
';
}
break;
case 6:
$array_values = explode('|', $row['possible_values']);
$array_default_values = explode('|', $row['default_values']);
$i = 0;
foreach ($array_values as $values)
{
$checked = in_array($values, $array_default_values) ? 'checked="checked"' : '';
$field .= '<input type="checkbox" name="' . $row['field_name'] . '_' . $i . '" value="' . $values . '" ' . $checked . '/> ' . ucfirst($values) . '
';
$i++;
}
break;
}
if ($row['required'])
{
$Template->assign_block_vars('miscellaneous_js_list', array(
'L_REQUIRED' => sprintf($LANG['required_field'], ucfirst($row['name'])),
'ID' => $row['field_name']
));
}
$Template->assign_block_vars('miscellaneous.list', array(
'NAME' => $row['required'] ? '* ' . ucfirst($row['name']) : ucfirst($row['name']),
'ID' => $row['field_name'],
'DESC' => !empty($row['contents']) ? ucfirst($row['contents']) : '',
'FIELD' => $field
));
}
$Sql->query_close($result);
}
$Template->pparse('register');
}
else
redirect(get_start_page());
}
elseif (!empty($key) && $User->check_level(MEMBER_LEVEL) !== true) //Activation du compte membre
{
$Template->set_filenames(array(
'register' => 'member/register.tpl'
));
$Template->assign_vars(array(
'C_ACTIVATION_REGISTER' => true
));
$check_mbr = $Sql->query("SELECT COUNT(*) as compt FROM " . DB_TABLE_MEMBER . " WHERE activ_pass = '" . $key . "'", __LINE__, __FILE__);
if ($check_mbr == '1') //Activation du compte.
{
$Sql->query_inject("UPDATE " . DB_TABLE_MEMBER . " SET user_aprob = 1, activ_pass = '' WHERE activ_pass = '" . $key . "'", __LINE__, __FILE__);
$Template->assign_vars(array(
'L_REGISTER' => $LANG['register'],
'L_ACTIVATION_REPORT' => $LANG['activ_mbr_mail_success']
));
}
else
{
$Template->assign_vars(array(
'L_REGISTER' => $LANG['register'],
'L_ACTIVATION_REPORT' => $LANG['activ_mbr_mail_error']
));
}
$Template->pparse('register');
}
else
redirect(get_start_page());
require_once('../kernel/footer.php');
?>
/*##################################################
* register.php
* -------------------
* begin : August 04 2005
* copyright : (C) 2005 Viarre Régis
* email : crowkait@phpboost.com
*
*
*
###################################################
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
###################################################*/
require_once('../kernel/begin.php');
define('TITLE', $LANG['title_register']);
require_once('../kernel/header.php');
$Cache->load('member');
if (!$CONFIG_USER['activ_register'])
redirect(get_start_page());
$key = retrieve(GET, 'key', '');
$get_error = retrieve(GET, 'error', '');
$get_erroru = retrieve(GET, 'erroru', '');
$register_valid = retrieve(POST, 'register_valid', '');
$register_confirm = retrieve(POST, 'confirm', '');
if (empty($key))
{
if (!$User->check_level(MEMBER_LEVEL) && !empty($CONFIG_USER['msg_register']) && empty($register_confirm) && empty($get_error) && empty($get_erroru))
{
$Template->set_filenames(array(
'register' => 'member/register.tpl'
));
$Template->assign_vars(array(
'C_CONFIRM_REGISTER' => true,
'L_HAVE_TO_ACCEPT' => !empty($register_valid) ? $LANG['register_have_to_accept'] : '',
'MSG_REGISTER' => second_parse($CONFIG_USER['msg_register']),
'L_REGISTER' => $LANG['register'],
'L_REGISTRATION_TERMS' => $LANG['register_terms'],
'L_ACCEPT' => $LANG['register_accept'],
'L_SUBMIT' => $LANG['submit']
));
$Template->pparse('register');
}
elseif ($User->check_level(MEMBER_LEVEL) !== true && (!empty($register_confirm) || empty($CONFIG_USER['msg_register']) || !empty($get_error) || !empty($get_erroru)))
{
$Template->set_filenames(array(
'register' => 'member/register.tpl'
));
//Gestion des erreurs.
switch ($get_error)
{
case 'verif_code':
$errstr = $LANG['e_incorrect_verif_code'];
break;
case 'lenght_mini':
$errstr = $LANG['pseudo_how'] . ', ' . $LANG['password_how'];
break;
case 'pass_same':
$errstr = $LANG['e_pass_same'];
break;
case 'incomplete':
$errstr = $LANG['e_incomplete'];
break;
case 'invalid_mail':
$errstr = $LANG['e_mail_invalid'];
break;
case 'pseudo_auth':
$errstr = $LANG['e_pseudo_auth'];
break;
case 'mail_auth':
$errstr = $LANG['e_mail_auth'];
break;
default:
$errstr = '';
}
if (!empty($errstr))
$Errorh->handler($errstr, E_USER_NOTICE);
if (isset($LANG[$get_erroru]))
$Errorh->handler($LANG[$get_erroru], E_USER_WARNING);
$Template->assign_vars(array(
'C_REGISTER' => true
));
//Mode d'activation du membre.
if ($CONFIG_USER['activ_mbr'] == '1')
{
$Template->assign_block_vars('activ_mbr', array(
'L_ACTIV_MBR' => $LANG['activ_mbr_mail']
));
}
elseif ($CONFIG_USER['activ_mbr'] == '2')
{
$Template->assign_block_vars('activ_mbr', array(
'L_ACTIV_MBR' => $LANG['activ_mbr_admin']
));
}
//Code de vérification, anti-bots.
import('util/captcha');
$Captcha = new Captcha();
if ($Captcha->is_available() && $CONFIG_USER['verif_code'] == '1')
{
$Captcha->set_difficulty($CONFIG_USER['verif_code_difficulty']);
$Template->assign_vars(array(
'C_VERIF_CODE' => true,
'VERIF_CODE' => $Captcha->display_form(),
'L_REQUIRE_VERIF_CODE' => $Captcha->js_require()
));
}
//Autorisation d'uploader un avatar sur le serveur.
if ($CONFIG_USER['activ_up_avatar'] == 1)
{
$Template->assign_block_vars('upload_avatar', array(
'WEIGHT_MAX' => $CONFIG_USER['weight_max'],
'HEIGHT_MAX' => $CONFIG_USER['height_max'],
'WIDTH_MAX' => $CONFIG_USER['width_max']
));
}
//Gestion langue par défaut.
$array_identifier = '';
$lang_identifier = '../images/stats/other.png';
foreach($LANGS_CONFIG as $lang => $array_info)
{
if ($array_info['secure'] == -1)
{
$info_lang = load_ini_file('../lang/', $lang);
$selected = '';
if ($CONFIG['lang'] == $lang)
{
$selected = ' selected="selected"';
$lang_identifier = '../images/stats/countries/' . $info_lang['identifier'] . '.png';
}
$array_identifier .= 'array_identifier['' . $lang . ''] = '' . $info_lang['identifier'] . '';' . "n";
$Template->assign_block_vars('select_lang', array(
'NAME' => !empty($info_lang['name']) ? $info_lang['name'] : $lang,
'IDNAME' => $lang,
'SELECTED' => $selected
));
}
}
//Gestion éditeur par défaut.
$editors = array('bbcode' => 'BBCode', 'tinymce' => 'Tinymce');
$select_editors = '';
foreach ($editors as $code => $name)
{
$selected = ($code == $CONFIG['editor']) ? 'selected="selected"' : '';
$select_editors .= '<option value="' . $code . '" ' . $selected . '>' . $name . '</option>';
}
//Gestion fuseau horaire par défaut.
$select_timezone = '';
for ($i = -12; $i <= 14; $i++)
{
$selected = ($i == $CONFIG['timezone']) ? 'selected="selected"' : '';
$name = (!empty($i) ? ($i > 0 ? ' + ' . $i : ' - ' . -$i) : '');
$select_timezone .= '<option value="' . $i . '" ' . $selected . '> [GMT' . $name . ']</option>';
}
$Template->assign_vars(array(
'JS_LANG_IDENTIFIER' => $array_identifier,
'IMG_LANG_IDENTIFIER' => $lang_identifier,
'SELECT_EDITORS' => $select_editors,
'SELECT_TIMEZONE' => $select_timezone,
'L_REQUIRE_MAIL' => $LANG['require_mail'],
'L_REQUIRE_PSEUDO' => $LANG['require_pseudo'],
'L_REQUIRE_PASSWORD' => $LANG['require_password'],
'L_REGISTER' => $LANG['register'],
'L_REQUIRE' => $LANG['require'],
'L_PASSWORD_SAME' => $LANG['e_pass_same'],
'L_MAIL_INVALID' => $LANG['e_mail_invalid'],
'L_PSEUDO_AUTH' => $LANG['e_pseudo_auth'],
'L_MAIL_AUTH' => $LANG['e_mail_auth'],
'L_MAIL' => $LANG['mail'],
'L_VALID' => $LANG['valid'],
'L_PSEUDO' => $LANG['pseudo'],
'L_PSEUDO_HOW' => $LANG['pseudo_how'],
'L_PASSWORD' => $LANG['password'],
'L_PASSWORD_HOW' => $LANG['password_how'],
'L_CONFIRM_PASSWORD' => $LANG['confirm_password'],
'L_VERIF_CODE' => $LANG['verif_code'],
'L_VERIF_CODE_EXPLAIN' => $LANG['verif_code_explain'],
'L_LANG_CHOOSE' => $LANG['choose_lang'],
'L_OPTIONS' => $LANG['options'],
'L_THEME_CHOOSE' => $LANG['choose_theme'],
'L_EDITOR_CHOOSE' => $LANG['choose_editor'],
'L_TIMEZONE_CHOOSE' => $LANG['timezone_choose'],
'L_TIMEZONE_CHOOSE_EXPLAIN' => $LANG['timezone_choose_explain'],
'L_HIDE_MAIL' => $LANG['hide_mail'],
'L_HIDE_MAIL_WHO' => $LANG['hide_mail_who'],
'L_INFO' => $LANG['info'],
'L_WEB_SITE' => $LANG['web_site'],
'L_LOCALISATION' => $LANG['localisation'],
'L_JOB' => $LANG['job'],
'L_HOBBIES' => $LANG['hobbies'],
'L_SEX' => $LANG['sex'],
'L_MALE' => $LANG['male'],
'L_FEMALE' => $LANG['female'],
'L_DATE_OF_BIRTH' => $LANG['date_of_birth'],
'L_DATE_FORMAT' => $LANG['date_birth_format'],
'L_SIGN' => $LANG['sign'],
'L_SIGN_WHERE' => $LANG['sign_where'],
'L_CONTACT' => $LANG['contact'],
'L_AVATAR_MANAGEMENT' => $LANG['avatar_gestion'],
'L_AVATAR_LINK' => $LANG['avatar_link'],
'L_AVATAR_LINK_WHERE' => $LANG['avatar_link_where'],
'L_WEIGHT_MAX' => $LANG['weight_max'],
'L_UPLOAD_AVATAR' => $LANG['upload_avatar'],
'L_UPLOAD_AVATAR_WHERE' => $LANG['upload_avatar_where'],
'L_SUBMIT' => $LANG['submit'],
'L_PREVIOUS_PASS' => $LANG['previous_password'],
'L_EDIT_JUST_IF_MODIF' => $LANG['fill_only_if_modified'],
'L_NEW_PASS' => $LANG['new_password'],
'L_CONFIRM_PASS' => $LANG['confirm_password'],
'L_LANG_CHOOSE' => $LANG['choose_lang'],
'L_HIDE_MAIL' => $LANG['hide_mail'],
'L_HIDE_MAIL_WHO' => $LANG['hide_mail_who'],
'L_INFO' => $LANG['info'],
'L_SITE_WEB' => $LANG['web_site'],
'L_LOCALISATION' => $LANG['localisation'],
'L_HEIGHT_MAX' => $LANG['height_max'],
'L_WIDTH_MAX' => $LANG['width_max']
));
//Gestion thème par défaut.
if ($CONFIG_USER['force_theme'] == 0) //Thèmes aux membres autorisés.
{
foreach($THEME_CONFIG as $theme => $array_info)
{
if ($CONFIG['theme'] == $theme || ($array_info['secure'] == -1 && $theme != 'default'))
{
$selected = ($CONFIG['theme'] == $theme) ? ' selected="selected"' : '';
$info_theme = load_ini_file('../templates/' . $theme . '/config/', $CONFIG['lang']);
$Template->assign_block_vars('select_theme', array(
'NAME' => $info_theme['name'],
'IDNAME' => $theme,
'SELECTED' => $selected
));
}
}
}
else //Thème par défaut forcé.
{
$theme_info = load_ini_file('/config/', get_ulang());
$Template->assign_block_vars('select_theme', array(
'NAME' => !empty($theme_info['name']) ? $theme_info['name'] : $CONFIG['theme'],
'IDNAME' => $CONFIG['theme']
));
}
//Champs supplémentaires.
$extend_field_exist = $Sql->query("SELECT COUNT(*) FROM " . DB_TABLE_MEMBER_EXTEND_CAT . " WHERE display = 1", __LINE__, __FILE__);
if ($extend_field_exist > 0)
{
$Template->assign_vars(array(
'L_MISCELLANEOUS' => $LANG['miscellaneous']
));
$Template->assign_block_vars('miscellaneous', array(
));
$result = $Sql->query_while("SELECT exc.name, exc.contents, exc.field, exc.required, exc.field_name, exc.possible_values, exc.default_values
FROM " . DB_TABLE_MEMBER_EXTEND_CAT . " AS exc
WHERE exc.display = 1
ORDER BY exc.class", __LINE__, __FILE__);
while ($row = $Sql->fetch_assoc($result))
{
// field: 0 => base de données, 1 => text, 2 => textarea, 3 => select, 4 => select multiple, 5=> radio, 6 => checkbox
$field = '';
switch ($row['field'])
{
case 1:
$field = '<input type="text" size="30" name="' . $row['field_name'] . '" id="' . $row['field_name'] . '" class="text" value="' . $row['default_values'] . '" />';
break;
case 2:
$field = '<textarea class="post" rows="4" cols="27" name="' . $row['field_name'] . '" id="' . $row['field_name'] . '">' . unparse($row['default_values']) . '</textarea>';
break;
case 3:
$field = '<select name="' . $row['field_name'] . '" id="' . $row['field_name'] . '">';
$array_values = explode('|', $row['possible_values']);
$i = 0;
foreach ($array_values as $values)
{
$selected = ($values == $row['default_values']) ? 'selected="selected"' : '';
$field .= '<option name="' . $row['field_name'] . '_' . $i . '" value="' . $values . '" ' . $selected . '/> ' . ucfirst($values) . '</option>';
$i++;
}
$field .= '</select>';
break;
case 4:
$field = '<select name="' . $row['field_name'] . '[]" multiple="multiple" id="' . $row['field_name'] . '">';
$array_values = explode('|', $row['possible_values']);
$array_default_values = explode('|', $row['default_values']);
$i = 0;
foreach ($array_values as $values)
{
$selected = in_array($values, $array_default_values) ? 'selected="selected"' : '';
$field .= '<option name="' . $row['field_name'] . '_' . $i . '" value="' . $values . '" ' . $selected . '/> ' . ucfirst($values) . '</option>';
$i++;
}
$field .= '</select>';
break;
case 5:
$array_values = explode('|', $row['possible_values']);
foreach ($array_values as $values)
{
$checked = ($values == $row['default_values']) ? 'checked="checked"' : '';
$field .= '<input type="radio" name="' . $row['field_name'] . '" id="' . $row['field_name'] . '" value="' . $values . '" ' . $checked . ' /> ' . ucfirst($values) . '
';
}
break;
case 6:
$array_values = explode('|', $row['possible_values']);
$array_default_values = explode('|', $row['default_values']);
$i = 0;
foreach ($array_values as $values)
{
$checked = in_array($values, $array_default_values) ? 'checked="checked"' : '';
$field .= '<input type="checkbox" name="' . $row['field_name'] . '_' . $i . '" value="' . $values . '" ' . $checked . '/> ' . ucfirst($values) . '
';
$i++;
}
break;
}
if ($row['required'])
{
$Template->assign_block_vars('miscellaneous_js_list', array(
'L_REQUIRED' => sprintf($LANG['required_field'], ucfirst($row['name'])),
'ID' => $row['field_name']
));
}
$Template->assign_block_vars('miscellaneous.list', array(
'NAME' => $row['required'] ? '* ' . ucfirst($row['name']) : ucfirst($row['name']),
'ID' => $row['field_name'],
'DESC' => !empty($row['contents']) ? ucfirst($row['contents']) : '',
'FIELD' => $field
));
}
$Sql->query_close($result);
}
$Template->pparse('register');
}
else
redirect(get_start_page());
}
elseif (!empty($key) && $User->check_level(MEMBER_LEVEL) !== true) //Activation du compte membre
{
$Template->set_filenames(array(
'register' => 'member/register.tpl'
));
$Template->assign_vars(array(
'C_ACTIVATION_REGISTER' => true
));
$check_mbr = $Sql->query("SELECT COUNT(*) as compt FROM " . DB_TABLE_MEMBER . " WHERE activ_pass = '" . $key . "'", __LINE__, __FILE__);
if ($check_mbr == '1') //Activation du compte.
{
$Sql->query_inject("UPDATE " . DB_TABLE_MEMBER . " SET user_aprob = 1, activ_pass = '' WHERE activ_pass = '" . $key . "'", __LINE__, __FILE__);
$Template->assign_vars(array(
'L_REGISTER' => $LANG['register'],
'L_ACTIVATION_REPORT' => $LANG['activ_mbr_mail_success']
));
}
else
{
$Template->assign_vars(array(
'L_REGISTER' => $LANG['register'],
'L_ACTIVATION_REPORT' => $LANG['activ_mbr_mail_error']
));
}
$Template->pparse('register');
}
else
redirect(get_start_page());
require_once('../kernel/footer.php');
?>
voici le register_valid.php
Caché :
<?php
/*##################################################
* register_valid.php
* -------------------
* begin : August 04 2005
* copyright : (C) 2005 Viarre Régis
* email : crowkait@phpboost.com
*
*
*
###################################################
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
###################################################*/
require_once('../kernel/begin.php');
define('TITLE', $LANG['title_register']);
require_once('../kernel/header.php');
$Cache->load('member');
if (!$CONFIG_USER['activ_register'])
redirect(get_start_page());
$user_mail = strtolower(retrieve(POST, 'mail', ''));
$valid = retrieve(POST, 'valid', false);
if ($valid && !empty($user_mail) && check_mail($user_mail))
{
//Info de connexion
$login = !empty($_POST['log']) ? strprotect(substr($_POST['log'], 0, 25)) : '';
$password = retrieve(POST, 'pass', '', TSTRING_UNCHANGE);
$password_hash = strhash($password);
$password_bis = retrieve(POST, 'pass_bis', '', TSTRING_UNCHANGE);
$password_bis_hash = strhash($password_bis);
//Configuration
$user_show_mail = retrieve(POST, 'user_show_mail', 0) ? 1 : 0;
$user_lang = retrieve(POST, 'user_lang', '');
$user_theme = retrieve(POST, 'user_theme', '');
$user_editor = retrieve(POST, 'user_editor', '');
$user_timezone = retrieve(POST, 'user_timezone', 0);
//Informations.
$user_avatar = retrieve(POST, 'user_avatar', '');
$user_local = retrieve(POST, 'user_local', '');
$user_occupation = retrieve(POST, 'user_occupation', '');
$user_hobbies = retrieve(POST, 'user_hobbies', '');
$user_desc = retrieve(POST, 'user_desc', '', TSTRING_PARSE);
$user_sex = retrieve(POST, 'user_sex', 0);
$user_sign = retrieve(POST, 'user_sign', '', TSTRING_PARSE);
$user_msn = retrieve(POST, 'user_msn', '');
$user_yahoo = retrieve(POST, 'user_yahoo', '');
$user_web = retrieve(POST, 'user_web', '');
//Gestion de la date de naissance.
$user_born = strtodate(retrieve(POST, 'user_born', '0'), $LANG['date_birth_parse']);
//Code de vérification si activé
import('util/captcha');
$Captcha = new Captcha();
$Captcha->set_difficulty($CONFIG_USER['verif_code_difficulty']);
if (!($CONFIG_USER['verif_code'] == '1') || $Captcha->is_valid()) //Code de vérification si activé
{
if (strlen($login) >= 3 && strlen($password) >= 6 && strlen($password_bis) >= 6)
{
if (!empty($login) && !empty($user_mail) && $password_hash === $password_bis_hash)
{
####Vérification de la validité de l'avatar####
$user_avatar = '';
//Gestion upload d'avatar.
$dir = '../images/avatars/';
import('io/upload');
$Upload = new Upload($dir);
if (is_writable($dir) && $CONFIG_USER['activ_up_avatar'] == 1)
{
if ($_FILES['avatars']['size'] > 0)
{
$Upload->file('avatars', '`([a-z0-9()_-])+.(jpg|gif|png|bmp)+$`i', UNIQ_NAME, $CONFIG_USER['weight_max']*1024);
if (!empty($Upload->error)) //Erreur, on arrête ici
redirect(HOST . DIR . '/member/register' . url('.php?erroru=' . $Upload->error) . '#errorh');
else
{
$path = $dir . $Upload->filename['avatars'];
$error = $Upload->validate_img($path, $CONFIG_USER['width_max'], $CONFIG_USER['height_max'], DELETE_ON_ERROR);
if (!empty($error)) //Erreur, on arrête ici
redirect(HOST . DIR . '/member/register' . url('.php?erroru=' . $error) . '#errorh');
else
$user_avatar = $path; //Avatar uploadé et validé.
}
}
}
$path = retrieve(POST, 'avatar', '');
if (!empty($path))
{
$error = $Upload->validate_img($path, $CONFIG_USER['width_max'], $CONFIG_USER['height_max'], DELETE_ON_ERROR);
if (!empty($error)) //Erreur, on arrête ici
redirect(HOST . DIR . '/member/register' . url('.php?erroru=' . $error) . '#errorh');
else
$user_avatar = $path; //Avatar posté et validé.
}
$admin_sign = $CONFIG['sign'];
$check_user = $Sql->query("SELECT COUNT(*) as compt FROM " . DB_TABLE_MEMBER . " WHERE login = '" . $login . "'", __LINE__, __FILE__);
$check_mail = $Sql->query("SELECT COUNT(*) as compt FROM " . DB_TABLE_MEMBER . " WHERE user_mail = '" . $user_mail . "'", __LINE__, __FILE__);
if ($check_user >= 1)
redirect(HOST . DIR . '/member/register' . url('.php?error=pseudo_auth') . '#errorh');
elseif ($check_mail >= 1)
redirect(HOST . DIR . '/member/register' . url('.php?error=mail_auth') . '#errorh');
else //Succes.
{
$user_aprob = ($CONFIG_USER['activ_mbr'] == 0) ? 1 : 0;
$activ_mbr = ($CONFIG_USER['activ_mbr'] == 1) ? substr(strhash(uniqid(rand(), true)), 0, 15) : ''; //Génération de la clée d'activation!
//Suppression des images des stats concernant les membres, si l'info à été modifiée.
@unlink('../cache/sex.png');
@unlink('../cache/theme.png');
$Sql->query_inject("INSERT INTO " . DB_TABLE_MEMBER . " (login,password,level,user_groups,user_lang,user_theme,user_mail,user_show_mail,user_editor,user_timezone,timestamp,user_avatar,user_msg,user_local,user_msn,user_yahoo,user_web,user_occupation,user_hobbies,user_desc,user_sex,user_born,user_sign,user_pm,user_warning,last_connect,test_connect,activ_pass,new_pass,user_ban,user_aprob)
VALUES ('" . $login . "', '" . $password_hash . "', 0, '0', '" . $user_lang . "', '" . $user_theme . "', '" . $user_mail . "', '" . $user_show_mail . "', '" . $user_editor . "', '" . $user_timezone . "', '" . time() . "', '" . $user_avatar . "', 0, '" . $user_local . "', '" . $user_msn . "', '" . $user_yahoo . "', '" . $user_web . "', '" . $user_occupation . "', '" . $user_hobbies . "', '" . $user_desc . "', '" . $user_sex . "', '" . $user_born . "', '" . $user_sign . "', 0, 0, '" . time() . "', 0, '" . $activ_mbr . "', '', 0, '" . $user_aprob . "')", __LINE__, __FILE__); //Compte membre
$last_mbr_id = $Sql->insert_id("SELECT MAX(id) FROM " . DB_TABLE_MEMBER); //Id du membre qu'on vient d'enregistrer
//Si son inscription nécessite une approbation, on en avertit l'administration au biais d'une alerte
if ($CONFIG_USER['activ_mbr'] == 2)
{
import('events/administrator_alert_service');
$alert = new AdministratorAlert();
$alert->set_entitled($LANG['member_registered_to_approbate']);
$alert->set_fixing_url('admin/admin_members.php?id=' . $last_mbr_id);
//Priorité 3/5
$alert->set_priority(ADMIN_ALERT_MEDIUM_PRIORITY);
//Code pour retrouver l'alerte
$alert->set_id_in_module($last_mbr_id);
$alert->set_type('member_account_to_approbate');
//Enregistrement
AdministratorAlertService::save_alert($alert);
}
else //Régénération du cache des stats.
$Cache->Generate_file('stats');
//Champs supplémentaires.
$extend_field_exist = $Sql->query("SELECT COUNT(*) FROM " . DB_TABLE_MEMBER_EXTEND_CAT . " WHERE display = 1", __LINE__, __FILE__);
if ($extend_field_exist > 0)
{
$req_update = '';
$req_field = '';
$req_insert = '';
$result = $Sql->query_while("SELECT field_name, field, possible_values, regex, required
FROM " . DB_TABLE_MEMBER_EXTEND_CAT . "
WHERE display = 1", __LINE__, __FILE__);
while ($row = $Sql->fetch_assoc($result))
{
$field = retrieve(POST, $row['field_name'], '', TSTRING_UNCHANGE);
//Champs requis, si vide redirection.
if ($row['required'] && $row['field'] != 6 && empty($field))
redirect(HOST . DIR . '/member/register' . url('.php?error=incomplete') . '#errorh');
//Validation par expressions régulières.
if (is_numeric($row['regex']) && $row['regex'] >= 1 && $row['regex'] <= 5)
{
$array_regex = array(
1 => '`^[0-9]+$`',
2 => '`^[a-z]+$`',
3 => '`^[a-z0-9]+$`',
4 => '`^[a-z0-9._-]+@(?:[a-z0-9_-]{2,}.)+[a-z]{2,4}$`i',
5 => '`^http(s)?://[a-z0-9._/-]+.[-[:alnum:]]+.[a-zA-Z]{2,4}(.*)$`i'
);
$row['regex'] = $array_regex[$row['regex']];
}
$valid_field = true;
if (!empty($row['regex']) && $row['field'] <= 2)
{
if (@preg_match($row['regex'], $field))
$valid_field = true;
else
$valid_field = false;
}
if ($row['field'] == 2)
$field = strparse($field);
elseif ($row['field'] == 4)
{
$array_field = is_array($field) ? $field : array();
$field = '';
foreach ($array_field as $value)
$field .= strprotect($value) . '|';
}
elseif ($row['field'] == 6)
{
$field = '';
$i = 0;
$array_possible_values = explode('|', $row['possible_values']);
foreach ($array_possible_values as $value)
{
$field .= !empty($_POST[$row['field_name'] . '_' . $i]) ? addslashes($value) . '|' : '';
$i++;
}
if ($row['required'] && empty($field))
redirect(HOST . DIR . '/member/register' . url('.php?error=incomplete') . '#errorh');
}
else
$field = strprotect($field);
if (!empty($field))
{
if ($valid_field) //Validation par expression régulière si présente.
{
$req_update .= $row['field_name'] . ' = '' . trim($field, '|') . '', ';
$req_field .= $row['field_name'] . ', ';
$req_insert .= ''' . trim($field, '|') . '', ';
}
}
}
$Sql->query_close($result);
$check_member = $Sql->query("SELECT COUNT(*) FROM " . DB_TABLE_MEMBER_EXTEND . " WHERE user_id = '" . $last_mbr_id . "'", __LINE__, __FILE__);
if ($check_member && !empty($req_update))
$Sql->query_inject("UPDATE " . DB_TABLE_MEMBER_EXTEND . " SET " . trim($req_update, ', ') . " WHERE user_id = '" . $last_mbr_id . "'", __LINE__, __FILE__);
else if (!empty($req_insert))
$Sql->query_inject("INSERT INTO " . DB_TABLE_MEMBER_EXTEND . " (user_id, " . trim($req_field, ', ') . ") VALUES ('" . $last_mbr_id . "', " . trim($req_insert, ', ') . ")", __LINE__, __FILE__);
}
//Ajout du lien de confirmation par mail si activé et activation par admin désactivé.
if ($CONFIG_USER['activ_mbr'] == 1)
{
$l_register_confirm = $LANG['confirm_register'] . '
' . $LANG['register_valid_email_confirm'];
$valid = sprintf($LANG['register_valid_email'], HOST . DIR . '/member/register.php?key=' . $activ_mbr);
}
elseif ($CONFIG_USER['activ_mbr'] == 2)
{
$l_register_confirm = $LANG['confirm_register'] . '
' . $LANG['register_valid_admin'];
$valid = $LANG['register_valid_admin'];
}
else
{
$l_register_confirm = $LANG['confirm_register'] . '
' . $LANG['register_ready'];
$valid_mail = '';
$valid = '';
}
import('io/mail');
$Mail = new Mail();
$Mail->send_from_properties($user_mail, sprintf($LANG['register_title_mail'], $CONFIG['site_name']), sprintf($LANG['register_mail'], $login, $CONFIG['site_name'], $CONFIG['site_name'], stripslashes($login), $password, $valid, $CONFIG['sign']), $CONFIG['mail_exp']);
//On connecte le membre directement si aucune activation demandée.
if ($CONFIG_USER['activ_mbr'] == 0)
{
$Sql->query_inject("UPDATE " . DB_TABLE_MEMBER . " SET last_connect='" . time() . "' WHERE user_id = '" . $last_mbr_id . "'", __LINE__, __FILE__); //Remise à zéro du compteur d'essais.
$Session->start($last_mbr_id, $password, 0, SCRIPT, QUERY_STRING, TITLE, 1); //On lance la session.
}
unset($password, $password_hash);
//Affichage de la confirmation d'inscription.
redirect_confirm(get_start_page(), sprintf($l_register_confirm, stripslashes($login)), 5);
}
}
elseif (!empty($_POST['register_valid']) && $password !== $password_bis)
redirect(HOST . DIR . '/member/register' . url('.php?error=pass_same') . '#errorh');
else
redirect(HOST . DIR . '/member/register' . url('.php?error=incomplete') . '#errorh');
}
else
redirect(HOST . DIR . '/member/register' . url('.php?error=lenght_mini') . '#errorh');
}
else
redirect(HOST . DIR . '/member/register' . url('.php?error=verif_code') . '#errorh');
}
elseif (!empty($user_mail))
redirect(HOST . DIR . '/member/register' . url('.php?error=invalid_mail') . '#errorh');
else
redirect(get_start_page());
require_once('../kernel/footer.php');
?>
/*##################################################
* register_valid.php
* -------------------
* begin : August 04 2005
* copyright : (C) 2005 Viarre Régis
* email : crowkait@phpboost.com
*
*
*
###################################################
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
###################################################*/
require_once('../kernel/begin.php');
define('TITLE', $LANG['title_register']);
require_once('../kernel/header.php');
$Cache->load('member');
if (!$CONFIG_USER['activ_register'])
redirect(get_start_page());
$user_mail = strtolower(retrieve(POST, 'mail', ''));
$valid = retrieve(POST, 'valid', false);
if ($valid && !empty($user_mail) && check_mail($user_mail))
{
//Info de connexion
$login = !empty($_POST['log']) ? strprotect(substr($_POST['log'], 0, 25)) : '';
$password = retrieve(POST, 'pass', '', TSTRING_UNCHANGE);
$password_hash = strhash($password);
$password_bis = retrieve(POST, 'pass_bis', '', TSTRING_UNCHANGE);
$password_bis_hash = strhash($password_bis);
//Configuration
$user_show_mail = retrieve(POST, 'user_show_mail', 0) ? 1 : 0;
$user_lang = retrieve(POST, 'user_lang', '');
$user_theme = retrieve(POST, 'user_theme', '');
$user_editor = retrieve(POST, 'user_editor', '');
$user_timezone = retrieve(POST, 'user_timezone', 0);
//Informations.
$user_avatar = retrieve(POST, 'user_avatar', '');
$user_local = retrieve(POST, 'user_local', '');
$user_occupation = retrieve(POST, 'user_occupation', '');
$user_hobbies = retrieve(POST, 'user_hobbies', '');
$user_desc = retrieve(POST, 'user_desc', '', TSTRING_PARSE);
$user_sex = retrieve(POST, 'user_sex', 0);
$user_sign = retrieve(POST, 'user_sign', '', TSTRING_PARSE);
$user_msn = retrieve(POST, 'user_msn', '');
$user_yahoo = retrieve(POST, 'user_yahoo', '');
$user_web = retrieve(POST, 'user_web', '');
//Gestion de la date de naissance.
$user_born = strtodate(retrieve(POST, 'user_born', '0'), $LANG['date_birth_parse']);
//Code de vérification si activé
import('util/captcha');
$Captcha = new Captcha();
$Captcha->set_difficulty($CONFIG_USER['verif_code_difficulty']);
if (!($CONFIG_USER['verif_code'] == '1') || $Captcha->is_valid()) //Code de vérification si activé
{
if (strlen($login) >= 3 && strlen($password) >= 6 && strlen($password_bis) >= 6)
{
if (!empty($login) && !empty($user_mail) && $password_hash === $password_bis_hash)
{
####Vérification de la validité de l'avatar####
$user_avatar = '';
//Gestion upload d'avatar.
$dir = '../images/avatars/';
import('io/upload');
$Upload = new Upload($dir);
if (is_writable($dir) && $CONFIG_USER['activ_up_avatar'] == 1)
{
if ($_FILES['avatars']['size'] > 0)
{
$Upload->file('avatars', '`([a-z0-9()_-])+.(jpg|gif|png|bmp)+$`i', UNIQ_NAME, $CONFIG_USER['weight_max']*1024);
if (!empty($Upload->error)) //Erreur, on arrête ici
redirect(HOST . DIR . '/member/register' . url('.php?erroru=' . $Upload->error) . '#errorh');
else
{
$path = $dir . $Upload->filename['avatars'];
$error = $Upload->validate_img($path, $CONFIG_USER['width_max'], $CONFIG_USER['height_max'], DELETE_ON_ERROR);
if (!empty($error)) //Erreur, on arrête ici
redirect(HOST . DIR . '/member/register' . url('.php?erroru=' . $error) . '#errorh');
else
$user_avatar = $path; //Avatar uploadé et validé.
}
}
}
$path = retrieve(POST, 'avatar', '');
if (!empty($path))
{
$error = $Upload->validate_img($path, $CONFIG_USER['width_max'], $CONFIG_USER['height_max'], DELETE_ON_ERROR);
if (!empty($error)) //Erreur, on arrête ici
redirect(HOST . DIR . '/member/register' . url('.php?erroru=' . $error) . '#errorh');
else
$user_avatar = $path; //Avatar posté et validé.
}
$admin_sign = $CONFIG['sign'];
$check_user = $Sql->query("SELECT COUNT(*) as compt FROM " . DB_TABLE_MEMBER . " WHERE login = '" . $login . "'", __LINE__, __FILE__);
$check_mail = $Sql->query("SELECT COUNT(*) as compt FROM " . DB_TABLE_MEMBER . " WHERE user_mail = '" . $user_mail . "'", __LINE__, __FILE__);
if ($check_user >= 1)
redirect(HOST . DIR . '/member/register' . url('.php?error=pseudo_auth') . '#errorh');
elseif ($check_mail >= 1)
redirect(HOST . DIR . '/member/register' . url('.php?error=mail_auth') . '#errorh');
else //Succes.
{
$user_aprob = ($CONFIG_USER['activ_mbr'] == 0) ? 1 : 0;
$activ_mbr = ($CONFIG_USER['activ_mbr'] == 1) ? substr(strhash(uniqid(rand(), true)), 0, 15) : ''; //Génération de la clée d'activation!
//Suppression des images des stats concernant les membres, si l'info à été modifiée.
@unlink('../cache/sex.png');
@unlink('../cache/theme.png');
$Sql->query_inject("INSERT INTO " . DB_TABLE_MEMBER . " (login,password,level,user_groups,user_lang,user_theme,user_mail,user_show_mail,user_editor,user_timezone,timestamp,user_avatar,user_msg,user_local,user_msn,user_yahoo,user_web,user_occupation,user_hobbies,user_desc,user_sex,user_born,user_sign,user_pm,user_warning,last_connect,test_connect,activ_pass,new_pass,user_ban,user_aprob)
VALUES ('" . $login . "', '" . $password_hash . "', 0, '0', '" . $user_lang . "', '" . $user_theme . "', '" . $user_mail . "', '" . $user_show_mail . "', '" . $user_editor . "', '" . $user_timezone . "', '" . time() . "', '" . $user_avatar . "', 0, '" . $user_local . "', '" . $user_msn . "', '" . $user_yahoo . "', '" . $user_web . "', '" . $user_occupation . "', '" . $user_hobbies . "', '" . $user_desc . "', '" . $user_sex . "', '" . $user_born . "', '" . $user_sign . "', 0, 0, '" . time() . "', 0, '" . $activ_mbr . "', '', 0, '" . $user_aprob . "')", __LINE__, __FILE__); //Compte membre
$last_mbr_id = $Sql->insert_id("SELECT MAX(id) FROM " . DB_TABLE_MEMBER); //Id du membre qu'on vient d'enregistrer
//Si son inscription nécessite une approbation, on en avertit l'administration au biais d'une alerte
if ($CONFIG_USER['activ_mbr'] == 2)
{
import('events/administrator_alert_service');
$alert = new AdministratorAlert();
$alert->set_entitled($LANG['member_registered_to_approbate']);
$alert->set_fixing_url('admin/admin_members.php?id=' . $last_mbr_id);
//Priorité 3/5
$alert->set_priority(ADMIN_ALERT_MEDIUM_PRIORITY);
//Code pour retrouver l'alerte
$alert->set_id_in_module($last_mbr_id);
$alert->set_type('member_account_to_approbate');
//Enregistrement
AdministratorAlertService::save_alert($alert);
}
else //Régénération du cache des stats.
$Cache->Generate_file('stats');
//Champs supplémentaires.
$extend_field_exist = $Sql->query("SELECT COUNT(*) FROM " . DB_TABLE_MEMBER_EXTEND_CAT . " WHERE display = 1", __LINE__, __FILE__);
if ($extend_field_exist > 0)
{
$req_update = '';
$req_field = '';
$req_insert = '';
$result = $Sql->query_while("SELECT field_name, field, possible_values, regex, required
FROM " . DB_TABLE_MEMBER_EXTEND_CAT . "
WHERE display = 1", __LINE__, __FILE__);
while ($row = $Sql->fetch_assoc($result))
{
$field = retrieve(POST, $row['field_name'], '', TSTRING_UNCHANGE);
//Champs requis, si vide redirection.
if ($row['required'] && $row['field'] != 6 && empty($field))
redirect(HOST . DIR . '/member/register' . url('.php?error=incomplete') . '#errorh');
//Validation par expressions régulières.
if (is_numeric($row['regex']) && $row['regex'] >= 1 && $row['regex'] <= 5)
{
$array_regex = array(
1 => '`^[0-9]+$`',
2 => '`^[a-z]+$`',
3 => '`^[a-z0-9]+$`',
4 => '`^[a-z0-9._-]+@(?:[a-z0-9_-]{2,}.)+[a-z]{2,4}$`i',
5 => '`^http(s)?://[a-z0-9._/-]+.[-[:alnum:]]+.[a-zA-Z]{2,4}(.*)$`i'
);
$row['regex'] = $array_regex[$row['regex']];
}
$valid_field = true;
if (!empty($row['regex']) && $row['field'] <= 2)
{
if (@preg_match($row['regex'], $field))
$valid_field = true;
else
$valid_field = false;
}
if ($row['field'] == 2)
$field = strparse($field);
elseif ($row['field'] == 4)
{
$array_field = is_array($field) ? $field : array();
$field = '';
foreach ($array_field as $value)
$field .= strprotect($value) . '|';
}
elseif ($row['field'] == 6)
{
$field = '';
$i = 0;
$array_possible_values = explode('|', $row['possible_values']);
foreach ($array_possible_values as $value)
{
$field .= !empty($_POST[$row['field_name'] . '_' . $i]) ? addslashes($value) . '|' : '';
$i++;
}
if ($row['required'] && empty($field))
redirect(HOST . DIR . '/member/register' . url('.php?error=incomplete') . '#errorh');
}
else
$field = strprotect($field);
if (!empty($field))
{
if ($valid_field) //Validation par expression régulière si présente.
{
$req_update .= $row['field_name'] . ' = '' . trim($field, '|') . '', ';
$req_field .= $row['field_name'] . ', ';
$req_insert .= ''' . trim($field, '|') . '', ';
}
}
}
$Sql->query_close($result);
$check_member = $Sql->query("SELECT COUNT(*) FROM " . DB_TABLE_MEMBER_EXTEND . " WHERE user_id = '" . $last_mbr_id . "'", __LINE__, __FILE__);
if ($check_member && !empty($req_update))
$Sql->query_inject("UPDATE " . DB_TABLE_MEMBER_EXTEND . " SET " . trim($req_update, ', ') . " WHERE user_id = '" . $last_mbr_id . "'", __LINE__, __FILE__);
else if (!empty($req_insert))
$Sql->query_inject("INSERT INTO " . DB_TABLE_MEMBER_EXTEND . " (user_id, " . trim($req_field, ', ') . ") VALUES ('" . $last_mbr_id . "', " . trim($req_insert, ', ') . ")", __LINE__, __FILE__);
}
//Ajout du lien de confirmation par mail si activé et activation par admin désactivé.
if ($CONFIG_USER['activ_mbr'] == 1)
{
$l_register_confirm = $LANG['confirm_register'] . '
' . $LANG['register_valid_email_confirm'];
$valid = sprintf($LANG['register_valid_email'], HOST . DIR . '/member/register.php?key=' . $activ_mbr);
}
elseif ($CONFIG_USER['activ_mbr'] == 2)
{
$l_register_confirm = $LANG['confirm_register'] . '
' . $LANG['register_valid_admin'];
$valid = $LANG['register_valid_admin'];
}
else
{
$l_register_confirm = $LANG['confirm_register'] . '
' . $LANG['register_ready'];
$valid_mail = '';
$valid = '';
}
import('io/mail');
$Mail = new Mail();
$Mail->send_from_properties($user_mail, sprintf($LANG['register_title_mail'], $CONFIG['site_name']), sprintf($LANG['register_mail'], $login, $CONFIG['site_name'], $CONFIG['site_name'], stripslashes($login), $password, $valid, $CONFIG['sign']), $CONFIG['mail_exp']);
//On connecte le membre directement si aucune activation demandée.
if ($CONFIG_USER['activ_mbr'] == 0)
{
$Sql->query_inject("UPDATE " . DB_TABLE_MEMBER . " SET last_connect='" . time() . "' WHERE user_id = '" . $last_mbr_id . "'", __LINE__, __FILE__); //Remise à zéro du compteur d'essais.
$Session->start($last_mbr_id, $password, 0, SCRIPT, QUERY_STRING, TITLE, 1); //On lance la session.
}
unset($password, $password_hash);
//Affichage de la confirmation d'inscription.
redirect_confirm(get_start_page(), sprintf($l_register_confirm, stripslashes($login)), 5);
}
}
elseif (!empty($_POST['register_valid']) && $password !== $password_bis)
redirect(HOST . DIR . '/member/register' . url('.php?error=pass_same') . '#errorh');
else
redirect(HOST . DIR . '/member/register' . url('.php?error=incomplete') . '#errorh');
}
else
redirect(HOST . DIR . '/member/register' . url('.php?error=lenght_mini') . '#errorh');
}
else
redirect(HOST . DIR . '/member/register' . url('.php?error=verif_code') . '#errorh');
}
elseif (!empty($user_mail))
redirect(HOST . DIR . '/member/register' . url('.php?error=invalid_mail') . '#errorh');
else
redirect(get_start_page());
require_once('../kernel/footer.php');
?>
N'ayant aucune connaissance en dev, j'en appelle à vous
Votre ordinateur fait du bruit ! Venez sur http://www.lesiloc.fr nous avons des solutions.
ps. ce site utilise PHPBOOST 3.0
ps. ce site utilise PHPBOOST 3.0

Visiteur
Boosteur Inactif
Hervé-PCS Membre non connecté
Booster Bazooka
-
Booster Bazooka
- Voir le profil du membre Hervé-PCS
- Inscrit le : 18/08/2008
- Site internet
Hummm.... 0755 , c'est bien ça le capcha ? c'est bien le chiffre dans "Permissions" sous filezilla ?
Par contre les fichiers du dossier "member" sont en 0644.
Votre ordinateur fait du bruit ! Venez sur http://www.lesiloc.fr nous avons des solutions.
ps. ce site utilise PHPBOOST 3.0
ps. ce site utilise PHPBOOST 3.0

Shadow Membre non connecté
Booster Fusée
-
Booster Fusée
- Voir le profil du membre Shadow
- Inscrit le : 30/12/2007
- Site internet
Shadow
"Quand tu ranges chez toi, ça fout le bordel chez ton voisin". - Règle d'entropie générale adaptée aux usages domestiques.
"Quand tu ranges chez toi, ça fout le bordel chez ton voisin". - Règle d'entropie générale adaptée aux usages domestiques.
Hervé-PCS Membre non connecté
Booster Bazooka
-
Booster Bazooka
- Voir le profil du membre Hervé-PCS
- Inscrit le : 18/08/2008
- Site internet
De toute manière, le problème a miraculeusement disparu.
Il semblerai que mon hébergeur ai fait quelque bidouille sur le serveur pour que ça remarche de nouveau. D'ici à ce que ce soit lui qui est à l'origine du problème.....
Merci, je ferme le sujet.
Votre ordinateur fait du bruit ! Venez sur http://www.lesiloc.fr nous avons des solutions.
ps. ce site utilise PHPBOOST 3.0
ps. ce site utilise PHPBOOST 3.0

Visiteur
Boosteur Inactif
Citation :
Remarque : Undefined index: verif_code_difficulty
il me semble que sa c'est le capcha
Shadow Membre non connecté
Booster Fusée
-
Booster Fusée
- Voir le profil du membre Shadow
- Inscrit le : 30/12/2007
- Site internet
Shadow
"Quand tu ranges chez toi, ça fout le bordel chez ton voisin". - Règle d'entropie générale adaptée aux usages domestiques.
"Quand tu ranges chez toi, ça fout le bordel chez ton voisin". - Règle d'entropie générale adaptée aux usages domestiques.
ReidLos Membre non connecté
-
Modérateur
- Voir le profil du membre ReidLos
- Inscrit le : 27/02/2009
- Site internet
- Groupes :
-
Equipe Développement
Hervé-PCS Membre non connecté
Booster Bazooka
-
Booster Bazooka
- Voir le profil du membre Hervé-PCS
- Inscrit le : 18/08/2008
- Site internet
Ca veut dire quoi "revalider" le formulaire.
Votre ordinateur fait du bruit ! Venez sur http://www.lesiloc.fr nous avons des solutions.
ps. ce site utilise PHPBOOST 3.0
ps. ce site utilise PHPBOOST 3.0

Shadow Membre non connecté
Booster Fusée
-
Booster Fusée
- Voir le profil du membre Shadow
- Inscrit le : 30/12/2007
- Site internet
Shadow
"Quand tu ranges chez toi, ça fout le bordel chez ton voisin". - Règle d'entropie générale adaptée aux usages domestiques.
"Quand tu ranges chez toi, ça fout le bordel chez ton voisin". - Règle d'entropie générale adaptée aux usages domestiques.
Hervé-PCS Membre non connecté
Booster Bazooka
-
Booster Bazooka
- Voir le profil du membre Hervé-PCS
- Inscrit le : 18/08/2008
- Site internet
Votre ordinateur fait du bruit ! Venez sur http://www.lesiloc.fr nous avons des solutions.
ps. ce site utilise PHPBOOST 3.0
ps. ce site utilise PHPBOOST 3.0

Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie