hellofacteurV1/ctrl/compte_crea_tests.php

129 lines
5.0 KiB
PHP
Executable File

<?php
/**
* Script testant les données envoyées lors de l'inscription d'un utilisateur
* Peut être appelé en ajax ou directement en php si JS désactivé
*
**/
$form["email"]=trim($_POST["email"]);
$form["pseudo"]=trim($_POST["pseudo"]);
$ajax_on=false;
if(!empty($_POST["ajax"]))
{
$ajax_on=true;
session_save_path(SESSIONS_REP);
ini_set("session.use_only_cookies",1);
session_start();
header('Content-Type: text/html; charset=utf-8');
require_once("../modele/FclFlux_utilisateur.php");
}
if(!empty($_COOKIE["origine"]))
$form["origine"]=trim($_COOKIE["origine"]);
$msg_form=array();
if((empty($form["email"]))||(empty($form["pseudo"]))||((empty($_SESSION["coregistration"]))&&(empty($_POST["test"]))))
$msg_form[]=ERREUR_UTILISA_CHAMPS_ABSENTS;
else
{
if(((empty($_SESSION["mot"]))||(empty($_SESSION["lettre"]))||((time()-intval($_SESSION["timeS"]))<FORM_MIN_DUREE))&&(empty($_SESSION["coregistration"])))
$msg_form[]=ERREUR_IMPREVUE;
else
{
if(empty($_SESSION["coregistration"]))
{
$mot=$_SESSION["mot"];
$nb_lettre=$_SESSION["lettre"]-1;//puisque index débute à 0...
if((strtolower(trim($_POST["test"])))!=($mot[$nb_lettre]))
$msg_form[]=ERREUR_UTILISA_ANTISPAM.$mot[$nb_lettre];
}
if(empty($_POST["cgu_ok"]))
$msg_form[]=ERREUR_UTILISA_CGU;
if(empty($_POST["ajax"])) //recherche la ville si un code postal a été saisi
include("../ctrl/get_ville_cp.php");
if(empty($Bd))
require("../modele/connexion-bd.php");
// impact sur le fuseau horaire si ville dans les dom tom
if(isset($_POST["insee"]))
{
$dep=get_villes($_POST["insee"],"insee");
if(!empty($dep))
{
$num=$dep[0]["dep_num"];
if(isset($DT_fuseau["$num"]))
$form["fuseau_horaire"]=$DT_fuseau["$num"];
}
}
$user=new FclFlux_utilisateur($form);
if((empty($msg_form))&&(empty($user->erreurs)))
{
if(empty($_SESSION["coregistration"]))
$ajout=$user->ajout(true);//avec true de passé, créer une session si tout se passe bien
else
$ajout=$user->ajout(true,false);//on évite la validation car l'email a déjà été contrôlé par meetoyen
}
if(!empty($user->erreurs))
$msg_form=array_merge($user->erreurs,$msg_form);
elseif((isset($ajout))&&($ajout===false))
$msg_form[]=ERREUR_IMPREVUE;
if(empty($msg_form))
{
if(!empty($_COOKIE["donnees_meetoyen"]))
setcookie("donnees_meetoyen","",time()-42000,"/",SITE_COOKIES_DOMAINE);
if(!empty($_COOKIE["donnees_mailing"]))
setcookie("donnees_mailing","",time()-42000,"/",SITE_COOKIES_DOMAINE);
// il peut y avoir un hub auxquel on est automatiquement abonné lorsque l'on créé son compte
if(!empty($hub_site))
{
require_once("../modele/FclFlux_abonnement.php");
$infos_abo["designation"]=$hub_site["nom"];
$infos_abo["proprietaire"]=$user;
$abo_news=new FclFlux_abonnement($infos_abo);
$crea_abo_news=$abo_news->ajout();
if($crea_abo_news===true)
{
$hub=new FclFlux_hub();
$hub->id_hub=$hub_site["id"];
$abo_news->ajout_hubs(array($hub));
}
unset($abo_news);
}
// si l'utilisateur a fourni sa ville, on essaye aussi de l'abonner aux actus locales.
if(!empty($_POST["insee"]))
{
$abo_local=new FclFlux_abonnement();
$crea_abo_local=$abo_local->abo_rapide_ville($user,$_POST["insee"]);
if($crea_abo_local===true)
{
$_SESSION["message"]="Votre compte a bien été créé. <u>Vous devez néanmoins le valider via un lien qui vient de vous être envoyé par email</u>.<br>En attendant vous pouvez déjà configurer ci-dessous votre abonnement aux actualités locales ou encore <u>voir le résultat <a href='".PAGE_ABO_AFFICHE.$abo_local->id_abonnement."' title='voir les dernières actualités pour votre abonnement'>en cliquant ici</a></u>.";
$Bd=null;
if(!$ajax_on)
header("location:".PAGE_ABO_MAJ.$abo->id_abonnement);
else
echo $abo_local->id_abonnement;//pour redirection en javascript
exit();
}
}
$Bd=null;
if((!empty($_SESSION["coregistration"]))&&(empty($form["insee"])))
$_SESSION["redirige"]=null;//pas la peine d'aller sur la page de création de l'abonnement
$_SESSION["message"]="Votre compte a bien été créé. Vous devez néanmoins le valider via un lien qui vient de vous être envoyé par email.<br>En attendant vous pouvez déjà créer votre premier abonnement ci-dessous.";
if(!$ajax_on)
{
// si l'utilisateur est connecté et a un cookie de redirection
// je le redirige vers la page qui l'intéressait avant la création de son compte
$redirige=PAGE_REPERTOIRE_ACCUEIL;
if(!empty($_SESSION["redirige"]))
$redirige=$_SESSION["redirige"];
elseif(!empty($_COOKIE["rdg"]))
{
if(strpos($_COOKIE["rdg"],SITE_COOKIES_DOMAINE)!==false)
$redirige=$_COOKIE["rdg"];
//dans tous les cas, je mange le cookie :-)
setcookie("rdg","",-1600,"/",SITE_COOKIES_DOMAINE);
}
header("location:".$redirige);
exit();
}
}
}
}
if((!empty($msg_form))&&($ajax_on))
echo get_html_alerte_msg($msg_form);