hellofacteurV1/ctrl/utilisateur_contact_tests.php

98 lines
4.1 KiB
PHP
Executable File

<?php
/**
* Script testant les données envoyées lors de l'envoi d'un message à un utilisateur par un internaute
* qui peut être connecté au site ou non
* Ce script peut être appelé en ajax ou directement en php si JS désactivé
*
**/
$form["email"]=strip_tags(trim($_POST["email"]));
$form["pseudo"]=strip_tags(trim($_POST["pseudo"]));
$form["sujet"]=strip_tags(trim($_POST["sujet"]));
$form["message"]=strip_tags(trim($_POST["message"]));
$id_auteur=intval($_POST["id_auteur"]);
if(isset($_POST["id_annonce"]))
$id_annonce=intval($_POST["id_annonce"]);
$ajax_on=false;
if(!empty($_POST["ajax"]))
{
$ajax_on=true;
require_once("../modele/FclFlux_utilisateur.php");
$user=new FclFlux_utilisateur();
$user->test_session(false);// besoin de savoir si utilisateur est connecté ou pas...
//++ les infos du destinataire
$utilisateur=new FclFlux_utilisateur();
$utilisateur->id_utilisateur=$id_auteur;
$utilisateur_infos=$utilisateur->get_infos_cache(CREA_CACHE);
if((empty($utilisateur_infos))||(empty($utilisateur_infos["time_validation"]))||(empty($utilisateur_infos["email"]))||(empty($utilisateur_infos["pseudo"]))||($utilisateur_infos["statut"]=="administrateur"))
$msg_form[]=ERREUR_IMPREVUE;
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($form["email"])||empty($form["pseudo"])||empty($form["sujet"])||empty($form["message"]))
$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($_POST["test"]))!=($mot[$nb_lettre]))
$msg_form[]=ERREUR_UTILISA_ANTISPAM.$mot[$nb_lettre];
}
}
}
else if(empty($form["sujet"])||empty($form["message"]))
$msg_form[]=ERREUR_UTILISA_CHAMPS_ABSENTS;
if(empty($msg_form))
{
$ajout_message="<br><br><i>Ce message vous est envoyé par un utilisateur du site <b>".SITE_NOM."</b> (son nom ou pseudo : ".$form["pseudo"].").";
if(!empty($id_annonce))
$ajout_message.="<br><br>Il s'agit d'une réponse à votre annonce située sur cette page : <a href='".PAGE_REPERTOIRE_POST_INFO.$id_annonce."' title='votre annonce'>".PAGE_REPERTOIRE_POST_INFO.$id_annonce."</a>";
$ajout_message.="</i>";
// envoi du message avec PHPMailer
// connexion au serveur smtp si il y a lieu :
require(BASE_REP."../divers/phpmailer-initialise.php");
$Mail_expediteur_email=EMAIL_TRANSACTIONNEL_DE;
$Mail_expediteur_nom=SITE_NOM;
$Mail_reponse_email=$form["email"];
$Mail_reponse_nom=$form["pseudo"];
$Mail_destinataire_email=$utilisateur_infos["email"];
$Mail_destinataire_nom=$utilisateur_infos["pseudo"];
$Mail_sujet=$form["sujet"];
// message alternatif lorsque le html n'est pas lu :
$Mail_boby_txt=$form["message"].strip_tags(str_replace("<br>","\n",$ajout_message));
//-- version html :
//texte invisible (sauf certains webmail ?) :
$Mail_html_sujet="Message de ".$form["pseudo"].".";
//entête avant logo :
$Mail_html_header=$Mail_html_sujet;
//texte du message, hors liste de liens :
$Mail_html_intro=nl2br($form["message"])."$ajout_message";
//footer du mail html :
$Mail_html_footer="<p><a href='".SITE_NOM."'>".SITE_NOM."</a>, ".SITE_SLOGAN."</p>";
$Mail_boby_html="";
ob_start();
include(BASE_REP."../www/".TEMPLATE_REP."/mail/defaut.php");
$Mail_boby_html=ob_get_contents();
ob_end_clean();
$SMTP_CustomHeader["X-Mailin-Tag"]="reponse_annonce";
require(BASE_REP."../divers/phpmailer-envoi.php");
if(!$mail->Send())
{
$ajout_journal=new journal_erreurs(array(__FILE__,__LINE__,ERREUR_EMAIL_ENVOI.$mail->ErrorInfo));
$msg_form[]=ERREUR_UTILISA_ENVOI_MESSAGE_PERSO;
}
else
$msg_form[]=MSG_UTILISA_ENVOI_MESSAGE_VALID;
}
if((!empty($msg_form))&&($ajax_on))
{
if(($msg_form[0]==MSG_UTILISA_ENVOI_MESSAGE_VALID)||($msg_form[0]==ERREUR_UTILISA_ENVOI_MESSAGE_PERSO))
echo str_replace("\"","'",$msg_form[0]);//mise en forme via JS
else
echo get_html_alerte_msg($msg_form);
}