Fork me on GitHub






Page d'inscription et menu déroulant
Xoops accro
Inscrit: 16/08/2005 19:46
De Nanterre
Messages: 2331
Bonsoir à tous,
J'ai une page d'inscription de membre (hack des nullos) spécifique au besoin de mon site.
Celle-ci est composés de champs fixe et de champs avec menus déroulant.

Le soucis, c'est que si à la fin du remplissages de ce formulaire, le membre commet une erreur qui le fait revenir sur la page, seul les saisies dans les champs fixe sont rester.
Il doit alors ressaisir toutes les cases déroulantes.

Y a t'il un code à ajouter pour conserver le contenu des cases? et ainsi, ne pas se retaper tout le formulaire... cela ne fait pas pro.

Merci et bonne soiréeOpen in new window

Posté le : 23/06/2007 23:25

eparcyl... tranquille.
Partager Twitter Partagez cette article sur GG+
Re: Page d'inscription et menu déroulant
Admin Frxoops
Inscrit: 04/02/2003 07:37
De Belgique
Messages: 3376
Lors d'une erreur sur l'encodage, comment sont transmises les données déjà encodées ? En GET (les données sont incluses dans l'url) ou en POST (les données sont transmises cachées).


Posté le : 24/06/2007 08:31
Partager Twitter Partagez cette article sur GG+
Re: Page d'inscription et menu déroulant
Xoops accro
Inscrit: 16/08/2005 19:46
De Nanterre
Messages: 2331
Citation :
Lors d'une erreur sur l'encodage, comment sont transmises les données déjà encodées ? En GET (les données sont incluses dans l'url) ou en POST (les données sont transmises cachées).

Bonjour Solo.
Elle est trop balèze ta question!!! J'ai rien compris

Euh!! quand les membres s'enregistres, je suppose que les données vont dans le xoops_user de ma table mysql.

Je ne sais pas si j'ai répondu à la question

Bon dimanche

Posté le : 24/06/2007 10:54

eparcyl... tranquille.
Partager Twitter Partagez cette article sur GG+
Re: Page d'inscription et menu déroulant
Guest_
B'jour,

Je ne pourrai pas t'aider bcp sur la "mémorisation" des données en cas de retour à la case départ... je crois que l'interrogation de solo porte sur la méthode de transmission des données d'une page (celle du formulaire) à l'autre (celle de l'affichage des données saisies) : soit POST soit GET.

Si tu copies / colles une url de la seconde page peut être que cela fera avancer le schimilibilick (<- pas facile de le prononcer comme papy mougeot ) !

@+

Ps : mais le top du top serait que tous les champs de saisie fasse l'objet d'un contrôle préalable, y compris les menus déroulants avec un signalement en rouge de l'info manquante ou erronée... il est ou davidduu ?

Posté le : 24/06/2007 11:13
Partager Twitter Partagez cette article sur GG+
Re: Page d'inscription et menu déroulant
Xoops accro
Inscrit: 16/08/2005 19:46
De Nanterre
Messages: 2331
Bonjour,
J'vais finir par me faire éjecter avec mes sujet à rallonge...

Mais je crois que c'est dans register.php que tout se passe.





<?php
// $Id: register.php 2 2005-11-02 18:23:29Z skalpa $
//  ------------------------------------------------------------------------ //
//                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']) : '';
$user_genre = isset($_POST['user_genre']) ? $myts->stripSlashesGPC($_POST['user_genre']) : '';
$user_tonage = isset($_POST['user_tonage']) ? $myts->stripSlashesGPC($_POST['user_tonage']) : '';
$user_starsign = isset($_POST['user_starsign']) ? $myts->stripSlashesGPC($_POST['user_starsign']) : '';
$user_orientation = isset($_POST['user_orientation']) ? $myts->stripSlashesGPC($_POST['user_orientation']) : '';
$user_active = isset($_POST['user_active']) ? $myts->stripSlashesGPC($_POST['user_active']) : '';
$user_cherchant = isset($_POST['user_cherchant']) ? $myts->stripSlashesGPC($_POST['user_cherchant']) : '';
$user_from = isset($_POST['user_from']) ? $myts->stripSlashesGPC($_POST['user_from']) : '';
$user_codepostal = isset($_POST['user_codepostal']) ? $myts->stripSlashesGPC($_POST['user_codepostal']) : '';
$user_planete = isset($_POST['user_planete']) ? $myts->stripSlashesGPC($_POST['user_planete']) : '';
$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 />";
        echo _US_GENRE."
$user_genre<br />";
        echo _US_TONAGE."
$user_tonage<br />";
        echo _US_STARSIGN."
$user_starsign<br />";
        echo _US_ORIENTATION."
$user_orientation<br />";
        echo _US_ACTIVE."
$user_active<br />";
        echo _US_CHERCHANT."
$user_cherchant<br />";
        echo _US_LOCATION."
".$myts->htmlSpecialChars($user_from)."<br />";
        echo _US_CODEPOSTAL."
$user_codepostal<br />";
        echo _US_PLANETE."
$user_planete<br />";
        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='user_genre' value='".$myts->htmlSpecialChars($user_genre)."' />
        <
input type='hidden' name='user_tonage' value='".$myts->htmlSpecialChars($user_tonage)."' />
        <
input type='hidden' name='user_starsign' value='".$myts->htmlSpecialChars($user_starsign)."' />
        <
input type='hidden' name='user_orientation' value='".$myts->htmlSpecialChars($user_orientation)."' />
        <
input type='hidden' name='user_active' value='".$myts->htmlSpecialChars($user_active)."' />
        <
input type='hidden' name='user_cherchant' value='".$myts->htmlSpecialChars($user_cherchant)."' />
        <
input type='hidden' name='user_from' value='".$myts->htmlSpecialChars($user_from)."' />
        <
input type='hidden' name='user_codepostal' value='".$myts->htmlSpecialChars($user_codepostal)."' />
        <
input type='hidden' name='user_planete' value='".$myts->htmlSpecialChars($user_planete)."' />
        <
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();
    }
    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);
        
$newuser->setVar('user_genre', $user_genre, true);
        
$newuser->setVar('user_tonage', $user_tonage, true);
        
$newuser->setVar('user_starsign', $user_starsign, true);
        
$newuser->setVar('user_orientation', $user_orientation, true);
        
$newuser->setVar('user_active', $user_active, true);
        
$newuser->setVar('user_cherchant', $user_cherchant, true);
        
$newuser->setVar('user_from', $user_from, true);
        
$newuser->setVar('user_codepostal', $user_codepostal, true);
        
$newuser->setVar('user_planete', $user_planete, true);
        
$newuser->setVar('email', $email, true);
        if (
$url != '') {
            
$newuser->setVar('url', formatURL($url), true);
        }
        
$newuser->setVar('user_avatar','blank.gif', true);
        
$newuser->setVar('user_photo','blank.gif', true);
        
$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) {
            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('USER_GENRE', $user_genre);
            
$xoopsMailer->assign('USER_TONAGE', $user_tonage);
            
$xoopsMailer->assign('USER_STARSIGN', $user_starsign);
            
$xoopsMailer->assign('USER_ORIENTATION', $user_orientation);
            
$xoopsMailer->assign('USER_ACTIVE', $user_active);
            
$xoopsMailer->assign('USER_CHERCHANT', $user_cherchant);
            
$xoopsMailer->assign('USER_FROM', $user_from);
            
$xoopsMailer->assign('USER_CODEPOSTAL', $user_codepostal);
            
$xoopsMailer->assign('USER_PLANETE', $user_planete);
            
$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();
    include 'footer.php';
    break;
}
?>



