Fork me on GitHub

Rapport de message :*
 

Re: Adaptation du formulaire d'inscription des membres

Titre du sujet : Re: Adaptation du formulaire d'inscription des membres
par daviddu54 sur 06/09/2006 15:02:56

salut

pour easy php lit ca https://www.frxoops.org/modules/smarts ... emid=20&keywords=EASY+PHP

il est preferable de ne pas supprimer n'importe quel champ ,mais de mettre 2 slash devant la ligne de code pour la desactiver

il est preferable de ne pas utiliser les champ texte de icq ,msn ou autre car il est fort possible qu'il etait formater pour n'accepter qu'une adresse email,ou autre ,enfin bref ca prendrait trop de temp pour t'expliquer le pourquoi du comment,il vaut mieux eviter de convertir des champ existant si tu a pas de connaissances en php ,mysql

allez je vais etre bon prince et te montre le code source de mon fichier register.php ,observe bien les commentaire que j'ai mis pour comprendre les differente fonction

<?php
// $Id: register.php,v 1.15 2005/06/26 15:38:21 mithyt2 Exp $
//  ------------------------------------------------------------------------ //
//                XOOPS - PHP Content Management System                      //
//                    Copyright (c) 2000 XOOPS.org                           //
//                       <http://www.xoops.org/>   ... nbsp;   //
//  ------------------------------------------------------------------------ //
//  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.                                      //
//                                                                           //
//  You may not change or alter any portion of this comment or credits       //
//  of supporting developers from this source code or any supporting         //
//  source code which is considered copyrighted (c) material of the          //
//  original comment or credit authors.                                      //
//                                                                           //
//  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., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA //
//  ------------------------------------------------------------------------ //

$xoopsOption['pagetype'] = 'user';

include 
'mainfile.php';
$myts =& MyTextSanitizer::getInstance();

$config_handler =& xoops_gethandler('config');
$xoopsConfigUser =& $config_handler->getConfigsByCat(XOOPS_CONF_USER);

if (empty(
$xoopsConfigUser['allow_register'])) {
    
redirect_header('index.php'6_US_NOREGISTER);
    exit();
}

