Aide sur un changement de date de naissance.

Petit nouveau ! | 2 Messages

30 nov. 2012, 22:43

Bonjour à tous, je vous explique, j'ai un site libertin et je souhaite modifier dans le fichier enregister.php la date de naissance actuellement elle est daté jusqu'à 2012 et je veux remplacer la première value en 1994 et finir par 1913. Mon code actuel est celui-ci si ça peut vous aider. En gros, interdire mon site aux mineurs et l'autoriser exclusivement à partir de 18 ans !!


[php

if (!(defined('__KWS__'))) {die ('Erreur d\'appel de fichier.');}

if (!empty($K_pseudo) and get_grade() < GRD_ADMIN)
{
header('Location: index.php');
exit();
}
//df_print_r($_POST);
// Initialisation
$K_domainesMails_bloques = unserialize($K_domainesMails_bloques);
$bool_regles = ($K_ReglesAff == 'on' && !empty($K_ReglesSite));
$bool_form = true;
$bool_ok = true;
$erreur = '';
if (isset($_POST['sql_newPseudo']) and strlen($_POST['sql_newPseudo']) > 2)
{
$new_pseudo = trim($_POST['sql_newPseudo']);
}
else
{
$new_pseudo = '';
$bool_ok = false;
}

if (isset($_POST['sql_newPass']) && isset($_POST['sql_newPass2']) && strlen($_POST['sql_newPass']) > 4 && $_POST['sql_newPass2'] == $_POST['sql_newPass'])
{
$new_pass = $_POST['sql_newPass'];
}
else
{
$new_pass = '';
$bool_ok = false;
}
if (isset($_POST['sql_newMail']) && isset($_POST['sql_newMail2']) && strlen($_POST['sql_newMail']) > 4 && $_POST['sql_newMail2'] == $_POST['sql_newMail'])
{
$email = $_POST['sql_newMail'];
}
else
{
$email = '';
$bool_ok = false;
}
if (is_module('agenda') && $agenda_anniv=='on')
{
if (!empty($_POST['int_naissAn']) and !empty($_POST['int_naissMois']) and !empty($_POST['int_naissJour']))
{
$date_naissance = $_POST['int_naissAn'].'-'.$_POST['int_naissMois'].'-'.$_POST['int_naissJour'];
}
else
{
$date_naissance = '';
$bool_ok = false;
}
}
else
{
$date_naissance = '';
}

// traitement du formulaire POSTé
if (isset($_POST['ok']))
{
unset($erreur);
if($bool_regles)
{
$requete = reqmysql("
SELECT `questionnaire_reponse`.`id` AS id_reponse,
`questionnaire_reponse`.`juste` AS juste
FROM `questionnaire_reponse`
LEFT JOIN `questionnaire_question`
ON `questionnaire_question`.`id` = `questionnaire_reponse`.`id_question`
WHERE `questionnaire_question`.`module` = 'regle'
ORDER BY `questionnaire_question`.`id` ASC, `questionnaire_reponse`.`id` ASC
");
if (mysql_num_rows($requete) != 0)
{
while ($ligne = mysql_fetch_object($requete))
{
if ($_POST['reponse'.$ligne->id_reponse] != $ligne->juste)
{
$erreur = '';
break;
}
}
}
}

// Vérification des champs obligatoires
$req = reqmysql('
SELECT `id`
FROM `users`
WHERE LOWER(`pseudo`) = "'.strtolower($new_pseudo).'" OR `email` = "'.$email.'"
');
if (mysql_num_rows($req) > 0) $bool_ok = false;

if (strtolower($new_pseudo)=='ancien membre' OR strtolower($new_pseudo)=='ancienmembre' OR strtolower($new_pseudo)=='ancien_membre' OR
preg_match('#admin[0-9]*?#',strtolower($new_pseudo)) OR preg_match('#administrateur[0-9]*?#',strtolower($new_pseudo)) OR preg_match('#webmaster[0-9]*?#',strtolower($new_pseudo)) OR
strtolower($new_pseudo) == 'identifiant'
) $bool_ok = false;

$atom = '[-a-z0-9!#$%&\'*+\\/=?^_`{|}~]'; // caractères autorisés avant l'arobase
$domain = '([a-z0-9]([-a-z0-9]*[a-z0-9]+)?)'; // caractères autorisés après l'arobase (nom de domaine)

$regex = '/^' . $atom . '+' . // Une ou plusieurs fois les caractères autorisés avant l'arobase
'(\.' . $atom . '+)*' . // Suivis par zéro point ou plus
// séparés par des caractères autorisés avant l'arobase
'@' . // Suivis d'un arobase
'(' . $domain . '{1,63}\.)+' . // Suivis par 1 à 63 caractères autorisés pour le nom de domaine
// séparés par des points
$domain . '{2,63}$/i'; // Suivi de 2 à 63 caractères autorisés pour le nom de domaine

$domaine_extrait=preg_replace('!^[a-z0-9._-]+@(.+)$!', '$1', $email);

if (!preg_match($regex, $email) OR in_array($domaine_extrait, $K_domainesMails_bloques) OR
in_array($email, $K_domainesMails_bloques) OR !$bool_ok OR (sha1($_POST['code_secu'].date('Ymd')) != $_POST['code']) OR
preg_match('#[<>[\]\(\),;.:/\\`²\'"©®&]#',$new_pseudo)
)
{
$erreur = '
<div style="background-color:#fee;border: 1pt dashed #f00; margin:1em; padding:1em;">
'.df_message(
'erreur',
'<div><strong>ENREGISTREMENT NON VALIDE !!</strong></div>',
'<div>
'.(!$bool_ok ? 'Cet identifiant est d&eacute;j&agrave; pris (ou r&eacute;serv&eacute;) ou cet e-mail est d&eacute;j&agrave; utilis&eacute; par un autre membre.
<br />ou nombre de caract&egrave;res insuffisant dans un des champs.
<br />'.((is_module('agenda')&& $agenda_anniv=='on') ? 'ou date de naissance invalide<br />':''):'').'
'.(preg_match('#[<>[\]\(\),;.:/\\`²\'"©®&]#',$new_pseudo) ? 'Contient des caract&egrave;res interdits dans votre identifiant.<br />':'').'
'.(!preg_match($regex, $email) ? 'Adresse email invalide.<br />':'').'
'.((in_array($domaine_extrait, $K_domainesMails_bloques) || in_array($email, $K_domainesMails_bloques)) ? 'Adresse email ou domaine interdit.<br />':'').'
'.((sha1($_POST['code_secu'].date('Ymd')) != $_POST['code']) ? 'Vous avez saisi un mauvais code de s&eacute;curit&eacute;.<br />':'').'
ou tous les champs marqu&eacute;s par une &eacute;toile ne sont pas remplis.<br />
</div>'
).'
</div>';
}
elseif (isset($erreur))
{
$erreur = '
<div style="background-color:#fee;border: 1pt dashed #f00; margin:1em; padding:1em;">
'.df_message(
'erreur',
'<p><strong>ENREGISTREMENT NON VALIDE !!</strong><p>',
'<p>Le questionnaire n\'a pas été correctement rempli.</p>'
).'
</div>';
}

// les champs obligatoires sont OK
else
{
$mot_passe = md5($new_pass);
$mp_popup = $K_mp_grade == GRD_MEMBR ? 1 : 0;
$popup = $K_mp_grade == GRD_MEMBR ? 1 : 0;
$date = time();

// Options de validation
$waza = '';
$i = 0;
while ($new_pass[$i] != NULL)
{
$waza .= chr(fmod(ord($new_pass[$i])+127,254));
$i ++;
}

bloc_head('Enregistrement r&eacute;ussi !');
echo '
<h3>Inscription r&eacute;ussie !</h3>';

switch ($K_validation_enregistrement)
{
// Validation d'enregistrement par email
case 'email' :
$statut = STU_ATTVAL;
$randome = rand(0,9).rand(0,9).rand(0,9).rand(0,9).rand(0,9).rand(0,9).rand(0,9).rand(0,9).rand(0,9).rand(0,9).rand(0,9).rand(0,9).rand(0,9).rand(0,9).rand(0,9).rand(0,9).rand(0,9).rand(0,9).rand(0,9).rand(0,9).rand(0,9).rand(0,9).rand(0,9).rand(0,9).rand(0,9).rand(0,9).rand(0,9).rand(0,9).rand(0,9).rand(0,9);
require_once './includes/class.mail.php';
$mail = new kws_mail();
$mail->add_adresses(array($K_expediteur => $K_email_expediteur), 'From');
$mail->add_adresses(array($new_pseudo => $email), 'To');
$mail->set_sujet('Merci de confirmer votre inscription sur « '.$K_nom_page.' »');
$message = str_replace ('%cle%', $randome, $mailvalidation);
$message = str_replace ('%url_site%', $K_url_site, $message);
$message = str_replace ('%pseudo%', ax($new_pseudo), $message);
$mail->set_message($message, 'multi');
$mail->envoyer();

echo '
<p>Un mail va vous &ecirc;tre envoy&eacute;,<br />
veuillez suivre le lien qu&rsquo;il contient pour valider votre inscription.</p>
<form style="text-align:center;" method="post" action="index.php">
<input type="submit" id="submit" name="submit" value=" Retour &agrave; l&rsquo;accueil " />
</form><br />';
break;

//Validation d'enregistrement par admin/moderateur
case 'modo' :
$statut = STU_ATTVAL;
echo '
<p>Un administrateur doit valider votre inscription avant de pouvoir vous connecter.<br />
Un mail vous informera que votre compte a &eacute;t&eacute; valid&eacute;.</p>
<p>Merci de votre patience ...</p>
<form style="text-align:center;" method="post" action="./index.php">
<p><input type="submit" value=" Retour &agrave; l\'accueil " /></p>
</form><br />';
break;

// Pas de validation des inscriptions
default :
$statut = STU_VALIDE;
require_once './includes/class.mail.php';
$mail = new kws_mail();
$mail->add_adresses(array($K_expediteur => $K_email_expediteur), 'From');
$mail->add_adresses(array($new_pseudo => $email), 'To');
$mail->set_sujet('Bienvenue sur « '.$K_nom_page.' »');
$message = str_replace ('%pseudo%', ax($new_pseudo), $mailbienvenue);
$message = str_replace ('%url_site%', $K_url_site, $message);
$message = str_replace ('%pass%', $new_pass, $message);
$mail->set_message($message, 'multi');
$mail->envoyer();

echo '
<p>Vous pouvez d&eacute;sormais vous identifier!</p>
<form style="text-align:center" method="post" action="./index.php?mod=espace_membre&ac=login">
<p><input type="submit" id="submit" name="submit" value=" Se connecter " /></p>
</form>';
}
close_table();

//Requete d'insertion du nouvel utilisateur dans la table users
$req = reqmysql ('
INSERT INTO `users`
SET `pseudo` = "'.$new_pseudo.'",
`pass` = "'.$mot_passe.'",
`pass2` = "'.($statut!=0 ? str_replace('"','"', $waza) : '').'",
`email` = "'.$email.'",
`theme` = "'.$K_theme.'",
`aff_news` = "'.$K_news_aff_default.'",
`aff_email` = "0",
`mp_popup` = "'.$mp_popup.'",
`popup` = "'.$popup.'",
`date` = "'.$date.'",
`avatar` = "./images/avatars/upload/quiestce.png",
`flood` = "'.$date.'",
`date_der_connec` = "9999999999",
`statut` = "'.$statut.'",
`cle` = "'.$randome.'"
');
$K_user->id = mysql_insert_id();

//Requete d'insertion du nouvel utilisateur dans la table users_cplt
$req2 = reqmysql ('
INSERT INTO `users_cplt`
SET `id_pseudo` = "'.$K_user->id.'"
');

//Requete d'insertion du mail à la newsletter si l'option est activé
if (is_module('newsletter'))
{
$K_newsletter_options = unserialize($K_newsletter_options);
if ($K_newsletter_options['auto_inscrit'] == 'oui')
{
$req3 = reqmysql ('
INSERT INTO `newsletter`
SET `email` = "'.$email.'",
`news` = "1"
');
}
}

//Envoi du MP de remerciement d'inscription
if ($K_msgbienvenue_Envoi == 'on' and $K_mp_grade >=GRD_MEMBR)
{
include_once './includes/mp.php';
envoi_mp($K_expediteurMP, $K_user->id, 'Merci de vous être inscrit !', $K_msgbienvenue, 0, 2, $new_pseudo, $email, 'basse');
}

// Requète ajoutée pour date naissance de l'agenda
if (is_module('agenda') && $agenda_anniv=='on')
{
$req2 = reqmysql('
INSERT INTO `agenda_anniv`
SET `pseudo` = "'.$new_pseudo.'",
`id_mbr` = "'.$K_user->id.'",
`date_naissance`= "'.$date_naissance.'",
`aff_naissance` = "1"
');
}

$bool_form = false;
}
}

// Affichage du formulaire
if($bool_form)
{
bloc_head('Inscription');

if (isset ($_POST['ok']) && $erreur != '')
{
echo $erreur;
}
if ($K_validation_enregistrement == 'email')
{
$_Mess_Valid_Compte = '
<div style="font-variant:small-caps;font-weight:bold">
Validation par e-mail activ&eacute;e : vous recevrez un mail de validation !<br />
Vous avez '.($K_validation_delai_del % 4==0 ? ($K_validation_delai_del/4).' mois':$K_validation_delai_del.' semaine'.($K_validation_delai_del>1?'s':'')).' pour l\'activer.
</div>';
}
elseif ($K_validation_enregistrement == 'modo')
{
$_Mess_Valid_Compte = '
<div style="font-variant:small-caps;font-weight:bold">
Votre compte sera valid&eacute; apr&egrave;s v&eacute;rification par l&rsquo;administrateur.<br />
Dans le cas contraire, le compte sera effacé automatiquement dans '.($K_validation_delai_del % 4==0 ? ($K_validation_delai_del/4).' mois':$K_validation_delai_del.' semaine'.($K_validation_delai_del>1?'s':'')).'.
</div>';
}

$code_confirm = gen_reg_key();
$_SESSION['code_confirm'] = $code_confirm;
$dte = sha1($code_confirm.date('Ymd'));

include 'enregistrer_js.php';

if (is_module('newsletter'))
{
$K_newsletter_options = unserialize($K_newsletter_options);
if ($K_newsletter_options['auto_inscrit'] == 'oui')
{
$Infos_Newsletter_Inscription = '<br />Vous serez inscrit automatiquement &agrave; notre newsletter. Vous pourrez la d&eacute;sactiver par la suite via votre compte.';
}
}
// Formulaire d'enregistrement
$style_mess_control = 'width:230px;float:right;border:2px dotted red';
echo '
<form method="post" enctype="multipart/form-data" name="new_user" id="new_user" action="index.php?mod=espace_membre&ac=enregistrer" onsubmit="return verif_envoyer();">
<input type="hidden" name="code" id="code" value="'.$dte.'" />
<input type="hidden" name="xss_retour" value="index.php'.($_SERVER['QUERY_STRING']!='' ? '?'.htmlspecialchars($_SERVER['QUERY_STRING']) : '').'" />

<fieldset style="margin:1em; padding:1em;">
<legend><strong><span style="color:#FF0000"><strong>*</strong></span> Champs obligatoires</strong></legend>
'.df_message('','D&rsquo;autres champs optionnels et / ou obligatoires seront accessibles via votre compte'.$Infos_Newsletter_Inscription).'
<p>
<label class="label_enregistrer1" for="sql_newPseudo"><span style="color:#FF0000"> <strong>*</strong></span> Identifiant : </label>
<input name="sql_newPseudo" id="sql_newPseudo" maxlength="30" size="30" value="'.ax($new_pseudo).'" onkeyup="verif_form(this);" onblur="verif_form(this);" />&nbsp;
<span class="mini_message" id="pseudook"><em> (3 caract&egrave;res minimum)</em></span>
</p>

<p>
<label class="label_enregistrer1" for="sql_newPass"><span style="color:#FF0000"> <strong>*</strong></span> Mot de passe : </label>
<input type="password" name="sql_newPass" id="sql_newPass" maxlength="20" size="20" value="'.ax($new_pass).'" onkeyup="verif_form(this);" onblur="verif_form(this);" />&nbsp;
<span class="mini_message" id="passok"><em> (5 caract&egrave;res minimum)</em></span>
</p>

<p>
<label class="label_enregistrer1" for="sql_newPass2"><span style="color:#FF0000"> <strong>*</strong></span> Confirmez votre mot de passe : </label>
<input type="password" name="sql_newPass2" id="sql_newPass2" maxlength="20" size="20" onkeyup="verif_form(this);" onblur="verif_form(this);" />&nbsp;
<span class="mini_message" id="passverifok"><em> (Doit &ecirc;tre identique au pr&eacute;c&eacute;dant)</em></span>
</p>

<p id="secupass" style="display:none;">
<label class="label_enregistrer1" for="sql_newPass">&nbsp;&nbsp;&nbsp;Niveau de s&eacute;curit&eacute; du mot de passe : </label>
<span id="Words"><input value="" disabled="disabled" /></span>&nbsp;
</p>

<p>
<label class="label_enregistrer1" for="sql_newMail"><span style="color:#FF0000"> <strong>*</strong></span> E-mail<sup>(1)</sup> : </label>
<input name="sql_newMail" id="sql_newMail" maxlength="40" size="30" value="'.ax($email).'" onkeyup="verif_form(this);" onblur="verif_form(this);" />&nbsp;
<span class="mini_message" id="mailok">Email valide</span>
</p>
<p>
<label class="label_enregistrer1" for="sql_newMail2"><span style="color:#FF0000"> <strong>*</strong></span> Confirmez votre E-mail : </label>
<input name="sql_newMail2" id="sql_newMail2" maxlength="40" size="30" onkeyup="verif_form(this);" onblur="verif_form(this);" />&nbsp;
<span class="mini_message" id="mailverifok">Doit &ecirc;tre identique au pr&eacute;c&eacute;dant</span>
</p>';

if (is_module('agenda') && $agenda_anniv=='on')
{
// agenda
echo '<br />
<p>
<label class="label_enregistrer1" for="int_naissjour"><span style="color:#FF0000"> <strong>*</strong></span> Date de Naissance : </label>
<select name="int_naissJour" id="int_naissjour" onchange="verif_form(this);"><option value="0">jour</option>';
for ($i=1;$i<=31;$i++) {
echo '<option value="'.$i.'"'.($_POST['int_naissJour']==$i ? ' selected="selected"' : '').'>'.$i.'</option>';
}
echo '</select> <select name="int_naissMois" id="int_naissMois" onchange="verif_form(this);"><option value="0">mois</option>';
for ($i=1;$i<=12;$i++) {
echo '<option value="'.$i.'"'.($_POST['int_naissMois']==$i ? ' selected="selected"' : '').'>'.$i.'</option>';
}
echo '</select> <select name="int_naissAn" id="int_naissAn" onchange="verif_form(this);"><option value="0">ann&eacute;e</option>';
for ($i=date("Y");$i>=date("Y")-100;$i--) {
echo '<option value="'.$i.'"'.($_POST['int_naissAn']==$i ? ' selected="selected"' : '').'>'.$i.'</option>';][/php]



Merci beaucoup par avance.

Mammouth du PHP | 790 Messages

30 nov. 2012, 22:51

Tu peux au moment de l'enregistrement tester l'année de naissance, si elle ne correspond pas a ton souhait, tu refuse l'inscription...
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.

Petit nouveau ! | 2 Messages

30 nov. 2012, 23:16

Salut, merci pour ta réponse, c'est à dire ?

Mammouth du PHP | 790 Messages

30 nov. 2012, 23:21

lis cette page, ce n'est pas tout a fait ce que tu cherche mais le principe y est: http://www.siteduzero.com/tutoriel-3-14 ... tions.html
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.