function getNewsByDate($date, $BLOGURL) { $NUMITEMS = 100; $TIMEFORMAT = "j F Y, g:ia"; $CACHE = "/tmp/" . md5($BLOGURL); $TIME = 4; if (!file_exists($CACHE) || time() - filemtime($CACHEFILE) > 3600 * $CACHETIME) { if ($feed_content = http_get_contents($BLOGURL)) { $feed = fopen($CACHE, "w'"); fwrite($feed, $feed_content); fclose($feed); } } $rssParser = new myRSSParser($CACHE); $feeddata = $rssParser->getRawOutput(); extract($feeddata['RSS']['CHANNEL'][0], EXTR_PREFIX_ALL, 'rss'); echo htmlspecialchars($rss_TITLE) . "<br> \n"; $count = 0; foreach ($rss_ITEM as $itemdata) { $pubdate = $itemdata['PUBDATE']; if (strpos($pubdate, $date) !== false) { echo $itemdata['LINK'] . " " . $itemdata['DESCRIPTION'] . " " . $itemdata['PUBDATE'] . "<br>\n"; } if (++$count >= $NUMITEMS) { break; } } }
function auth_ok($config = array()) { $ok = FALSE; // check for configuration problem if (!$config) { $config = config_get(); } if (!config_error($config)) { // check for aleady signed in $uid = auth_userid(); $ok = !!$uid; if ($ok) { // we found a username, check for password switch ($config['authentication']) { case '': break; // any password is okay, just look for user // any password is okay, just look for user default: $ok = FALSE; if (is_string($config['authentication'])) { $password = http_get_contents($config['authentication']); $supplied = empty($_SERVER['PHP_AUTH_PW']) ? '' : $_SERVER['PHP_AUTH_PW']; $ok = $password && $supplied && $password == $supplied; } } } } return $ok; }
function config_defaults($config = array()) { $config['authentication'] = empty($config['authentication']) ? '' : $config['authentication']; $config['aws_access_key_id'] = empty($config['aws_access_key_id']) ? '' : $config['aws_access_key_id']; $config['aws_secret_access_key'] = empty($config['aws_secret_access_key']) ? '' : $config['aws_secret_access_key']; $config['export_audio_codec_audio'] = empty($config['export_audio_codec_audio']) ? 'libmp3lame' : $config['export_audio_codec_audio']; $config['export_audio_bitrate'] = empty($config['export_audio_bitrate']) ? '128' : $config['export_audio_bitrate']; $config['export_audio_codec'] = empty($config['export_audio_codec']) ? 'aac' : $config['export_audio_codec']; $config['export_audio_extension'] = empty($config['export_audio_extension']) ? 'mp3' : $config['export_audio_extension']; $config['export_audio_rate'] = empty($config['export_audio_rate']) ? '44100' : $config['export_audio_rate']; $config['export_dimensions'] = empty($config['export_dimensions']) ? '512x288' : $config['export_dimensions']; $config['export_extension'] = empty($config['export_extension']) ? 'mp4' : $config['export_extension']; $config['export_video_rate'] = empty($config['export_video_rate']) ? '30' : $config['export_video_rate']; $config['export_meta_title'] = empty($config['export_meta_title']) ? '' : $config['export_meta_title']; $config['export_video_bitrate'] = empty($config['export_video_bitrate']) ? '2000' : $config['export_video_bitrate']; $config['export_video_codec'] = empty($config['export_video_codec']) ? 'libx264' : $config['export_video_codec']; $config['web_root_directory'] = empty($config['web_root_directory']) ? $_SERVER['DOCUMENT_ROOT'] : $config['web_root_directory']; $config['temporary_directory'] = empty($config['temporary_directory']) ? sys_get_temp_dir() : $config['temporary_directory']; $config['queue_directory'] = empty($config['queue_directory']) ? path_concat($config['temporary_directory'], 'queue') : $config['queue_directory']; $config['import_audio_bitrate'] = empty($config['import_audio_bitrate']) ? '128' : $config['import_audio_bitrate']; $config['import_audio_extension'] = empty($config['import_audio_extension']) ? 'mp3' : $config['import_audio_extension']; $config['import_audio_basename'] = empty($config['import_audio_basename']) ? 'audio' : $config['import_audio_basename']; $config['import_audio_rate'] = empty($config['import_audio_rate']) ? '44100' : $config['import_audio_rate']; $config['import_dimensions'] = empty($config['import_dimensions']) ? '256x144' : $config['import_dimensions']; $config['import_extension'] = empty($config['import_extension']) ? 'jpg' : $config['import_extension']; $config['import_video_rate'] = empty($config['import_video_rate']) ? '10' : $config['import_video_rate']; $config['import_image_quality'] = empty($config['import_image_quality']) ? '1' : $config['import_image_quality']; $config['import_original_basename'] = empty($config['import_original_basename']) ? 'original' : $config['import_original_basename']; $config['import_waveform_backcolor'] = empty($config['import_waveform_backcolor']) ? 'FFFFFF' : $config['import_waveform_backcolor']; $config['import_waveform_basename'] = empty($config['import_waveform_basename']) ? 'waveform' : $config['import_waveform_basename']; $config['import_waveform_dimensions'] = empty($config['import_waveform_dimensions']) ? '8000x32' : $config['import_waveform_dimensions']; $config['import_waveform_extension'] = empty($config['import_waveform_extension']) ? 'png' : $config['import_waveform_extension']; $config['import_waveform_forecolor'] = empty($config['import_waveform_forecolor']) ? '000000' : $config['import_waveform_forecolor']; $config['module_host'] = empty($config['module_host']) ? $_SERVER['HTTP_HOST'] : http_get_contents($config['module_host']); $config['user_media_host'] = empty($config['user_media_host']) ? $_SERVER['HTTP_HOST'] : http_get_contents($config['user_media_host']); $config['callback_host'] = empty($config['callback_host']) ? $_SERVER['HTTP_HOST'] : http_get_contents($config['callback_host']); $config['log_request'] = empty($config['log_request']) ? '' : $config['log_request']; $config['log_response'] = empty($config['log_response']) ? '' : $config['log_response']; $config['log_api_request'] = empty($config['log_api_request']) ? '' : $config['log_api_request']; $config['log_api_response'] = empty($config['log_api_response']) ? '' : $config['log_api_response']; $config['max_meg_audio'] = empty($config['max_meg_audio']) ? '' : $config['max_meg_audio']; $config['max_meg_image'] = empty($config['max_meg_image']) ? '' : $config['max_meg_image']; $config['max_meg_video'] = empty($config['max_meg_video']) ? '' : $config['max_meg_video']; $config['log_file'] = empty($config['log_file']) ? '' : $config['log_file']; $config['callback_directory'] = empty($config['callback_directory']) ? substr(dirname(dirname(__FILE__)), strlen(path_add_slash_end($config['web_root_directory']))) : $config['callback_directory']; $config['install_directory'] = empty($config['install_directory']) ? substr(dirname(dirname(dirname(__FILE__))), strlen(path_add_slash_end($config['web_root_directory']))) : $config['install_directory']; $config['cgi_directory'] = empty($config['cgi_directory']) ? substr(dirname(dirname(__FILE__)), strlen(path_add_slash_end(path_concat($config['web_root_directory'], $config['install_directory'])))) : $config['cgi_directory']; $config['user_media_directory'] = isset($config['user_media_directory']) ? $config['user_media_directory'] : path_concat(substr(dirname(dirname(dirname(__FILE__))), strlen(path_add_slash_end(path_concat($config['web_root_directory'], $config['install_directory'])))), 'user'); $config['user_media_url'] = isset($config['user_media_url']) ? $config['user_media_url'] : $config['user_media_directory']; $config['user_data_directory'] = isset($config['user_data_directory']) ? $config['user_data_directory'] : path_concat(substr(dirname(dirname(dirname(__FILE__))), strlen(path_add_slash_end($config['web_root_directory']))), 'user'); $config['module_directory'] = empty($config['module_directory']) ? substr(dirname(dirname(dirname(__FILE__))), strlen(path_add_slash_end($config['web_root_directory']))) : $config['module_directory']; $config['s3_bucket'] = empty($config['s3_bucket']) ? '' : $config['s3_bucket']; $config['s3_region'] = empty($config['s3_region']) ? '' : $config['s3_region']; $config['sqs_queue_url'] = empty($config['sqs_queue_url']) ? '' : $config['sqs_queue_url']; $config['chmod_directory_new'] = isset($config['chmod_directory_new']) ? $config['chmod_directory_new'] : '0775'; $config = service_config_defaults($config); ksort($config); return $config; }
function myAtomParser($file) { $errorlevel = error_reporting(); error_reporting($errorlevel & ~E_NOTICE); // instantiate xml-parser and assign event handlers $xml_parser = xml_parser_create(""); xml_set_object($xml_parser, $this); xml_set_element_handler($xml_parser, "startElement", "endElement"); xml_set_character_data_handler($xml_parser, "parseData"); // open file for reading and send data to xml-parser $data = preg_match("/^http/", $file) ? http_get_contents($file) : file_get_contents($file); xml_parse($xml_parser, $data) or die(sprintf("myAtomParser: Error <b>%s</b> at line <b>%d</b><br>", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser))); // dismiss xml parser xml_parser_free($xml_parser); error_reporting($errorlevel); }
function get_user($social_config) { global $config, $lang; if (!isset($_SESSION['od_access_token'])) { $params = array('client_id' => $social_config['odid'], 'client_secret' => $social_config['odsecret'], 'grant_type' => 'authorization_code', 'code' => $_GET['code'], 'redirect_uri' => $config['http_home_url'] . "index.php?do=auth-social&provider=od"); $token = @json_decode(http_get_contents('http://api.odnoklassniki.ru/oauth/token.do', $params), true); } else { $token = array('access_token' => $_SESSION['od_access_token']); } if (isset($token['access_token'])) { $sign = md5("application_key={$social_config['odpublic']}format=jsonmethod=users.getCurrentUser" . md5("{$token['access_token']}{$social_config['odsecret']}")); $params = array('method' => 'users.getCurrentUser', 'access_token' => $token['access_token'], 'application_key' => $social_config['odpublic'], 'format' => 'json', 'sig' => $sign); $user = @json_decode(http_get_contents('http://api.odnoklassniki.ru/fb.do' . '?' . http_build_query($params)), true); if (isset($user['uid'])) { if (!isset($_SESSION['od_access_token'])) { $_SESSION['od_access_token'] = $token['access_token']; $_SESSION['od_access_code'] = $_GET['code']; } if (!$user['email'] and isset($_GET['email'])) { $user['email'] = $_GET['email']; } return array('sid' => sha1('odnoklassniki' . $user['uid']), 'nickname' => $user['name'], 'name' => $user['first_name'] . ' ' . $user['last_name'], 'email' => $user['email'], 'avatar' => $user['pic_2'] . '.jpg', 'provider' => 'Odnoklassniki'); } else { return $lang['social_err_3']; } } else { return $lang['social_err_1']; } }
<?php use NovakSolutions\FrontDesk\Generate; use Doctrine\Common\Inflector; require_once '/vendor/autoload.php'; $coreParser = new Generate\CoreParser(); $coreApiDocsAsHtml = http_get_contents("https://developer.frontdeskhq.com/docs/api/v2"); $definitions = $coreParser->extractDataFromHtml($coreApiDocsAsHtml); $modelDefinitions = $coreParser->convertToModels($definitions); //Process Definitions Info Select, Update, Insert, etc... /** @var mixed $models */ $template = getTwigTemplate(); $models = array(); /** * @param $selectMethod * @return string */ $baseClass = 'CoreModel'; foreach ($modelDefinitions as $place => $models) { foreach ($models as $modelName => $model) { $standardMethods = array(); $fields = $model['fields']; $renderedTemplate = $template->render(compact('model', 'baseClass')); if (!file_exists("src/Model/{$place}")) { mkdir("src/Model/{$place}"); } file_put_contents("src/Model/{$place}/" . $modelName . '.php', $renderedTemplate); } } function http_get_contents($url) {
<?php function http_get_contents($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_TIMEOUT, 1); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); if (FALSE === ($retval = curl_exec($ch))) { echo curl_error($ch); } else { return $retval; } } $request_url = 'http://gdata.youtube.com/feeds/api/videos/sVKvNQgzPgY'; $result = http_get_contents($request_url); print_r($result); // $simpleXML = new SimpleXMLElement($result); // print_r($simpleXML); // $canal = 'UCwGog58wbTpXXcG9iWVb1hA'; $url = 'https://gdata.youtube.com/feeds/api/channels?q=soccer&start-index=11&max-results=10&v=2'; $ytString = file_get_contents($url); $ytXML = simplexml_load_string($ytString); echo 'YT SAIS: '; print_r($ytXML); echo '<hr/>'; echo '<hr/>'; $namespaces = $ytXML->getNamespaces(true); echo '<hr/>'; echo '<hr/>';
/** * Get PukiWiki Page List via http using cmd=filelist * @access public * @param string $url PukiWiki URL (cmd=filelist) * @return array * Page list whose each element has keys 'href', 'page', 'file'. * FALSE if HTTP GET failed. * @uses PKWKFilelistHandler * @uses PEAR XML/XML_HTMLSax.php * @uses $GLOBALS['ADMINPASS'] * @uses $GLOBALS['USERNAME'] * @uses $GLOBALS['USERPASS'] */ function &pkwk_get_existpages($url, $filter = NULL, $except = NULL) { $parsed = parse_url($url); $queries = array(); parse_str($parsed['query'], $queries); $cmd = $queries['cmd']; if ($cmd == 'filelist' && $GLOBALS['ADMINPASS'] != '') { // POST adminpass require_once 'HTTP/Request.php'; $req = new HTTP_Request($url); $req->setMethod(HTTP_REQUEST_METHOD_POST); $req->addPostData('pass', $GLOBALS['ADMINPASS']); $req->setBasicAuth($GLOBALS['USERNAME'], $GLOBALS['USERPASS']); if (PEAR::isError($req->sendRequest())) { return FALSE; } $html = $req->getResponseBody(); } else { if (($html = http_get_contents($url, $GLOBALS['USERNAME'], $GLOBALS['USERPASS'])) === FALSE) { return FALSE; } } require_once 'XML/XML_HTMLSax.php'; $parser = new XML_HTMLSax(); $handler = new PKWKFilelistHandler(); $parser->set_object($handler); $parser->set_element_handler('openHandler', 'closeHandler'); $parser->set_data_handler('dataHandler'); $parser->parse($html); if ($filter !== NULL) { $pregfilter = '/' . str_replace('/', '\\/', $filter) . '/'; foreach ($handler->pages as $i => $page) { if (!preg_match($pregfilter, $page['page'])) { unset($handler->pages[$i]); } } } if ($except !== NULL) { $pregexcept = '/' . str_replace('/', '\\/', $except) . '/'; foreach ($handler->pages as $i => $page) { if (preg_match($pregexcept, $page['page'])) { unset($handler->pages[$i]); } } } if ($cmd != 'filelist') { foreach ($handler->pages as $i => $page) { $handler->pages[$i]['file'] = get_wikifilename($page['page']); } } // unique (probably this can be done in html parsing process concurrently, though) $uniq_pages = array(); foreach ($handler->pages as $page) { $uniq_pages[] = $page['page']; } $uniq_pages = array_unique($uniq_pages); $pages = array(); foreach ($uniq_pages as $i => $page) { $pages[] = $handler->pages[$i]; } return $pages; }
<?php use NovakSolutions\FrontDesk\Generate; require_once '/vendor/autoload.php'; $v3Parser = new Generate\ReportingParser(); $reportingApiDocsAsHtml = http_get_contents("https://developer.frontdeskhq.com/docs/reporting/v3"); $reportingDefinitions = $v3Parser->extractDataFromHtml($reportingApiDocsAsHtml); //Process Definitions Info Select, Update, Insert, etc... /** @var mixed $models */ $models = array(); $loader = new Twig_Loader_Filesystem('src/Generate/Templates'); $twig = new Twig_Environment($loader); $function = new Twig_SimpleFunction('descriptionToPhpDocType', function ($type) { switch ($type) { case 'boolean': return "boolean"; default: return $type; } }); $twig->addFunction($function); $template = $twig->loadTemplate('reporting_model.twig'); foreach ($reportingDefinitions as $objectName => $endPoints) { $model = array(); $model['modelName'] = preg_replace("/[^A-Za-z0-9]/", "", $objectName); $model['modelName'] = preg_replace('{s$}', '', $model['modelName']); $model = array_merge($endPoints, $model); $frontOrDesk = 'Desk'; $className = $model['modelName']; $baseClass = 'ReportingModel'; $renderedTemplate = $template->render(compact('frontOrDesk', 'model', 'className', 'baseClass'));
if (isset($_GET['proxy'])) { $url .= '&proxy=' . $_GET['proxy']; } // Ad URL rewrite if (strpos($url, 'http') === false) { $url = 'http:' . $url; } if (isset($_GET['callback'])) { foreach ($_GET as $key => $value) { if (in_array($key, array('url', 'mode', 'full_headers', 'full_status', 'send_cookies'))) { continue; } $url .= "&" . $key . '=' . $value; } } $ch = http_get_contents($url); if (strtolower($_SERVER['REQUEST_METHOD']) == 'post') { curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $_POST); } if (isset($_GET['send_cookies']) && $_GET['send_cookies']) { $cookie = array(); foreach ($_COOKIE as $key => $value) { $cookie[] = $key . '=' . $value; } if (isset($_GET['send_session']) && $_GET['send_session']) { $cookie[] = SID; } $cookie = implode('; ', $cookie); curl_setopt($ch, CURLOPT_COOKIE, $cookie); }
function update_cache($url) { if (!is_writable(FAVICON_CACHE_DIR)) { // cache dir was not writable return false; } // Garbage Collection $garbage = FAVICON_CACHE_DIR . '.garbage.time'; if (!is_file($garbage) || filemtime($garbage) + 86400 < UNIX_TIME) { include_once dirname(dirname(__FILE__)) . '/hyp_common_func.php'; HypCommonFunc::touch($garbage); clear_cache(); } $url_org = $url; $html = http_get_contents($url, 81920); if ($html === false) { // connection failed or timed out $favicon = 'DefaultIcon'; } else { if ($html === null) { // 404 status code or unsupported scheme $favicon = 'ErrorIcon'; } else { $url = parse_url($url); $base = $url['scheme'] . '://' . $url['host'] . (isset($url['port']) ? ':' . $url['port'] : ''); $url = $base . (isset($url['path']) ? $url['path'] : '/'); $html = strtolower($html); list($html) = explode('</head>', $html); if (preg_match_all('#<link[^>]+?>#', $html, $m)) { $html = join(' ', $m[0]); if (preg_match('/<link ([^>]*)rel=[\'"]?(?:shortcut )?icon[\'"]?([^>]*)/', $html, $matches)) { $link = implode(' ', $matches); if (preg_match('/href=[\'"]?((?:https?:)?\\/\\/)?([^\'" ]+)/', $link, $matches)) { $favicon = $matches[2]; if ($matches[1]) { if ($matches[1][0] === '/') { $matches[1] = $url['scheme'] . ':' . $matches[1]; } $favicon = $matches[1] . $favicon; } else { if ($favicon[0] === '/') { $favicon = $base . $favicon; } else { if (substr($url, -1) === '/') { $favicon = $url . $favicon; } else { $favicon = dirname($url) . '/' . $favicon; } } } str_replace('/./', '/', $favicon); while (preg_match('#[^/]+/\\.\\./#', $favicon)) { $favicon = preg_replace('#[^/]+/\\.\\./#', '', $favicon); } } } } if (empty($favicon)) { $favicon = $base . '/favicon.ico'; } $data = http_get_contents($favicon); if ($data === false) { // connection failed or timed out return false; } else { if ($ext = get_extention($data)) { $favicon = md5($url) . $ext; $image = get_image_filename($favicon); if (file_put_contents($image, $data) === FALSE) { $favicon = 'ErrorIcon'; } } else { // no favicon or unknown format $favicon = 'DefaultIcon'; } } } } $filename = get_url_filename($url_org); if (file_put_contents($filename, $favicon)) { return $favicon; } else { return false; } }
function replace_include($match) { global $mode, $lang, $error, $msg_error; preg_match_all('/\\s+([a-z_:][a-z0-9_:.-]*)\\s?=\\s?(["\'])(.+?)(?<!\\\\)(?:\\\\\\\\)*\\2/i', $match[1], $attrs, PREG_SET_ORDER); $resource = null; $tds = false; foreach ($attrs as $attr) { switch ($attr[1]) { case 'src': $resource = stripslashes($attr[3]); break; case 'tds' && $attr[3] == 'true': case 'now' && $attr[3] == 'true': $tds = true; break; } } if (is_null($resource) || !$tds && $mode != 'send') { return $match[0]; } if (substr($resource, 0, 7) == 'http://') { $result = http_get_contents($resource, $errstr); if ($result == false) { $errstr = sprintf($lang['Message']['Error_load_url'], htmlspecialchars($resource), $errstr); } } else { if ($resource[0] != '/') { $resource = WA_ROOTDIR . '/' . $resource; } if (is_readable($resource)) { $fp = fopen($resource, 'r'); $data = fread($fp, filesize($resource)); fclose($fp); $result = array('data' => $data, 'charset' => ''); } else { $result = false; $errstr = sprintf($lang['Message']['File_not_exists'], htmlspecialchars($resource)); } } if ($result == false) { $error = true; $msg_error[] = $errstr; return $match[0]; } else { return convert_encoding($result['data'], $result['charset']); } }
/** * Effectue les vérifications nécessaires et ajoute une entrée dans les tables de * gestion des fichiers joints * * Le fichier peut être uploadé via le formulaire adéquat, être sur un serveur distant, * ou avoir été uploadé manuellement sur le serveur * * @param string $upload_mode Mode d'upload du fichier (upload http, à distance, fichier local) * @param integer $log_id Identifiant du log * @param string $filename Nom du fichier * @param string $tmp_filename Nom temporaire du fichier/nom du fichier local/url du fichier distant * @param integer $filesize Taille du fichier * @param string $filetype Type mime du fichier * @param string $errno_code Code erreur éventuel de l'upload http * @param boolean $error True si une erreur survient * @param array $msg_error Tableau des messages d'erreur * * @return void * @access public */ function upload_file($upload_mode, $log_id, $filename, $tmp_filename, $filesize, $filetype, $errno_code, &$error, &$msg_error) { global $db, $lang, $nl_config; $extension = substr($filename, strrpos($filename, '.') + 1); if ($extension == '') { $extension = 'x-wa'; } // // Vérification de la validité du nom du fichier // if (!$this->check_filename($filename)) { $error = TRUE; $msg_error[] = $lang['Message']['Invalid_filename']; } // // Vérification de l'extension du fichier // if (!$this->check_extension($extension)) { $error = TRUE; $msg_error[] = $lang['Message']['Invalid_ext']; } if (!$error) { // // Si l'upload a échoué, on récupère le message correspondant à l'erreur survenue // Voir fichier constantes.php pour les codes d'erreur // if ($upload_mode == 'upload' && $errno_code != UPLOAD_ERR_OK) { $error = TRUE; switch ($errno_code) { case UPLOAD_ERR_INI_SIZE: $msg_error[] = $lang['Message']['Upload_error_1']; break; case UPLOAD_ERR_FORM_SIZE: $msg_error[] = $lang['Message']['Upload_error_2']; break; case UPLOAD_ERR_PARTIAL: $msg_error[] = $lang['Message']['Upload_error_3']; break; case UPLOAD_ERR_NO_FILE: $msg_error[] = $lang['Message']['Upload_error_4']; break; case UPLOAD_ERR_NO_TMP_DIR: $msg_error[] = $lang['Message']['Upload_error_6']; break; case UPLOAD_ERR_CANT_WRITE: $msg_error[] = $lang['Message']['Upload_error_7']; break; default: $msg_error[] = $lang['Message']['Upload_error_5']; break; } return; } else { if ($upload_mode == 'remote') { $URL = $tmp_filename; $part = @parse_url($URL); if (!is_array($part) || !isset($part['scheme']) || $part['scheme'] != 'http' && ($part['scheme'] != 'ftp' || !extension_loaded('ftp'))) { $error = TRUE; $msg_error[] = $lang['Message']['Invalid_url']; return; } $tmp_path = OPEN_BASEDIR_RESTRICTION ? WA_TMPDIR : '/tmp'; $tmp_filename = tempnam($tmp_path, 'wa0'); if (!($fw = @fopen($tmp_filename, 'wb'))) { $error = TRUE; $msg_error[] = $lang['Message']['Upload_error_5']; return; } if ($part['scheme'] == 'http') { $result = http_get_contents($URL, $errstr); if ($result == false) { $error = TRUE; $msg_error[] = $errstr; return; } fwrite($fw, $result['data']); $filesize = strlen($result['data']); $filetype = $result['type']; } else { if (!isset($part['user'])) { $part['user'] = '******'; } if (!isset($part['pass'])) { $part['pass'] = '******'; } $port = !isset($part['port']) ? 21 : $part['port']; if (!($cid = @ftp_connect($part['host'], $port)) || !@ftp_login($cid, $part['user'], $part['pass'])) { $error = TRUE; $msg_error[] = sprintf($lang['Message']['Unaccess_host'], htmlspecialchars($part['host'])); return; } $path = !isset($part['path']) ? '/' : $part['path']; $path .= !isset($part['query']) ? '' : '?' . $part['query']; $filesize = ftp_size($cid, $path); if (!ftp_fget($cid, $fw, $path, FTP_BINARY)) { $error = TRUE; $msg_error[] = $lang['Message']['Not_found_at_url']; return; } ftp_quit($cid); require WAMAILER_DIR . '/class.mailer.php'; $filetype = Mailer::mime_type(substr($filename, strrpos($filename, '.') + 1)); } fclose($fw); } else { if ($upload_mode == 'local') { require WAMAILER_DIR . '/class.mailer.php'; $filetype = Mailer::mime_type($extension); // // On verifie si le fichier est bien présent sur le serveur // $filesize = $this->joined_file_exists($tmp_filename, $error, $msg_error); } } } } else { return; } // // Vérification de la taille du fichier par rapport à la taille maximale autorisée // $total_size = 0; if (!$this->check_maxsize($log_id, $filesize, $total_size)) { $error = TRUE; $msg_error[] = sprintf($lang['Message']['weight_too_big'], formateSize($nl_config['max_filesize'] - $total_size)); } // // Si fichier uploadé ou fichier distant, on déplace le fichier à son emplacement final // if (!$error && $upload_mode != 'local') { $physical_filename = $this->make_filename(); if ($this->use_ftp) { $mode = $this->get_mode($filetype); if (!@ftp_put($this->connect_id, $physical_filename, $tmp_filename, $mode)) { $error = TRUE; $msg_error[] = $lang['Message']['Ftp_error_put']; } else { @ftp_site($this->connect_id, 'CHMOD 0644 ' . $physical_filename); } } else { if ($upload_mode == 'remote') { $result_upload = @copy($tmp_filename, $this->upload_path . $physical_filename); } else { $result_upload = @move_uploaded_file($tmp_filename, $this->upload_path . $physical_filename); } if (!$result_upload) { $error = TRUE; $msg_error[] = $lang['Message']['Upload_error_5']; } if (!$error) { @chmod($this->upload_path . $physical_filename, 0644); } } // // Suppression du fichier temporaire créé par nos soins // $this->remove_file($tmp_filename); } if (!$error) { // // Tout s'est bien passé, on entre les nouvelles données dans la base de données // $db->beginTransaction(); $filedata = array('file_real_name' => $filename, 'file_physical_name' => $upload_mode == 'local' ? $tmp_filename : $physical_filename, 'file_size' => $filesize, 'file_mimetype' => $filetype); if (!$db->build(SQL_INSERT, JOINED_FILES_TABLE, $filedata)) { trigger_error('Impossible d\'insérer les données du fichier dans la base de données', ERROR); } $file_id = $db->lastInsertId(); $sql = "INSERT INTO " . LOG_FILES_TABLE . " (log_id, file_id) \n\t\t\t\tVALUES({$log_id}, {$file_id})"; if (!$db->query($sql)) { trigger_error('Impossible d\'insérer la jointure dans la table log_files', ERROR); } $db->commit(); } $this->quit(); }