function 
userCheck($uname$email$pass$vpass)
{
    global 
$xoopsConfigUser;
    
$xoopsDB =& Database::getInstance();
    
$myts =& MyTextSanitizer::getInstance();
    
$stop '';
    if (!
checkEmail($email)) {
        
$stop .= _US_INVALIDMAIL.'<br />';
    }
    foreach (
$xoopsConfigUser['bad_emails'] as $be) {
        if (!empty(
$be) && preg_match("/".$be."/i"$email)) {
            
$stop .= _US_INVALIDMAIL.'<br />';
            break;
        }
    }
    if (
strrpos($email,' ') > 0) {
        
$stop .= _US_EMAILNOSPACES.'<br />';
    }
    
$uname xoops_trim($uname);

    switch (
$xoopsConfigUser['uname_test_level']) {
    case 
0:
        
// strict
        
$restriction '/[^a-zA-Z0-9_-]/';
        break;
    case 
1:
        
// medium
        
$restriction '/[^a-zA-Z0-9_-<>,.$%#@!\'"]/';
        break;
    case 2:
        // loose
        
$restriction = '/[00-40]/';
        break;
    }
    if (empty(
$uname) || preg_match($restriction$uname)) {
        
$stop .= _US_INVALIDNICKNAME."<br />";
    }
    if (strlen(
$uname) > $xoopsConfigUser['maxuname']) {
        
$stop .= sprintf(_US_NICKNAMETOOLONG, $xoopsConfigUser['maxuname'])."<br />";
    }
    if (strlen(
$uname) < $xoopsConfigUser['minuname']) {
        
$stop .= sprintf(_US_NICKNAMETOOSHORT, $xoopsConfigUser['minuname'])."<br />";
    }
    foreach (
$xoopsConfigUser['bad_unames'] as $bu) {
        if (!empty(
$bu) && preg_match("/".$bu."/i", $uname)) {
            
$stop .= _US_NAMERESERVED."<br />";
            break;
        }
    }
    if (strrpos(
$uname, ' ') > 0) {
        
$stop .= _US_NICKNAMENOSPACES."<br />";
    }
    
$sql = sprintf('SELECT COUNT(*) FROM %s WHERE uname = %s', $xoopsDB->prefix('users'), $xoopsDB->quoteString(addslashes($uname)));
    
$result = $xoopsDB->query($sql);
    list(
$count) = $xoopsDB->fetchRow($result);
    if (
$count > 0) {
        
$stop .= _US_NICKNAMETAKEN."<br />";
    }
    
$count = 0;
    if ( 
$email ) {
        
$sql = sprintf('SELECT COUNT(*) FROM %s WHERE email = %s', $xoopsDB->prefix('users'), $xoopsDB->quoteString(addslashes($email)));
        
$result = $xoopsDB->query($sql);
        list(
$count) = $xoopsDB->fetchRow($result);
        if ( 
$count > 0 ) {
            
$stop .= _US_EMAILTAKEN."<br />";
        }
    }
    if ( !isset(
$pass) || $pass == '' || !isset($vpass) || $vpass == '' ) {
        
$stop .= _US_ENTERPWD.'<br />';
    }
    if ( (isset(
$pass)) && ($pass != $vpass) ) {
        
$stop .= _US_PASSNOTSAME.'<br />';
    } elseif ( (
$pass != '') && (strlen($pass) < $xoopsConfigUser['minpass']) ) {
        
$stop .= sprintf(_US_PWDTOOSHORT,$xoopsConfigUser['minpass'])."<br />";
    }
    return 
$stop;
}
$op = !isset($_POST['op']) ? 'register' : $_POST['op'];
$uname = isset($_POST['uname']) ? $myts->stripSlashesGPC($_POST['uname']) : '';
$name = isset($_POST['name']) ? $myts->stripSlashesGPC($_POST['name']) : '';
// debut hack ajout de listes de  deroulante,sexe ,genre,age,ect
$sexe = isset($_POST['sexe']) ? $myts->stripSlashesGPC($_POST['sexe']) : '';
$genre = isset($_POST['genre']) ? $myts->stripSlashesGPC($_POST['genre']) : '';
$age = isset($_POST['age']) ? $myts->stripSlashesGPC($_POST['age']) : '';
$region = isset($_POST['region']) ? $myts->stripSlashesGPC($_POST['region']) : '';
$user_starsign = isset($_POST['user_starsign']) ? $myts->stripSlashesGPC($_POST['user_starsign']) : '';
$user_from = isset($_POST['user_from']) ? $myts->stripSlashesGPC($_POST['user_from']) : '';
$poidt = isset($_POST['poidt']) ? trim($myts->stripSlashesGPC($_POST['poidt'])) : '';
$grand = isset($_POST['grand']) ? trim($myts->stripSlashesGPC($_POST['grand'])) : '';
$yeux = isset($_POST['yeux']) ? trim($myts->stripSlashesGPC($_POST['yeux'])) : '';
$cheveu = isset($_POST['cheveu']) ? trim($myts->stripSlashesGPC($_POST['cheveu'])) : '';
$fisic = isset($_POST['fisic']) ? trim($myts->stripSlashesGPC($_POST['fisic'])) : '';
$fumeur = isset($_POST['fumeur']) ? trim($myts->stripSlashesGPC($_POST['fumeur'])) : '';
$bebe = isset($_POST['bebe']) ? trim($myts->stripSlashesGPC($_POST['bebe'])) : '';
// fin du hack
$email = isset($_POST['email']) ? trim($myts->stripSlashesGPC($_POST['email'])) : '';
$url = isset($_POST['url']) ? trim($myts->stripSlashesGPC($_POST['url'])) : '';
$pass = isset($_POST['pass']) ? $myts->stripSlashesGPC($_POST['pass']) : '';
$vpass = isset($_POST['vpass']) ? $myts->stripSlashesGPC($_POST['vpass']) : '';
$timezone_offset = isset($_POST['timezone_offset']) ? intval($_POST['timezone_offset']) : $xoopsConfig['default_TZ'];
$user_viewemail = (isset($_POST['user_viewemail']) && intval($_POST['user_viewemail'])) ? 1 : 0;
$user_mailok = (isset($_POST['user_mailok']) && intval($_POST['user_mailok'])) ? 1 : 0;
$agree_disc = (isset($_POST['agree_disc']) && intval($_POST['agree_disc'])) ? 1 : 0;
switch ( 
$op ) {
case 'newuser':
    if (!
$GLOBALS['xoopsSecurity']->check()) {
        echo implode('<br />', 
$GLOBALS['xoopsSecurity']->getErrors());
        exit();
    }
    include 'header.php';
    
$stop = '';
    if (
$xoopsConfigUser['reg_dispdsclmr'] != 0 && $xoopsConfigUser['reg_disclaimer'] != '') {
        if (empty(
$agree_disc)) {
            
$stop .= _US_UNEEDAGREE.'<br />';
        }
    }
    
$stop .= userCheck($uname$email$pass$vpass);
    if (empty(
$stop)) {
        echo _US_USERNAME."
".$myts->htmlSpecialChars($uname)."<br />";
        echo _US_REALNAME."
".$myts->htmlSpecialChars($name)."<br />";
        // debut hack ajout de listes de  deroulante,sexe ,genre,age,ect
        echo _US_SEXE."
".$sexe."<br />";
        echo _US_GENRE."
".$genre."<br />";
        echo _US_AGE."
".$age."<br />";
        echo _US_REGION."
".$region."<br />";
        echo _US_LOCATION."
".$myts->htmlSpecialChars($user_from)."<br />";
        echo _US_POIDT."
".$poidt."<br />";
        echo _US_GRAND."
".$grand."<br />";
        echo _US_YEUX."
".$yeux."<br />";
        echo _US_CHEVEU."
".$cheveu."<br />";
        echo _US_FISIC."
".$fisic."<br />";
        echo _US_FUMEUR."
".$fumeur."<br />";
        echo _US_BEBE."
".$bebe."<br />";
        // fin du hack
        echo _US_EMAIL."
".$myts->htmlSpecialChars($email)."<br />";
        if (
$url != '') {
            
$url = formatURL($url);
            echo _US_WEBSITE.': '.
$myts->htmlSpecialChars($url).'<br />';
        }
        
$f_timezone = ($timezone_offset < 0) ? 'GMT '.$timezone_offset : 'GMT +'.$timezone_offset;
        echo _US_TIMEZONE."
$f_timezone<br />";
        echo "
<form action='register.php' method='post'>
        <
input type='hidden' name='uname' value='".$myts->htmlSpecialChars($uname)."' />
        <
input type='hidden' name='name' value='".$myts->htmlSpecialChars($name)."' />

        <
input type='hidden' name='sexe' value='".$myts->htmlSpecialChars($sexe)."' />
        <
input type='hidden' name='genre' value='".$myts->htmlSpecialChars($genre)."' />
        <
input type='hidden' name='age' value='".$myts->htmlSpecialChars($age)."' />
        <
input type='hidden' name='region' value='".$myts->htmlSpecialChars($region)."' />
    <
input type='hidden' name='user_from' value='".$myts->htmlSpecialChars($user_from)."' />
    <
input type='hidden' name='user_starsign' value='".$myts->htmlSpecialChars($user_starsign)."' />
         <
input type='hidden' name='poidt' value='".$myts->htmlSpecialChars($poidt)."' />
        <
input type='hidden' name='grand' value='".$myts->htmlSpecialChars($grand)."' />
        <
input type='hidden' name='yeux' value='".$myts->htmlSpecialChars($yeux)."' />
        <
input type='hidden' name='cheveu' value='".$myts->htmlSpecialChars($cheveu)."' />
        <
input type='hidden' name='fisic' value='".$myts->htmlSpecialChars($fisic)."' />
    <
input type='hidden' name='fumeur' value='".$myts->htmlSpecialChars($fumeur)."' />
    <
input type='hidden' name='bebe' value='".$myts->htmlSpecialChars($bebe)."' />  
         
        <
input type='hidden' name='email' value='".$myts->htmlSpecialChars($email)."' />";
        echo "
<input type='hidden' name='user_viewemail' value='".$user_viewemail."' />
        <
input type='hidden' name='timezone_offset' value='".(float)$timezone_offset."' />
        <
input type='hidden' name='url' value='".$myts->htmlSpecialChars($url)."' />
        <
input type='hidden' name='pass' value='".$myts->htmlSpecialChars($pass)."' />
        <
input type='hidden' name='vpass' value='".$myts->htmlSpecialChars($vpass)."' />
        <
input type='hidden' name='user_mailok' value='".$user_mailok."' />
        <
br /><br /><input type='hidden' name='op' value='finish' />".$GLOBALS['xoopsSecurity']->getTokenHTML()."<input type='submit' value='". _US_FINISH ."' /></form>";
    } else {
        echo "
<span style='color:#ff0000;'>$stop</span>";
        include 'include/registerform.php';
        
$reg_form->display();
    }
        // Hack made by Hervé Thouzard (http://www.herve-thouzard.com)
    include_once XOOPS_ROOT_PATH."
/xfg.php";
    xoops_create_page_title(_US_USERREG);
    // End Hack
    
    include 'footer.php';
    break;
case 'finish':
    if (!
$GLOBALS['xoopsSecurity']->check()) {
        echo implode('<br />', 
$GLOBALS['xoopsSecurity']->getErrors());
        exit();
    }
    include 'header.php';
    
$stop = userCheck($uname$email$pass$vpass);
    if ( empty(
$stop) ) {
        
$member_handler =& xoops_gethandler('member');
        
$newuser =& $member_handler->createUser();
        
$newuser->setVar('user_viewemail',$user_viewemail, true);
        
$newuser->setVar('uname', $uname, true);
        
$newuser->setVar('name', $name, true);
        // debut hack ajout de listes de  deroulante,sexe ,genre,age,ect
        
$newuser->setVar('sexe', $sexe, true); // la condition "true" oblige le nouveau membre a faire un choix
        
$newuser->setVar('genre', $genre, true);
        
$newuser->setVar('age', $age, true);
        
$newuser->setVar('region', $region, true);
    
$newuser->setVar('user_from', $user_from, true);
    
$newuser->setVar('user_starsign', $user_starsign, true);
    
$newuser->setVar('poidt', $poidt, true);
        
$newuser->setVar('grand', $grand, true);
        
$newuser->setVar('yeux', $yeux, true);
        
$newuser->setVar('cheveu', $cheveu, true);
        
$newuser->setVar('fisic', $fisic, true);
        
$newuser->setVar('fumeur', $fumeur, true);
    
$newuser->setVar('bebe', $bebe, true);
    // fin du hack
        
$newuser->setVar('email', $email, true);
        if (
$url != '') {
            
$newuser->setVar('url', formatURL($url), true);
        }
        
$newuser->setVar('user_avatar','blank.gif', true);//atribution d'un avatar par defaut
        
$newuser->setVar('user_photo','blank.gif', true);// atribution d'une photo par defaut
        
$actkey = substr(md5(uniqid(mt_rand(), 1)), 0, 8);
        
$newuser->setVar('actkey', $actkey, true);
        
$newuser->setVar('pass', md5($pass), true);
        
$newuser->setVar('timezone_offset', $timezone_offset, true);
        
$newuser->setVar('user_regdate', time(), true);
        
$newuser->setVar('uorder',$xoopsConfig['com_order'], true);
        
$newuser->setVar('umode',$xoopsConfig['com_mode'], true);
        
$newuser->setVar('user_mailok',$user_mailok, true);
        if (
$xoopsConfigUser['activation_type'] == 1) {
            
$newuser->setVar('level', 1, true);
        }
        if (!
$member_handler->insertUser($newuser)) {
            echo _US_REGISTERNG;
            include 'footer.php';
            exit();
        }
        
$newid = $newuser->getVar('uid');
        if (!
$member_handler->addUserToGroup(XOOPS_GROUP_USERS, $newid)) {
            echo _US_REGISTERNG;
            include 'footer.php';
            exit();
        }
        if (
$xoopsConfigUser['activation_type'] == 1) {
          require_once XOOPS_ROOT_PATH . '/modules/mpmanager/include/functions.php';
      mpauto(
$newid);
            redirect_header('index.php', 4, _US_ACTLOGIN);
            exit();
        }
        if (
$xoopsConfigUser['activation_type'] == 0) {
            
$xoopsMailer =& getMailer();
            
$xoopsMailer->useMail();
            
$xoopsMailer->setTemplate('register.tpl');
            
$xoopsMailer->assign('SITENAME', $xoopsConfig['sitename']);
            
$xoopsMailer->assign('ADMINMAIL', $xoopsConfig['adminmail']);
            
$xoopsMailer->assign('SITEURL', XOOPS_URL."/");
            
$xoopsMailer->setToUsers(new XoopsUser($newid));
            
$xoopsMailer->setFromEmail($xoopsConfig['adminmail']);
            
$xoopsMailer->setFromName($xoopsConfig['sitename']);
            
$xoopsMailer->setSubject(sprintf(_US_USERKEYFOR, $uname));
            if ( !
$xoopsMailer->send() ) {
                echo _US_YOURREGMAILNG;
            } else {
                echo _US_YOURREGISTERED;
            }
        } elseif (
$xoopsConfigUser['activation_type'] == 2) {
            
$xoopsMailer =& getMailer();
            
$xoopsMailer->useMail();
            
$xoopsMailer->setTemplate('adminactivate.tpl');
            
$xoopsMailer->assign('USERNAME', $uname);
            
$xoopsMailer->assign('NAME', $name);
            // debut hack ajout de listes de  deroulante,sexe ,genre,age,ect
            
$xoopsMailer->assign('SEXE', $sexe);// ici nous allons afficher les renseignement du membre
            
$xoopsMailer->assign('GENRE', $genre);// avant la confirmation de l'enregistrement
            
$xoopsMailer->assign('AGE', $age);
            
$xoopsMailer->assign('REGION', $region);
            
$xoopsMailer->assign('USER_FROM', $user_from);
            
$xoopsMailer->assign('USER_STARSIGN', $user_starsign);
            
$xoopsMailer->assign('POIDT', $poidt);
            
$xoopsMailer->assign('GRAND', $grand);
            
$xoopsMailer->assign('YEUX', $yeux);
            
$xoopsMailer->assign('CHEVEU', $cheveu);
            
$xoopsMailer->assign('FISIC', $fisic);
            
$xoopsMailer->assign('FUMEUR', $fumeur);
            
$xoopsMailer->assign('BEBE', $bebe);
            //fin du hack
          
$xoopsMailer->assign('USEREMAIL', $email);
            
$xoopsMailer->assign('USERACTLINK', XOOPS_URL.'/user.php?op=actv&id='.$newid.'&actkey='.$actkey);
            
$xoopsMailer->assign('SITENAME', $xoopsConfig['sitename']);
            
$xoopsMailer->assign('ADMINMAIL', $xoopsConfig['adminmail']);
            
$xoopsMailer->assign('SITEURL', XOOPS_URL."/");
            
$member_handler =& xoops_gethandler('member');
            
$xoopsMailer->setToGroups($member_handler->getGroup($xoopsConfigUser['activation_group']));
            
$xoopsMailer->setFromEmail($xoopsConfig['adminmail']);
            
$xoopsMailer->setFromName($xoopsConfig['sitename']);
            
$xoopsMailer->setSubject(sprintf(_US_USERKEYFOR, $uname));
            if ( !
$xoopsMailer->send() ) {
                echo _US_YOURREGMAILNG;
            } else {
                echo _US_YOURREGISTERED2;
            }
        }
        if (
$xoopsConfigUser['new_user_notify'] == 1 && !empty($xoopsConfigUser['new_user_notify_group'])) {
            
$xoopsMailer =& getMailer();
            
$xoopsMailer->useMail();
            
$member_handler =& xoops_gethandler('member');
            
$xoopsMailer->setToGroups($member_handler->getGroup($xoopsConfigUser['new_user_notify_group']));
            
$xoopsMailer->setFromEmail($xoopsConfig['adminmail']);
            
$xoopsMailer->setFromName($xoopsConfig['sitename']);
            
$xoopsMailer->setSubject(sprintf(_US_NEWUSERREGAT,$xoopsConfig['sitename']));
            
$xoopsMailer->setBody(sprintf(_US_HASJUSTREG, $uname));
            
$xoopsMailer->send();
        }
    } else {
        echo "
<span style='color:#ff0000; font-weight:bold;'>$stop</span>";
        include 'include/registerform.php';
        
$reg_form->display();
    }
    include 'footer.php';
    break;
case 'register':
default:
    include 'header.php';
    include 'include/registerform.php';
    
$reg_form->display();
    
    // Hack made by Hervé Thouzard (http://www.herve-thouzard.com)
    include_once XOOPS_ROOT_PATH."
/xfg.php";
    xoops_create_page_title(_US_USERREG);
    // End Hack
    
    include 'footer.php';
    break;
}
?>


ps ca sert a rien de faire un copier coller dans tes fichier car ca ne fonctionnera pas sans les class qui vont avec
Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

28 Personne(s) en ligne (24 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 28 | Plus ...