168 lines
5.7 KiB
PHP
Executable File
168 lines
5.7 KiB
PHP
Executable File
<?php
|
|
/**
|
|
* Script testant les données envoyées lors de la soumission d'une actualité par un internaute connecté ou non.
|
|
* Ce script peut être appelé en ajax ou directement en php si JS désactivé
|
|
*
|
|
**/
|
|
$form["hub"]=trim(strip_tags($_POST["hub"]));
|
|
$form["insee"]=trim(strip_tags($_POST["insee"]));
|
|
$form["ancre"]=trim(strip_tags($_POST["ancre"]));
|
|
$form["url"]=trim(strip_tags($_POST["url"]));
|
|
$form["annonce"]=trim(strip_tags($_POST["annonce"]));
|
|
$form["time_diffusion"]=trim(strip_tags($_POST["time_diffusion"]));
|
|
$ajax_on=false;
|
|
if(!empty($_POST["ajax"]))
|
|
{
|
|
$ajax_on=true;
|
|
require_once("../modele/FclFlux_post.php");
|
|
$user=new FclFlux_utilisateur();
|
|
$user->test_session(false);// besoin de savoir si utilisateur est connecté ou pas...
|
|
if(empty($user->connexion_ok))//j'ai pu me faire sauvagement déconnecté précédement...
|
|
{
|
|
$auteur["pseudo"]=strip_tags(trim($_POST["pseudo"]));
|
|
$auteur["email"]=strip_tags(trim($_POST["email"]));
|
|
}
|
|
header('Content-Type: text/html; charset=utf-8');
|
|
}
|
|
$msg_form=array();$ajout_message="";
|
|
if(empty($user->connexion_ok))//internaute non connecté
|
|
{
|
|
if((empty($_POST["test"]))||(empty($auteur["email"]))||(empty($auteur["pseudo"]))||(empty($form["hub"]))||(empty($form["insee"]))||(empty($form["ancre"]))||(empty($form["url"])&&(empty($form["annonce"]))))
|
|
$msg_form[]=ERREUR_UTILISA_CHAMPS_ABSENTS;
|
|
else
|
|
{
|
|
if((empty($_SESSION["mot"]))||(empty($_SESSION["lettre"]))||((time()-intval($_SESSION["timeS"]))<FORM_MIN_DUREE))
|
|
$msg_form[]=ERREUR_IMPREVUE;
|
|
else
|
|
{
|
|
$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;
|
|
}
|
|
}
|
|
}
|
|
elseif((empty($form["hub"]))||(empty($form["insee"]))||(empty($form["ancre"]))||(empty($form["url"])&&(empty($form["annonce"]))))
|
|
$msg_form[]=ERREUR_UTILISA_CHAMPS_ABSENTS;
|
|
|
|
if(empty($msg_form))
|
|
{
|
|
//recherche du hub pour la ville et le type d'actualité choisis.
|
|
if(empty($Bd))
|
|
require("../modele/connexion-bd.php");
|
|
$ville=get_villes($form["insee"],"insee");
|
|
if((empty($ville))||(empty($ville[0]["cp"])))
|
|
$msg_form[]=ERREUR_IMPREVUE;
|
|
else
|
|
{
|
|
$cp_ville=$ville[0]["cp"];
|
|
switch ($form["hub"])
|
|
{
|
|
case "agenda":
|
|
$hub_nom="Agenda $cp_ville";
|
|
break;
|
|
case "annonce":
|
|
$hub_nom="Annonces $cp_ville";
|
|
break;
|
|
case "cp":
|
|
$hub_nom="Actualités $cp_ville";
|
|
break;
|
|
default;
|
|
$msg_form[]=ERREUR_IMPREVUE;
|
|
break;
|
|
}
|
|
if(!empty($hub_nom))
|
|
{
|
|
$hub_infos=FclFlux_hub::recherche($hub_nom,"nom","id_hub");
|
|
if(empty($hub_infos))
|
|
{
|
|
$ajout_journal=new journal_erreurs(array(__FILE__,__LINE__,ERREUR_SQL_RECHERCHE." >> ".htmlentities($hub_nom,ENT_QUOTES)));
|
|
$msg_form[]=ERREUR_IMPREVUE;
|
|
}
|
|
else
|
|
{
|
|
$hub=new FclFlux_hub($hub_infos);
|
|
$form["hub"]=$hub;
|
|
unset($hub);
|
|
}
|
|
}
|
|
}
|
|
if(empty($msg_form))
|
|
{
|
|
// enregistrement de l'annonce
|
|
$form["limites"]["ancre_long_min"]=POST_MIN_ANCRE;
|
|
$form["limites"]["ancre_long_max"]=POST_MAX_ANCRE;
|
|
$form["limites"]["url_long_max"]=POST_MAX_URL;
|
|
$form["limites"]["annonce_long_min"]=POST_MIN_ANNONCE;
|
|
$form["limites"]["annonce_long_max"]=POST_MAX_ANNONCE;
|
|
if(empty($user->connexion_ok))
|
|
{
|
|
// je commence par vérifier que l'email fourni ne correspond pas à un utilisateur n'ayant pas validé son compte
|
|
$infos_test=FclFlux_utilisateur::recherche($auteur["email"],"email","time_validation");
|
|
if((!empty($infos_test))&&(empty($infos_test["time_validation"])))
|
|
$msg_form[]="<strong>Vous devez d'abord valider votre compte avant de pouvoir proposer une actualité.</strong><br>Pour ce faire cliquez sur le lien de validation que vous avez reçu sur votre adresse : <strong>".htmlspecialchars($auteur["email"])."</strong>.<br>Si vous ne trouvez pas ce message (même après avoir vérifié le dossier \"spam\" de votre messagerie) ou encore que vous vous êtes trompé lors de la saisie de votre email, <a href='".PAGE_CONTACT."'>contactez-nous</a> pour obtenir de l'aide.";
|
|
else
|
|
{
|
|
$annonce=new FclFlux_post($form);
|
|
if(!empty($annonce->erreurs))
|
|
$msg_form=array_merge($annonce->erreurs,$msg_form);
|
|
else
|
|
{
|
|
$ajout=$annonce->ajout($auteur);//créé le compte en même temps que l'annonce.
|
|
if(!empty($annonce->erreurs))
|
|
$msg_form=array_merge($annonce->erreurs,$msg_form);
|
|
// cookie utile pour abonner l'utilisateur à la bonne ville lorsqu'il valide son compte.
|
|
$date_expire_cookie=time()+(3600*24)*COMPTE_VALIDATION_MAX_DUREE;
|
|
setcookie("insee_post",$form["insee"],$date_expire_cookie,"/",SITE_COOKIES_DOMAINE);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
$form["auteur"]=$user;//utilisateur connecté
|
|
$annonce=new FclFlux_post($form);
|
|
if(!empty($annonce->erreurs))
|
|
$msg_form=array_merge($annonce->erreurs,$msg_form);
|
|
else
|
|
{
|
|
$ajout=$annonce->ajout();
|
|
if(!empty($annonce->erreurs))
|
|
$msg_form=array_merge($annonce->erreurs,$msg_form);
|
|
}
|
|
}
|
|
$Bd=null;
|
|
if(empty($msg_form))
|
|
{
|
|
if((isset($ajout))&&($ajout===false))
|
|
$msg_form[]=ERREUR_IMPREVUE;
|
|
elseif(empty($user->connexion_ok))
|
|
$msg_form[]=MSG_UTILISA_ENVOI_POST_VALID_CREA_COMPTE;
|
|
elseif(!empty($form["annonce"]))
|
|
$id_post=$annonce->id_post;
|
|
else
|
|
$msg_form[]=MSG_UTILISA_ENVOI_POST_VALID;
|
|
}
|
|
}
|
|
}
|
|
if(!empty($id_post))
|
|
{
|
|
if($ajax_on)
|
|
{
|
|
echo $id_post;
|
|
exit();
|
|
}
|
|
else
|
|
{
|
|
header("location:".PAGE_AJOUT_POST_ILLUSTRATION.$annonce->id_post);
|
|
exit();
|
|
}
|
|
}
|
|
elseif((!empty($msg_form))&&($ajax_on))
|
|
{
|
|
if(($msg_form[0]==MSG_UTILISA_ENVOI_POST_VALID_CREA_COMPTE)||($msg_form[0]==MSG_UTILISA_ENVOI_POST_VALID))
|
|
echo str_replace("\"","'",$msg_form[0]);//mise en forme via JS
|
|
else
|
|
echo get_html_alerte_msg($msg_form);
|
|
} |