In the called .php file I want to use these variables:
global $txt, $modSettings, $scripturl, $user_info, $smcFunc;
And this function
loadLanguage(*);
How can I load them and make the request safe? I use jQuery:
https://api.jquery.com/jquery.post/
that is my php file:
<?php
function Add_Attachment_Downloaded_Count($cache_msg_id)
{
global $txt, $modSettings, $smcFunc;
if (!empty($modSettings['magnet_support_for_attachments']))
{
if (allowedTo('view_attachments') || $modSettings['magnet_guest'])
{
$request = $smcFunc['db_query']('', '
SELECT
a.id_attach, a.id_msg, a.fileext, a.downloads
FROM {db_prefix}attachments AS a
WHERE a.id_msg = {int:message_id}
AND a.fileext = {string:torrent_ext}
ORDER BY a.downloads',
array(
'message_id' => $cache_msg_id,
'torrent_ext' => 'torrent',
)
);
$attach_temp_data['count'] = 0; $attach_temp_data['sum'] = 0; $attach_temp_data['max_downloads'] = 0;
while ($row = $smcFunc['db_fetch_assoc']($request))
{
++$attach_temp_data['count'];
$attach_temp_data['sum'] = $attach_temp_data['sum'] + $row['downloads'];
if ($row['downloads'] > $attach_temp_data['max_downloads'])
$attach_temp_data['max_downloads'] = $row['downloads'];
if (!isset($attach_temp_data['min_downloads']))
$attach_temp_data['min_downloads'] = $attach_temp_data['max_downloads'];
if ($row['downloads'] < $attach_temp_data['min_downloads'])
$attach_temp_data['min_downloads'] = $row['downloads'];
}
$smcFunc['db_free_result']($request);
if (isset($attach_temp_data['min_downloads']))
{
if ($attach_temp_data['max_downloads'] > 0)
{
if ($attach_temp_data['count'] > 1)
$temp_attach_txt = $txt['magnet_attachments'];
else $temp_attach_txt = $txt['magnet_attachment'];
if ($modSettings['magnet_attachments_display_type'] == 0)
{
if ($attach_temp_data['count'] == 1)
return ' ('. $temp_attach_txt .' <span style="color:#0080ff;">'. $attach_temp_data['max_downloads'] .'</span>)';
elseif ($attach_temp_data['count'] > 1)
return ' ('. $temp_attach_txt .' <span style="color:#0080ff;">'. $attach_temp_data['min_downloads'] .' - '. $attach_temp_data['max_downloads'] .'</span>)';
}
elseif ($modSettings['magnet_attachments_display_type'] == 1)
return ' ('. $temp_attach_txt .' <span style="color:#0080ff;">'. $attach_temp_data['sum'] .'</span>)';
elseif ($modSettings['magnet_attachments_display_type'] == 2)
return ' ('. $temp_attach_txt .' <span style="color:#0080ff;">'. $attach_temp_data['max_downloads'] .'</span>)';
elseif ($modSettings['magnet_attachments_display_type'] == 3)
return ' ('. $temp_attach_txt .' <span style="color:#0080ff;">'. $attach_temp_data['min_downloads'] .'</span>)';
elseif ($modSettings['magnet_attachments_display_type'] == 4)
return ' ('. $temp_attach_txt .' <span style="color:#0080ff;">'. Round($attach_temp_data['sum']/$attach_temp_data['count'], 2) .'</span>)';
}
}
}
}
}
require 'Subs-Scraper.php';
$input_magnet = $_POST["magnet"];
$cache_msg_id = $_POST["msg_id"];
$temp_uniqid = $_POST["temp_id"];
$data = 'No connection to trackers.';
global $txt, $modSettings, $scripturl, $user_info;
loadLanguage('bbc_magnet_link');
if (!empty($input_magnet)) {
if (preg_match("^magnet", $input_magnet)) {
$input_magnet = html_entity_decode($input_magnet, ENT_QUOTES, "UTF-8");
$input_magnet = urldecode($input_magnet);
$input_magnet = str_replace(
array("á","é","í","ó","ú","ñ","Á","É","Í","Ó","Ú","Ñ"),
array("á","é","í","ó","ú","ń","Á","É","Í","Ó","Ú","Ń"), $input_magnet);
preg_match('#magnet:\?xt=urn:btih:(?<hash>.*?)&dn=(?<filename>.*?)&tr=(?<trackers>.*?)$#', $input_magnet, $magnet_parts);
if (!empty($magnet_parts['trackers'])) {
$magnet_parts['trackers'] = explode('&', str_replace('tr=','', $magnet_parts['trackers']));
if (!empty($modSettings['magnet_only_http']))
$magnet_parts['trackers'] = preg_grep("(^http://|^https://)", $magnet_parts['trackers']);
$magnet_parts['trackers'] = array_values($magnet_parts['trackers']);
if (!empty($magnet_parts['trackers'][0])) {
if (!empty($magnet_parts['hash']) && !empty($magnet_parts['filename'])) {
if (!empty($modSettings['magnet_scraper_enabled'])) {
if (empty($modSettings['magnet_check_all'])) {
$scraper = new Scrapeer\Scraper();
$scrape_info = $scraper->scrape($magnet_parts['hash'], $magnet_parts['trackers'], !empty($modSettings['magnet_max_trackers_scrape']) ? $modSettings['magnet_max_trackers_scrape'] : null, !empty($modSettings['magnet_max_scrape_time']) ? $modSettings['magnet_max_scrape_time'] : 2, !empty($modSettings['magnet_announce']) ? true : false);
if (!empty($scrape_info))
$data = $magnet_parts['filename'] .', '. $txt['magnet_link_seeds'] .' <span style="color:#00e600;">'. $scrape_info[$magnet_parts['hash']]['seeders'] .'</span>, '. $txt['magnet_link_leeches'] .' <span style="color:#ff1a1a;">'. $scrape_info[$magnet_parts['hash']]['leechers'] .'</span>, '. $txt['magnet_link_downloaded'] .' <span style="color:#0080ff;">'. $scrape_info[$magnet_parts['hash']]['completed'] .'</span>'. Add_Attachment_Downloaded_Count($cache_msg_id);
}
else {
$completed_sum = 0; $seeds_sum = 0; $leechers_sum = 0; $count_successful_polls = 0; $count_successful_http_polls = 0;
if ($modSettings['magnet_check_all_display_type'] == 0) {
foreach ($magnet_parts['trackers'] as $single_tracker) {
$scraper = new Scrapeer\Scraper();
$scrape_info = $scraper->scrape($magnet_parts['hash'], $single_tracker, !empty($modSettings['magnet_max_trackers_scrape']) ? $modSettings['magnet_max_trackers_scrape'] : null, !empty($modSettings['magnet_max_scrape_time']) ? $modSettings['magnet_max_scrape_time'] : 2, !empty($modSettings['magnet_announce']) ? true : false);
if (!empty($scrape_info)) {
$seeds_sum = $seeds_sum + $scrape_info[$magnet_parts['hash']]['seeders'];
$leechers_sum = $leechers_sum + $scrape_info[$magnet_parts['hash']]['leechers'];
$count_successful_polls = $count_successful_polls + 1;
if (preg_match("(^http://|^https://)", $single_tracker)) {
$completed_sum = $completed_sum + $scrape_info[$magnet_parts['hash']]['completed'];
$count_successful_http_polls = $count_successful_http_polls + 1;
}
}
if (!empty($modSettings['magnet_max_trackers_scrape']) && $count_successful_polls == $modSettings['magnet_max_trackers_scrape'])
break;
}
if (!empty($count_successful_polls)) {
$seeds_sum = Round($seeds_sum / $count_successful_polls, 1);
$leechers_sum = Round($leechers_sum / $count_successful_polls, 1);
if (empty($count_successful_http_polls))
$count_successful_http_polls = 1;
$completed_sum = Round($completed_sum / $count_successful_http_polls, 1);
$data = $magnet_parts['filename'] .', '. $txt['magnet_link_seeds'] .' <span style="color:#00e600;">'. $seeds_sum .'</span>, '. $txt['magnet_link_leeches'] .' <span style="color:#ff1a1a;">'. $leechers_sum .'</span> ('. $txt['magnet_link_average'] .' '. $count_successful_polls .' '. ($count_successful_polls == 1 ? $txt['magnet_link_trackers_single'] : $txt['magnet_link_trackers']) .'), '. $txt['magnet_link_downloaded'] .' <span style="color:#0080ff;">'. $completed_sum .'</span> '. Add_Attachment_Downloaded_Count($cache_msg_id) .' ('. $txt['magnet_link_average'] .' '. $count_successful_http_polls .' '. ($count_successful_http_polls == 1 ? $txt['magnet_link_trackers_single'] : $txt['magnet_link_trackers']) .')';
}
}
elseif ($modSettings['magnet_check_all_display_type'] == 1) {
foreach ($magnet_parts['trackers'] as $single_tracker) {
$scraper = new Scrapeer\Scraper();
$scrape_info = $scraper->scrape($magnet_parts['hash'], $single_tracker, !empty($modSettings['magnet_max_trackers_scrape']) ? $modSettings['magnet_max_trackers_scrape'] : null, !empty($modSettings['magnet_max_scrape_time']) ? $modSettings['magnet_max_scrape_time'] : 2, !empty($modSettings['magnet_announce']) ? true : false);
if (!empty($scrape_info)) {
$seeds_sum = $seeds_sum + $scrape_info[$magnet_parts['hash']]['seeders'];
$leechers_sum = $leechers_sum + $scrape_info[$magnet_parts['hash']]['leechers'];
$count_successful_polls = $count_successful_polls + 1;
if (preg_match("(^http://|^https://)", $single_tracker)) {
if ($completed_sum < $scrape_info[$magnet_parts['hash']]['completed'])
$completed_sum = $scrape_info[$magnet_parts['hash']]['completed'];
$count_successful_http_polls = $count_successful_http_polls + 1;
}
}
if (!empty($modSettings['magnet_max_trackers_scrape']) && $count_successful_polls == $modSettings['magnet_max_trackers_scrape'])
break;
}
if (!empty($count_successful_polls)) {
$seeds_sum = Round($seeds_sum / $count_successful_polls, 1);
$leechers_sum = Round($leechers_sum / $count_successful_polls, 1);
$data = $magnet_parts['filename'] .', '. $txt['magnet_link_seeds'] .' <span style="color:#00e600;">'. $seeds_sum .'</span>, '. $txt['magnet_link_leeches'] .' <span style="color:#ff1a1a;">'. $leechers_sum .'</span> ('. $txt['magnet_link_average'] .' '. $count_successful_polls .' '. ($count_successful_polls == 1 ? $txt['magnet_link_trackers_single'] : $txt['magnet_link_trackers']) .'), '. $txt['magnet_link_downloaded'] .' <span style="color:#0080ff;">'. $completed_sum .'</span>'. Add_Attachment_Downloaded_Count($cache_msg_id) .' ('. $txt['magnet_link_max_value'] .' '. $count_successful_http_polls .' '. ($count_successful_http_polls == 1 ? $txt['magnet_link_trackers_single'] : $txt['magnet_link_trackers']) .')';
}
}
elseif ($modSettings['magnet_check_all_display_type'] == 2) {
foreach ($magnet_parts['trackers'] as $single_tracker) {
$scraper = new Scrapeer\Scraper();
$scrape_info = $scraper->scrape($magnet_parts['hash'], $single_tracker, !empty($modSettings['magnet_max_trackers_scrape']) ? $modSettings['magnet_max_trackers_scrape'] : null, !empty($modSettings['magnet_max_scrape_time']) ? $modSettings['magnet_max_scrape_time'] : 2, !empty($modSettings['magnet_announce']) ? true : false);
if (!empty($scrape_info)) {
if ($seeds_sum < $scrape_info[$magnet_parts['hash']]['seeders'])
$seeds_sum = $scrape_info[$magnet_parts['hash']]['seeders'];
if ($leechers_sum < $scrape_info[$magnet_parts['hash']]['seeders'])
$leechers_sum = $scrape_info[$magnet_parts['hash']]['leechers'];
$count_successful_polls = $count_successful_polls + 1;
if (preg_match("(^http://|^https://)", $single_tracker)) {
if ($completed_sum < $scrape_info[$magnet_parts['hash']]['completed'])
$completed_sum = $scrape_info[$magnet_parts['hash']]['completed'];
$count_successful_http_polls = $count_successful_http_polls + 1;
}
}
if (!empty($modSettings['magnet_max_trackers_scrape']) && $count_successful_polls == $modSettings['magnet_max_trackers_scrape'])
break;
}
if (!empty($count_successful_polls))
$data = $magnet_parts['filename'] .', '. $txt['magnet_link_seeds'] .' <span style="color:#00e600;">'. $seeds_sum .'</span>, '. $txt['magnet_link_leeches'] .' <span style="color:#ff1a1a;">'. $leechers_sum .'</span>, '. $txt['magnet_link_downloaded'] .' <span style="color:#0080ff;">'. $completed_sum .'</span> '. Add_Attachment_Downloaded_Count($cache_msg_id) .' ('. $txt['magnet_link_max_value'] .' '. $count_successful_polls .' '. ($count_successful_polls == 1 ? $txt['magnet_link_trackers_single'] : $txt['magnet_link_trackers']) .')';
}
}
} else $data = $magnet_parts['filename'] . Add_Attachment_Downloaded_Count($cache_msg_id);
}
}
}
}
}
echo $temp_uniqid .' '. $data;
?>