crabs_cms-1.0.4 ©2006-2008 - Christophe Cazajus (crabs-mettre_le_signe_at-crabs-world.com)
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 ?>
Date de génération : 24/10/2008 21:34