News:

Want to get involved in developing SMF, then why not lend a hand on our github!

Main Menu

SMF post request php with smf var?

Started by dodos26, December 29, 2022, 11:22:42 AM

Previous topic - Next topic

dodos26

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/

dodos26

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_magnetENT_QUOTES"UTF-8");
$input_magnet urldecode($input_magnet);

$input_magnet str_replace(
array("&aacute;","&eacute;","&iacute;","&oacute;","&uacute;","&ntilde;","&Aacute;","&Eacute;","&Iacute;","&Oacute;","&Uacute;","&Ntilde;"),
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_polls1);
$leechers_sum Round($leechers_sum $count_successful_polls1);
if (empty($count_successful_http_polls))
$count_successful_http_polls 1;
$completed_sum Round($completed_sum $count_successful_http_polls1);

$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 == $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 == $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_polls1);
$leechers_sum Round($leechers_sum $count_successful_polls1);

$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 == $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 == $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 == $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;

?>

Advertisement: