Вопрос-Ответ по php

Печать RSS
5948
Кураторы темы:


Дух
0
Возможно ли подделать ссылку для скачивания как буд-то качается с одного сайта, а на самом деле с другого?
Смотрю на домен, с которого идет загрузка в разделе загрузок браузера гугл хром и что то сомневаюсь, потому что вроде был когда то раньше такой граббер, который подделывал ссылки для скачивания и вот думаю с того ли сайта качаю файл или с какого то другого?

Господин ПЖ
0
@Mot,
$url = 'https:// путь к файлу';
$name = 'имя файла example.zip';

header('Content-Length: ' . $len); эту строку можно и не писать, должно работать, но лучше вычислить размер для больших файлов
$len  получить через эту функцию
function getFileSize(string $url): int
{
    $head = get_headers($url, true);

    return $head['Content-Length'];
}

вызывай так header('Content-Length: ' . getFileSize($url));

ob_get_level() && ob_end_clean();
header($_SERVER['SERVER_PROTOCOL'] . ' 200 OK');
header('Content-Type: application/force-download');
header('Content-Description: inline; File Transfer');
header('Content-Transfer-Encoding: binary');
header('Content-Disposition: attachment; filename="' . $name . '";', false);
header('Content-Length: ' . $len); // вот тут замени, если файлы маленькие, то можно и не писать

$upload = new SplFileObject($url, 'rb');
while (!$upload->eof()) {
    echo($upload->fgets());
}

flush();
exit;

ну и вроде у тебя должно быть включен allow_url_fopen
Изменил: Вантуз-мен (28.02.2022 / 02:28)

Дух
0
Вантуз-мен, ничего себе, это что сам скрипт?
А мне то и надо было что просто узнать возможно ли вообще такое?
vau
О

Пришелец
0
Актуальны ли сей час ссылки с добавлением amp; после & и? писать или не писать & или просто &.

Господин ПЖ
0
В адресной строке писать надо & к примеру /index.php?param1=1&param2=2
В коде ссылка должна выглядеть так <a href="/index.php?param1=1&amp;param2=2">ссылка</a>
О

Пришелец
0
Вантуз-мен, понятно, а в карте сайта сделанной в сервисе онлайн ссылки генерируют с &amp; и это так оставить или исправить на & ?

Господин ПЖ
0
одмен, не знаю, если там файл с ссылками, то все правильно
V

Пришелец
0
<?php
$limit = (empty($limit) ? 0 : $limit);
$view = false;
// Если гостевая закрыта, выводим сообщение и закрываем доступ (кроме Админов)
if (!$config->mod_guest && $systemUser->rights < 1) {
    $view = false;
} else {
    $sql1 = $db->query("SELECT `guest`.*, 
    `guest`.`id` AS `gid`, 
    `users`.`rights`, 
    `users`.`lastdate`, 
    `users`.`sex`, 
    `users`.`status`, 
    `users`.`datereg`, 
    `users`.`id`, 
    `users`.`postforum`, 
    `users`.`tors`, 
    `users`.`nogi`, 
    `users`.`postguest`, 
    `users`.`komm`, 
    `users`.`karma_plus`, 
    `users`.`karma_minus`
        FROM
            `guest` 
        LEFT JOIN
            `users` 
        ON
            `guest`.`user_id` = `users`.`id`
        WHERE 
            `guest`.`adm`='0' 
        ORDER BY 
            `time` DESC 
        LIMIT
            $limit
    ");
    $req = $db->query($sql1);

               for ($i = 0; $res = $req->fetch(); ++$i) {
                $text = '';
                echo $i % 2 ? '<div class="list2">' : '<div class="list1">';
        
        if (!$res['id']) {
             // Запрос по гостям
                    $res_g = $db->query("SELECT `lastdate` FROM `cms_sessions` WHERE `session_id` = '" . md5($res['ip'] . $res['browser']) . "' LIMIT 1")->fetch();
                    $res['lastdate'] = $res_g['lastdate'];
                }
            
            $res_g = mysqli_fetch_assoc($req_g);
            $res['lastdate'] = $res_g['lastdate'];
        }
        
         // Время создания поста
                $text = ' <span class="gray">(' . $tools->displayDate($res['time']) . ')</span>';
                    if ($systemUser->isValid() && $systemUser->id != $res['user_id']) {
                    if ($user['id'] != $systemUser->id) {
echo '<div class="pull-right">
    <a href="#" onclick="return postReply(this)" data-toggle="tooltip" title="" data-original-title="Ответить">Ответить</a>
</div>';
}
}
                if ($res['user_id']) {
                    // Для зарегистрированных показываем ссылки и смайлы
                    $post = $tools->checkout($res['text'], 1, 1);
                    $post = $tools->smilies($post, $res['rights'] >= 1 ? 1 : 0);
                } else {
                    // Для гостей обрабатываем имя и фильтруем ссылки
                    $res['name'] = $tools->checkout($res['name']);
                    $post = $tools->checkout($res['text'], 0, 2);
                    $post = preg_replace('~\\[url=(https?://.+?)\\](.+?)\\[/url\\]|(https?://(www.)?[0-9a-z\.-]+\.[0-9a-z]{2,6}[0-9a-zA-Z/\?\.\~&amp;_=/%-:#]*)~', '###', $post);
                    $replace = [
                        '.ru'   => '***',
                        '.com'  => '***',
                        '.biz'  => '***',
                        '.cn'   => '***',
                   
Друзья, что в этом коде не так? выдает фатальную ошибку?
Изменил: Vapmobi (03.09.2022 / 20:39)

Землянин
+1
Vapmobi, я тебе Джоне в гостевой ответил.
То, что ты хочешь вывести 3 последних поста из гостевой и при чем здесь этот код вообще не понятно)))

Пришелец
0
Вот кусок кода.
$count = count($opis);
Не обрабатывается в php8, как исправить? Чтобы одинаково работал на php: 5.6 и 8?
Это из files.php в админ панели wap-motora.
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск