extranet/includes/soaperror.php

102 lines
2.6 KiB
PHP

<?php
/**
* SoapError - Gère les erreurs SOAP
* @package SoapError
* @author Michael RICOIS
* @copyright Scores&Decisions
*/
require_once 'phpmailer/class.phpmailer.php';
/**
* Recupère les erreurs SOAP et les traite.
* @param string $lastRequest
* @param string $lastResponse
* @param array $fault
* @param bool $debug
* @return string
*/
function processSoapFault($clientSoap, $fault, $tabInfo, $debug = FALSE){
global $firephp;
$message = 'Request : '. $clientSoap->__getLastRequest() . '\n\n' .
'Response : '.$clientSoap->__getLastResponse() . '\n\n';
logSoapFault($message);
$message = 'Request : '. htmlspecialchars($clientSoap->__getLastRequest()) . '<br/><br/>' .
'Response : '. htmlspecialchars($clientSoap->__getLastResponse()) . '<br/><br/>';
if(is_object($fault)){
}else{
foreach ($fault as $key => $value){ $message.= $key .' : '. $value . '<br/><br/>';}
}
$message.= '<br/>';
$message.= 'Informations de debug : <br/>';
$message.= '<pre>';
$message.= 'REQUEST : '.print_r($_REQUEST,true).'<br/><br/>';
$message.= 'SERVER : '.print_r($_REQUEST,true).'<br/><br/>';
$message.= 'SESSION : '.print_r($_SESSION,true).'<br/><br/>';
$message.= 'tabInfo : '.print_r($tabInfo,true).'<br/><br/>';
$message.= '</pre>';
if($debug == TRUE){
print '<pre>';
print $message;
print '</pre>';
}else{
mailSoapFault($message);
print messageSoapFault();
}
}
/**
* Affiche un message d'erreur sympatique pour le client.
* @return string
*/
function messageSoapFault(){
(defined('ERROR_SOAP')) ? ($message = ERROR_SOAP) : ($message = "Une erreur est survenue lors de votre requête") ;
return $message;
}
/**
* Envoi de l'erreur Soap par mail.
* @param string $message
* @return void
*/
function mailSoapFault($message)
{
$mail = new PHPMailer(true);
$mail->IsSendmail();
try
{
$mail->SetFrom('contact@scores-decisions.com', 'Serveur SD-13408');
$mail->AddAddress(EMAIL_SUPPORTDEV, 'Support');
$mail->Subject = "Erreur SOAP - (Date :".date("d")."/".date("m")."/".date("Y").")";
$mail->MsgHTML($message);
$mail->Send();
}
catch (phpmailerException $e)
{
//echo $e->errorMessage();
} catch (Exception $e) {
//echo $e->getMessage();
}
}
/**
* Fonction qui enregistre les messages d'erreur dans un log.
* @param string $message
* @return void
*/
function logSoapFault($message)
{
$fichier = 'errorsoap-'.date('Y').date('m').date('d').date('H').date('i').date('s').'.txt';
file_put_contents(PATH_DATA.'/log/'.$fichier, $message);
}
?>