Crabs Contents Management System

crabs_cms-1.0.4 ©2006-2008 - Christophe Cazajus (crabs-mettre_le_signe_at-crabs-world.com)

~~ / FORUM / inscrire.php
Makefile index.php forum.php thread.php inscrire.php confirme.php login.php logout.php thread_ouvrir.php thread_repondre.php contribution.php
    1 <?php
    2 //
    3 // =============================================================================
    4 //  crabs_cms-1.0.4 : Crabs Contents Management System
    5 //  Copyright (C) 2006-2008 : Christophe Cazajus (crabs-mettre_le_signe_at-crabs-world.com)
    6 //
    7 //  Ce source fait partie d'un projet logiciel libre. Vous pouvez le distribuer
    8 //  et/ou le modifier en respectant les termes de la GNU General Public License
    9 //  version 2 ou (suite a votre propre choix) une version ulterieure.
   10 //
   11 //  Ce programme est distribue dans l'espoir qu'il puisse etre utile, mais
   12 //  sans aucune garantie, meme si il est associe a un produit qui vous en
   13 //  propose une. Conformez-vous a la GNU General Public License pour avoir
   14 //  plus de precisions.
   15 //
   16 //  L'auteur ne peut etre tenu responsable de l'utilisation faite des
   17 //  composantes associees a ce projet (en partie ou dans leur totalite).
   18 //
   19 //  Une copie du fichier de la GNU GPL est fournie dans le repertoire DOC
   20 //  de ce projet sous le nom gnu_gpl.txt
   21 //
   22 // =============================================================================
   23 //
   24 $RACINE='..' ;
   25 
   26 include( $RACINE.'/LIB/param.php' ) ;
   27 include( $RACINE.'/LIB/util.php' ) ;
   28 include( $RACINE.'/LIB/xml.php' ) ;
   29 include( $RACINE.'/LIB/mysql.php' ) ;
   30 include( $RACINE.'/LIB/generer.php' ) ;
   31 include( $RACINE.'/LIB/forum.php' ) ;
   32 
   33 $xml = new XML ;
   34 $xml->xsl = relative2absolute( '../STYLE/forum.xsl' ) ;
   35 $xml->addElementText( 'titre', toXML($SITE_NOM) ) ;
   36 $xml->addElementText( 'accueil', toXML($ACCUEIL_URL) ) ;
   37 $xml->addElementText( 'root', $RACINE ) ;
   38 $xml->addElementText( 'urladd', '' ) ;
   39 $xml->addElementText( 'ext', 'html' ) ;
   40 $insc = &$xml->addElement( 'inscrire' ) ;
   41 $c = new MYSQL ; $pseudo = '' ; $email = '' ; $add_form = true ;
   42 if ( array_key_exists( 'p', $_POST ) )
   43     {
   44     $pseudo = fromPOST( 'p', '' ) ; $email = fromPOST( 'e', '' ) ;
   45     $ok = true ;
   46     if ( empty( $pseudo ) )
   47         {
   48         $insc->addElementText( 'erreur', 'pseudo non renseigné' ) ;
   49         $ok = false ;
   50         }
   51     if ( empty( $email ) )
   52         {
   53         $insc->addElementText( 'erreur', 'email non renseigné' ) ;
   54         $ok = false ;
   55         }
   56     if ( ! preg_match("!^[A-Za-z0-9_-]+$!", $pseudo ) )
   57         {
   58         $insc->addElementText( 'erreur', 'Votre pseudo ne respecte pas la règle suivante.' ) ;
   59         $ok = false ;
   60         }
   61     if ( $ok )
   62         {
   63         $sql = "SELECT count(*) FROM ${DB_PRFX}user WHERE pseudo='$pseudo'" ;
   64         $res = $c->query( $sql ) ; $r = mysql_fetch_array( $res, MYSQL_NUM ) ;
   65         if ( $r[0] != 0 )
   66             {
   67             $insc->addElementText( 'erreur', 'pseudo déjà utilisé' ) ;
   68             $ok = false ;
   69             }
   70         }
   71     if ( $ok )
   72         {
   73         $sql = "SELECT count(*) FROM ${DB_PRFX}fu WHERE pseudo='$pseudo'" ;
   74         $res = $c->query( $sql ) ; $r = mysql_fetch_array( $res, MYSQL_NUM ) ;
   75         if ( $r[0] != 0 )
   76             {
   77             $insc->addElementText( 'erreur', 'pseudo déjà utilisé' ) ;
   78             $ok = false ;
   79             }
   80         }
   81     if ( $ok )
   82         {
   83         $sql = "SELECT count(*) FROM ${DB_PRFX}fi WHERE pseudo='$pseudo'" ;
   84         $res = $c->query( $sql ) ; $r = mysql_fetch_array( $res, MYSQL_NUM ) ;
   85         if ( $r[0] != 0 )
   86             {
   87             $insc->addElementText( 'erreur', 'pseudo réservé' ) ;
   88             $ok = false ;
   89             }
   90         }
   91     if ( $ok )
   92         {
   93         // creation d'un mot de passe de 8 caractères
   94         $l = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789' ;
   95         $n = strlen( $l ) - 1 ;
   96         $mdp = '' ;
   97         for( $i=0; $i<8; $i++ ) $mdp.= $l{ mt_rand( 0, $n ) } ;
   98         // creation de la clé aleatoire
   99         $cle = '' ;
  100         for( $i=0; $i<16; $i++ ) $cle.= $l{ mt_rand( 0, $n ) } ;
  101         // calcul d'un md5
  102         $chksum = md5( $pseudo.$email.$cle.$mdp ) ;
  103         // requete de création dans la table des inscriptions
  104         $sql = <<<SQL
  105             INSERT INTO ${DB_PRFX}fi VALUES(
  106                 '$pseudo', '$email', '$chksum',
  107                     NOW(), ADDDATE(NOW(),INTERVAL 2 DAY ) )
  108 SQL;
  109         $c->query( $sql ) ;
  110         // envoi du mail
  111         $pseudo = urlencode( $pseudo ) ;
  112         $cle = urlencode( $cle ) ;
  113         $url = "$ACCUEIL_URL/FORUM/confirme.php" ;
  114         $msg = <<<TXT
  115 Ce mail vous est automatiquement envoyé depuis le site ${SITE_NOM}.
  116 Vous le recevez car une demande d'inscription a été remplie avec votre
  117 adresse mail. Si vous n'avez pas effectué de démarche auprès de notre site,
  118 veillez ignorer ce message.
  119 
  120 Votre pseudo............................: $pseudo
  121 Votre mot de passe pour la confirmation.: $mdp
  122 
  123 Confirmer votre inscription en utilisant le lien suivant :
  124 ${url}?p=$pseudo&c=$cle
  125 
  126 Saisissez alors le mot de passe fourni dans ce mail, puis vous
  127 choissirez votre mot de passe de connexion.
  128 
  129 Vous disposez de 2 jours pour effectuer votre confirmation.
  130 
  131 Cordialement, l'équipe technique de ${SITE_NOM}.
  132 
  133 TXT;
  134         $msg = str_replace( "\n", "\n\r", $msg ) ;
  135         $headers  = "MIME-Version: 1.0\r\n";
  136         $headers .= "Content-type: text/plain; charset=iso-8859-1\r\n";
  137         $headers .= "From: $NO_REPLY\r\n";
  138         $sujet = "inscription au forum de ${SITE_NOM}" ;
  139         $ret = mail( $email, $sujet, $msg, $headers ) ;
  140         $add_form = false ;
  141         $insc->addElementText( 'info', 'Le mail de confirmation est envoyé' ) ;
  142         $insc->addElementText( 'info', 'Vous disposez de 2 jours pour confirmer votre inscription' ) ;
  143         }
  144     }
  145 $attr = array() ;
  146 $attr['formulaire'] = ($add_form)?'oui':'non' ;
  147 if ( $add_form )
  148     $insc->addElementText( 'info', 'Le pseudo ne peut contenir que des lettres non accentuées en minuscule et majuscule, ainsi que des chiffres, le tiret "-", et le caractère souligné "_". Vous disposer de maximum 32 caractères' ) ;
  149 $insc->attributs = $attr ;
  150 $insc->addElementText( 'pseudo', $pseudo ) ;
  151 $insc->addElementText( 'email', $email ) ;
  152 
  153 $xml->affiche() ;
  154 ?>
Makefile index.php forum.php thread.php inscrire.php confirme.php login.php logout.php thread_ouvrir.php thread_repondre.php contribution.php
~~ / FORUM / inscrire.php

Haut de page

Contacter crabs

Date de génération : 24/10/2008 21:34