Citation :

Ps : mais le top du top serait que tous les champs de saisie fasse l'objet d'un contrôle préalable, y compris les menus déroulants avec un signalement en rouge de l'info manquante ou erronée... il est ou davidduu ?


Ce serai le top du top cette idée là... mais je crois que l'père Daviddu54 attrape une crise de nerf quand il tombe sur un de mes posts

Allez!!! bonne lecture et bon dimanche

Posté le : 24/06/2007 12:07

eparcyl... tranquille.
Partager Twitter Partagez cette article sur GG+
Re: Page d'inscription et menu déroulant
Aspirant
Inscrit: 24/06/2006 02:06
De Meknes / MAROC
Messages: 66
Bonjour,

est ce que vous pouvez m'aidez éditer la page d'inscription un peux prét comme votre site eparcyl92 je veux ajouter par ex localisation, l'age, sexe...ect j'ai trop essayer ms j'arrive pas :s

Posté le : 28/06/2007 20:14

Le portail des annonces Marocains : http://www.meknesannonces.net
Partager Twitter Partagez cette article sur GG+
Re: Page d'inscription et menu déroulant
Xoops accro
Inscrit: 16/08/2005 19:46
De Nanterre
Messages: 2331
Bonjour Youssef,
Je ne peux te répondre maintenant car je dois avant régler un petit problème de fichier SQL.
Ici Fichier sql

Lorsqu'il sera résolu, le hack sera fin prêt.

A+

Posté le : 29/06/2007 07:07

eparcyl... tranquille.
Partager Twitter Partagez cette article sur GG+
Re: Page d'inscription et menu déroulant
Aspirant
Inscrit: 24/06/2006 02:06
De Meknes / MAROC
Messages: 66
Merci eparcyl92 bn courage et je suis tjr la dans l'attente de la résolution

Posté le : 29/06/2007 13:31

Le portail des annonces Marocains : http://www.meknesannonces.net
Partager Twitter Partagez cette article sur GG+
Re: Page d'inscription et menu déroulant
Xoops accro
Inscrit: 16/08/2005 19:46
De Nanterre
Messages: 2331
Bonjour à tous
LE HACK DES NULLOS EST TERMINE.

Voilà la fin d'une grande aventure de presque 12 mois

Vous le trouverez en téléchargement dans toutes les grandes surfaces.. ou tout simplement ici.

HACK

DES NULLOS POUR XOOPS 2.0.16


Je n'ai pas réussi à faire un fichier .php
Alors j'ai opté pour le copié/collé le sql.

Bonne journée à tous

Pour toutes observations, allez dans ce sujet:
inscription de membre

Posté le : 30/06/2007 08:20

eparcyl... tranquille.
Partager Twitter Partagez cette article sur GG+

 Haut   Précédent   Suivant



Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

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