Bonjour,
Je travaille sur un logiciel open source nommé agora project et j'ai un problème au niveau de l'envoi de courriel, en effet après avoir rempli tous les champs requis pour l'envoi de mails, j'obtiens le message suivant:"le courriel n'a pas pu être envoyé" et plus en haut de la page j'ai la mention suivante "
Notice: Undefined variable: header in C:\wamp\www\agora\fonctions\divers.inc.php on line 43",
en fait je n'arrive toujours pas à résoudre cette erreur de sorte que l'envoi de courriel soit effectué, voici le code correspondant à divers.inc.php:
<?php
//// INFOS SUR UN ESPACE
////
function info_espace($id_espace, $champ="*")
{
if($champ=="*") { return db_ligne("SELECT * FROM gt_espace WHERE id_espace='".$id_espace."' "); }
else { return db_valeur("SELECT ".$champ." FROM gt_espace WHERE id_espace='".$id_espace."' "); }
}
//// MODULES D'UN ESPACE
////
function modules_espace($id_espace)
{
$tab_modules = db_tableau("SELECT DISTINCT T1.*, T2.* FROM gt_module T1 LEFT JOIN gt_jointure_espace_module T2 ON T1.nom=T2.nom_module WHERE T2.id_espace='".$id_espace."' ORDER BY T2.classement asc");
// Agenda toujours affiché pour les utilisateurs de l'utilisateur
if($_SESSION["user"]["id_utilisateur"] > 0 and $_SESSION["user"]["agenda_desactive"]!="1" and array_multi_search($tab_modules,"nom","agenda")==false) $tab_modules["agenda"] = db_ligne("SELECT * FROM gt_module WHERE nom='agenda'");
return $tab_modules;
}
//// ENVOI DE MAIL(S)
////
function envoi_mail($destinataires, $objet_mail, $contenu_mail, $options="")
{
//// INITIALISATION
global $trad, $infos_trad;
if(empty($options["message_alert"])) $options["message_alert"] = "oui";
if(empty($options["envoi_fichiers"])) $options["envoi_fichiers"] = "non";
if(empty($options["header_footer"])) $options["header_footer"] = "oui";
$retour = "\n";
$frontiere = "-----=".md5(uniqid(mt_rand()));
$fichiers_joints = control_upload();
if(isset($_SESSION["user"]["nom"])) { $expediteur = auteur($_SESSION["user"])." <".$_SESSION["user"]["mail"].">"; }
else { $expediteur = " noreply <noreply@".str_replace("www.","",$_SERVER["SERVER_NAME"]).">"; }
//// DESTINATAIRES
if(!is_array($destinataires)) $destinataires = array($destinataires);
foreach($destinataires as $dest_key => $dest_tmp) { if(is_numeric($dest_tmp)) $destinataires[$dest_key] = info_utils($dest_tmp,"mail"); }
$destinataires = implode(",", array_unique($destinataires));
//// HEADERS
$header.= "From: ".$expediteur.$retour;
$header.= "MIME-Version: 1.0".$retour;
$header.= "Bcc: ".$destinataires.$retour;
if($fichiers_joints==true) { $header.= "Content-Type: multipart/mixed; boundary=\"".$frontiere."\"".$retour; }
else { $header.= "Content-Type: text/html; charset=\"".$infos_trad["charset"]."\" ".$retour; }
//// MESSAGE HTML
$message = "";
if($fichiers_joints==true){
$message .= "--".$frontiere.$retour;
$message .= "Content-Type: text/html; charset=\"".$infos_trad["charset"]."\" ".$retour;
}
$message .= "<html>".$retour."<head>".$retour."<title>".$objet_mail."</title>".$retour."</head>".$retour."<body>".$retour;
if(isset($_SESSION["user"]["nom"]) and $options["header_footer"]=="oui") $message .= $trad["divers"]["mail_envoye_par"]." ".auteur($_SESSION["user"])." (".$_SESSION["espace"]["nom"].") : <br /><br />";
$message .= "<b>".$contenu_mail."</b>";
if($options["header_footer"]=="oui") $message .= "<br /><br /><a href=\"".$_SESSION["agora"]["adresse_web"]."\" target=\"_blank\"> ".$_SESSION["agora"]["nom"]." </a><br />";
$message .= "</body>".$retour."</html>".$retour;
//// FICHIERS JOINTS
foreach($_FILES as $id_input_fichier => $fichier)
{
if($fichier["error"]==0 and $options["envoi_fichiers"]=="oui"){
// Ajout du fichier au message
$message .= "--".$frontiere.$retour;
$message .= "Content-Type: ".$fichier["type"]."; name=\"".$fichier["name"]."\"".$retour;
$message .= "Content-Transfer-Encoding: base64".$retour;
$message .= "Content-Disposition:attachement; filename=\"".$fichier["name"]."\"".$retour;
$message .= chunk_split(base64_encode(file_get_contents($fichier["tmp_name"]))).$retour;
}
}
//// ENVOI DU MAIL + RAPPORT D'ENVOI SI DEMANDE
$message_envoye = @mail(null, $objet_mail, $message, $header);
if($options["message_alert"]=="oui" and $message_envoye==true) { alert($trad["divers"]["mail_envoye"]); }
elseif($options["message_alert"]=="oui" and $message_envoye==false) { alert($trad["divers"]["mail_pas_envoye"]); }
return $message_envoye;
}
//// REDUCTION D'UN TEXTE
////
function text_reduit($chaine, $nb_caract_maxi=200)
{
if(strlen($chaine)>=$nb_caract_maxi){
$chaine = strip_tags($chaine); // Enlève les caractères html
$chaine = substr($chaine, 0, $nb_caract_maxi); // On réduit à la taile maxi
if(strrpos($chaine," ") > 1) { $chaine = substr($chaine, 0, strrpos($chaine," ")); } // On enlève le dernier mot tronqué auquel cas
$chaine = $chaine."...";
}
return $chaine;
}
//// ALERT ERREUR
////
function alert($text_alerte)
{
echo "<script type=\"text/javascript\"> alert(\"".$text_alerte."\"); </script>";
}
//// REDIRECTION VERS UNE AUTRE PAGE
////
function redir($adresse)
{
echo "<script type=\"text/javascript\"> window.location.replace(\"".$adresse."\"); </script>";
exit();
}
//// REDIRECTION VERS LE MODULE PAR DEFAUT DE L'ESPACE
////
function redir_module_espace()
{
if(isset($_SESSION["espace"]["modules"])) { redir(root_path.$_SESSION["espace"]["modules"][0]["module_dossier_fichier"]."/"); }
else { redir(root_path); }
}
//// ON DONNE UNE VALEUR A UN CHAMPS
////
function set_value($id,$valeur)
{
return "<script type=\"text/javascript\"> set_value(\"".$id."\", \"".$valeur."\"); </script>";
}
//// INFOBULLE
function infobulle($text)
{
if($text!="") return " onMouseOver=\"bulle('".addslashes($text)."');\" onMouseOut=\"bullefin();\" ";
}
//// FORMAT TEXT POUR L'ECRITURE DANS LA BDD
////
function formater($chaine, $options="")
{
//// Convertit les caractères spéciaux en html pour éviter du code malveillant
if(eregi("html",$options)) { $chaine = htmlspecialchars($chaine); }
//// Ajoute la propriete wmode dans les balises <embed> : force l'affichage des menus d'element au dessus des animations flash
if(eregi("editeur",$options)) { $chaine = str_replace(array("<EMBED","<embed"), "<embed wmode=\"transparent\" ", $chaine); }
//// Ajoute des slashes si le magic_quotes n'est pas activé ou le slash est demandé
if(eregi("slash",$options) or get_magic_quotes_gpc()!="1") $chaine = addslashes($chaine);
return trim($chaine);
}
//// FORMAT DATE POUR L'ECRITURE DANS LA BDD
////
function formater_date($date)
{
//// Convertit les caractères spéciaux en html pour éviter du code malveillant
if($date=="") { $date = "null"; }
else { $date = "'".$date."'"; }
return $date;
}
//// ENLEVE LES SLASHES SI MAGIC QUOTES EST ACTIVE
////
function magicquotes_strip($chaine)
{
if(get_magic_quotes_gpc()=="1") { return stripslashes($chaine); }
else { return $chaine; }
}
//// REDÉFINITION DU PARAMETRAGE DE PHP
////
function modif_php_ini()
{
@ini_set("memory_limit",memory_limit);
@ini_set("max_execution_time",max_execution_time);
}
//// MODIF CONFIG.INC.PHP
////
function modif_fichier_config($fichier_config, $tab_valeurs_modif)
{
// Test si le fichier est accessible en écriture
if(!is_file($fichier_config)) { alert("config.inc.php : no access"); exit(); }
elseif(!is_writable($fichier_config)) { alert("config.inc.php : no writing access"); exit(); }
else {
$config_tab = file($fichier_config);
// Lecture de chaque ligne du fichier
foreach($config_tab as $id_ligne => $ligne)
{
// Pour chaque valeur du tableau de modif, on vérifie si elle se trouve dans la ligne courante :
foreach($tab_valeurs_modif as $id_valeur => $valeur)
{
if(eregi($id_valeur,$ligne)) {
if($valeur!="true" and $valeur!="false") $valeur = "\"".$valeur."\"";
$config_tab[$id_ligne] = "define(\"".$id_valeur."\", ".$valeur."); \n";
}
}
}
// On remplace le contenu du fichier
$contenu_config = implode("", $config_tab);
$fp = fopen($fichier_config, "w");
$retour = fwrite($fp, $contenu_config);
fclose($fp);
}
}
//// RECHERCHE UNE VALEURE DANS UN TABLEAU MULTIDIMENTIONNEL
////
function array_multi_search($tableau, $cle, $valeur)
{
// Controle s'il s'agit bien d'un tableau
if(is_array($tableau)) {
// Element dans le tableau courant ?
if(array_key_exists($cle,$tableau) and in_array($valeur,$tableau)) return true;
// Sinon Element dans un sous-tableaux ? (recherche récursive)
foreach($tableau as $elem) { if(is_array($elem) and array_multi_search($elem, $cle, $valeur)) return true; }
// Sinon Recherche infructueuse
return false;
}
}
//// ON RECHARGE LA PAGE PRINCIPALE & ON FERME LE POPUP
////
function reload_close_popup()
{
echo "<script type=\"text/javascript\"> window.opener.location.replace(window.opener.location); window.close(); </script>";
exit;
}
//// RETOURNE UNE CHAINE SANS CARACTERES SPECIAUX
////
function caractere_speciaux($txt)
{
//// On enlève les caracteres spéciaux
$txt = eregi_replace("[àâä]", "a", $txt);
$txt = eregi_replace("[éèêë]", "e", $txt);
$txt = eregi_replace("[ïì]", "i", $txt);
$txt = eregi_replace("[ôö]", "o", $txt);
$txt = eregi_replace("[ùûü]", "u", $txt);
$txt = eregi_replace("[ç]", "c", $txt);
return $txt;
}
//// RECUPERE UNE PREFERENCE UTILISATEUR ET ENREGISTRE LA NOUVELLE SI BESOIN (tri, affichage, etc.)
////
function pref_user($cle_preference, $cle_request=null, $valeur_db_exclue=null)
{
if($_SESSION["user"]["id_utilisateur"]>0)
{
// Récup' la préférence enregistrée
$valeur_preference = db_valeur("SELECT valeur FROM gt_utilisateur_preferences WHERE id_utilisateur='".$_SESSION["user"]["id_utilisateur"]."' AND cle='".$cle_preference."' ");
// $_REQUEST n'existe pas & la préference existe dans la bdd => Passe la préference en $_REQUEST
if($cle_request!=null and empty($_REQUEST[$cle_request]) and $valeur_preference!="") { $_REQUEST[$cle_request] = $valeur_preference; }
// Sinon si $_REQUEST existe & peut être enregistrée => Enregistre la nouvelle préference
elseif(isset($_REQUEST[$cle_request]) and ($valeur_db_exclue==null or $valeur_db_exclue!=$_REQUEST[$cle_request]))
{
if($valeur_preference!="") { db_query("UPDATE gt_utilisateur_preferences SET valeur='".$_REQUEST[$cle_request]."' WHERE id_utilisateur='".$_SESSION["user"]["id_utilisateur"]."' AND cle='".$cle_preference."' "); }
else { db_query("INSERT INTO gt_utilisateur_preferences SET id_utilisateur='".$_SESSION["user"]["id_utilisateur"]."', cle='".$cle_preference."', valeur='".$_REQUEST[$cle_request]."' "); }
$valeur_preference = $_REQUEST[$cle_request];
}
// On retourne la préference
return $valeur_preference;
}
}
//// OPTION DU MODULE ACTIVE ?
////
function option_module($option)
{
foreach($_SESSION["espace"]["modules"] as $module)
{
if(eregi($option,$module["options"])) return true;
}
}
//// INITIALISATION DE LA RESOLUTION DES ELEMENTS
////
function init_resolution_elements($width="350px", $height="100px")
{
global $width_element, $height_element;
// Fonction de la résolution d'écran
if($_SESSION["cfg"]["resolution_width"]>1275)
{
if($width=="350px") { $width = "310px"; }
elseif($width=="170px") { $width = "185px"; }
}
$width_element = $width;
$height_element = $height;
}
//// AFFICHAGE DE LA BARRE DE TITRE D'UN POPUP
////
function titre_popup($titre)
{
echo "<div class=\"titre_popup\">".$titre."</div><br /><br />";
}
?>
Merci de votre aide
Configuration: Windows XP Internet Explorer 7.0