Fix: Better error management

This commit is contained in:
Laurent Destailleur 2011-08-26 17:59:14 +00:00
parent 07553da71a
commit e07d7ad928
2 changed files with 33 additions and 4 deletions

View File

@ -19,7 +19,7 @@
* \file htdocs/core/class/rssparser.class.php * \file htdocs/core/class/rssparser.class.php
* \ingroup core * \ingroup core
* \brief File of class to parse rss feeds * \brief File of class to parse rss feeds
* \version $Id: rssparser.class.php,v 1.1 2011/08/17 13:44:13 eldy Exp $ * \version $Id: rssparser.class.php,v 1.2 2011/08/26 17:59:14 eldy Exp $
*/ */
class RssParser class RssParser
{ {
@ -75,8 +75,15 @@ class RssParser
{ {
include_once(DOL_DOCUMENT_ROOT.'/lib/files.lib.php'); include_once(DOL_DOCUMENT_ROOT.'/lib/files.lib.php');
// Check parameters
if (! dol_is_url($urlRSS))
{
$this->error="ErrorBadUrl";
return -1;
}
$this->_urlRSS = $urlRSS; $this->_urlRSS = $urlRSS;
$newpathofdestfile=$cachedir.'/'.md5($this->_urlRSS); $newpathofdestfile=$cachedir.'/'.md5($this->_urlRSS);
$newmask=octdec('0644'); $newmask=octdec('0644');
//dol_syslog("RssPArser::parser parse url=".$urlRSS." => cache file=".$newpathofdestfile); //dol_syslog("RssPArser::parser parse url=".$urlRSS." => cache file=".$newpathofdestfile);
@ -110,7 +117,8 @@ class RssParser
{ {
try { try {
$rss = @simplexml_load_file($this->_urlRSS); $rss = @simplexml_load_file($this->_urlRSS);
} var_dump($this->_urlRSS);
}
catch (Exception $e) { catch (Exception $e) {
print 'Error retrieving URL '.$this->urlRSS.' - '.$e->getMessage(); print 'Error retrieving URL '.$this->urlRSS.' - '.$e->getMessage();
} }

View File

@ -19,7 +19,7 @@
/** /**
* \file htdocs/lib/files.lib.php * \file htdocs/lib/files.lib.php
* \brief Library for file managing functions * \brief Library for file managing functions
* \version $Id: files.lib.php,v 1.71 2011/07/31 23:25:43 eldy Exp $ * \version $Id: files.lib.php,v 1.72 2011/08/26 17:59:14 eldy Exp $
*/ */
/** /**
@ -186,6 +186,7 @@ function dol_compare_file($a, $b)
/** /**
* Return mime type of a file * Return mime type of a file
*
* @param file Filename we looking for MIME type * @param file Filename we looking for MIME type
* @param default Default mime type if extension not found in known list * @param default Default mime type if extension not found in known list
* @param mode 0=Return full mime, 1=otherwise short mime string, 2=image for mime type, 3=source language * @param mode 0=Return full mime, 1=otherwise short mime string, 2=image for mime type, 3=source language
@ -295,6 +296,7 @@ function dol_mimetype($file,$default='application/octet-stream',$mode=0)
/** /**
* Test if filename is a directory * Test if filename is a directory
*
* @param folder Name of folder * @param folder Name of folder
* @return boolean True if it's a directory, False if not found * @return boolean True if it's a directory, False if not found
*/ */
@ -307,6 +309,7 @@ function dol_is_dir($folder)
/** /**
* Return if path is a file * Return if path is a file
*
* @param $pathoffile * @param $pathoffile
* @return boolean True or false * @return boolean True or false
*/ */
@ -316,8 +319,26 @@ function dol_is_file($pathoffile)
return is_file($newpathoffile); return is_file($newpathoffile);
} }
/**
* Return if path is an URL
*
* @param $url
* @return boolean True or false
*/
function dol_is_url($url)
{
$tmpprot=array('file','http','ftp','zlib','data','ssh2','ogg','expect');
foreach($tmpprot as $prot)
{
if (preg_match('/^'.$prot.':/i',$url)) return true;
}
return false;
}
/** /**
* Test if a folder is empty * Test if a folder is empty
*
* @param folder Name of folder * @param folder Name of folder
* @return boolean True if dir is empty or non-existing, False if it contains files * @return boolean True if dir is empty or non-existing, False if it contains files
*/ */