У меня есть прокси-сервер, написанный на PHP для браузера в проекте браузера, но когда я внутри чего-то вроде google.com и пытаюсь выполнить поиск внутри прокси-сервера, я перехожу на «proxyserver/search?q» =hi» вместо ожидаемого результата «proxyserver/proxy.php?url=https://google.com/search?q=hi»
По сути, основная проблема заключается в том, что сайт, отображаемый внутри прокси-сервера, пытался перевести меня с /pageone на /pagetwo, он переводит меня с «proxyserver/proxy.php?url=https://example.com/pageone» на «proxyserver/pagetwo»
Я перепробовал почти все, чтобы исправить это, но по какой-то причине это не сработало, поэтому я просто вернулся к старому коду, в котором все еще есть ошибка.
Полный код:
ob_start("ob_gzhandler");
ini_set('memory_limit', '128M');
session_start();
$cookieFile = 'cookies.txt';
if (!isset($_COOKIE['PHPSESSID'])) {
clearCookies();
}
if ($_SERVER['REQUEST_METHOD'] === 'GET' && isset($_GET['url'])) {
$url = $_GET['url'];
proxyRequest($url);
} elseif ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['url'])) {
$url = $_POST['url'];
$postData = http_build_query($_POST);
echo "Debug: POST URL - " . $url . "
";
echo "Debug: POST Data - " . $postData . "
";
if (isset($_GET['url'])) {
$url = $_GET['url'];
echo "Debug: Using GET URL - " . $url . "
";
}
if (!filter_var($url, FILTER_VALIDATE_URL)) {
echo "Error: Invalid URL.";
exit;
}
proxyRequest($url, $postData);
} else {
echo "Debug: Invalid request received. ";
echo "Debug: GET Data - " . json_encode($_GET) . "
";
echo "Debug: POST Data - " . json_encode($_POST) . "
";
echo "Error: Invalid request.";
}
function proxyRequest($url, $postData = null) {
header('Content-Type: text/html');
header('Access-Control-Allow-Origin: *');
global $cookieFile;
$customDNS = [
'example.com:80:1.1.1.1',
'example.com:443:8.8.8.8',
];
$ch = curl_init($url);
$options = [
CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36',
CURLOPT_HTTPHEADER => [
'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
'Accept-Language: en-GB',
'Accept-Encoding: gzip, deflate',
'Dnt: 1',
'Sec-GPC: 1',
'Sec-Fetch-Dest: document',
'Sec-Fetch-Mode: navigate',
'Connection: keep-alive',
'Upgrade-Insecure-Requests: 1',
],
CURLOPT_RETURNTRANSFER => true,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_MAXREDIRS => 10,
CURLOPT_AUTOREFERER => true,
CURLOPT_ENCODING => '',
CURLOPT_TIMEOUT => 10,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => false,
CURLOPT_RESOLVE => $customDNS,
];
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$options[CURLOPT_POST] = true;
$options[CURLOPT_POSTFIELDS] = $postData;
}
if (isset($_COOKIE['PHPSESSID'])) {
$options[CURLOPT_COOKIEJAR] = $cookieFile;
$options[CURLOPT_COOKIEFILE] = $cookieFile;
}
curl_setopt_array($ch, $options);
$content = curl_exec($ch);
if ($content !== false) {
preg_match_all('/Set-Cookie: (.*?);/i', $content, $matches);
$receivedCookies = implode('; ', $matches[1]);
file_put_contents($cookieFile, $receivedCookies);
error_log('Received content: ' . $content);
echo $content;
} else {
error_log('Error: Unable to fetch content from the external website. cURL Error: ' . curl_error($ch));
echo "Error: Unable to fetch content from the external website. cURL Error: " . curl_error($ch);
}
curl_close($ch);
}
function clearCookies() {
global $cookieFile;
if (file_exists($cookieFile)) {
unlink($cookieFile);
}
}
?>
Подробнее здесь: https://stackoverflow.com/questions/771 ... g-webpages
Проблема перенаправления на моем прокси-сервере PHP для загрузки веб-страниц. ⇐ Php
Кемеровские программисты php общаются здесь
1728765179
Anonymous
У меня есть прокси-сервер, написанный на PHP для браузера в проекте браузера, но когда я внутри чего-то вроде google.com и пытаюсь выполнить поиск внутри прокси-сервера, я перехожу на «proxyserver/search?q» =hi» вместо ожидаемого результата «proxyserver/proxy.php?url=https://google.com/search?q=hi»
По сути, основная проблема заключается в том, что сайт, отображаемый внутри прокси-сервера, пытался перевести меня с /pageone на /pagetwo, он переводит меня с «proxyserver/proxy.php?url=https://example.com/pageone» на «proxyserver/pagetwo»
Я перепробовал почти все, чтобы исправить это, но по какой-то причине это не сработало, поэтому я просто вернулся к старому коду, в котором все еще есть ошибка.
Полный код:
ob_start("ob_gzhandler");
ini_set('memory_limit', '128M');
session_start();
$cookieFile = 'cookies.txt';
if (!isset($_COOKIE['PHPSESSID'])) {
clearCookies();
}
if ($_SERVER['REQUEST_METHOD'] === 'GET' && isset($_GET['url'])) {
$url = $_GET['url'];
proxyRequest($url);
} elseif ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['url'])) {
$url = $_POST['url'];
$postData = http_build_query($_POST);
echo "Debug: POST URL - " . $url . "
";
echo "Debug: POST Data - " . $postData . "
";
if (isset($_GET['url'])) {
$url = $_GET['url'];
echo "Debug: Using GET URL - " . $url . "
";
}
if (!filter_var($url, FILTER_VALIDATE_URL)) {
echo "Error: Invalid URL.";
exit;
}
proxyRequest($url, $postData);
} else {
echo "Debug: Invalid request received. ";
echo "Debug: GET Data - " . json_encode($_GET) . "
";
echo "Debug: POST Data - " . json_encode($_POST) . "
";
echo "Error: Invalid request.";
}
function proxyRequest($url, $postData = null) {
header('Content-Type: text/html');
header('Access-Control-Allow-Origin: *');
global $cookieFile;
$customDNS = [
'example.com:80:1.1.1.1',
'example.com:443:8.8.8.8',
];
$ch = curl_init($url);
$options = [
CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36',
CURLOPT_HTTPHEADER => [
'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
'Accept-Language: en-GB',
'Accept-Encoding: gzip, deflate',
'Dnt: 1',
'Sec-GPC: 1',
'Sec-Fetch-Dest: document',
'Sec-Fetch-Mode: navigate',
'Connection: keep-alive',
'Upgrade-Insecure-Requests: 1',
],
CURLOPT_RETURNTRANSFER => true,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_MAXREDIRS => 10,
CURLOPT_AUTOREFERER => true,
CURLOPT_ENCODING => '',
CURLOPT_TIMEOUT => 10,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => false,
CURLOPT_RESOLVE => $customDNS,
];
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$options[CURLOPT_POST] = true;
$options[CURLOPT_POSTFIELDS] = $postData;
}
if (isset($_COOKIE['PHPSESSID'])) {
$options[CURLOPT_COOKIEJAR] = $cookieFile;
$options[CURLOPT_COOKIEFILE] = $cookieFile;
}
curl_setopt_array($ch, $options);
$content = curl_exec($ch);
if ($content !== false) {
preg_match_all('/Set-Cookie: (.*?);/i', $content, $matches);
$receivedCookies = implode('; ', $matches[1]);
file_put_contents($cookieFile, $receivedCookies);
error_log('Received content: ' . $content);
echo $content;
} else {
error_log('Error: Unable to fetch content from the external website. cURL Error: ' . curl_error($ch));
echo "Error: Unable to fetch content from the external website. cURL Error: " . curl_error($ch);
}
curl_close($ch);
}
function clearCookies() {
global $cookieFile;
if (file_exists($cookieFile)) {
unlink($cookieFile);
}
}
?>
Подробнее здесь: [url]https://stackoverflow.com/questions/77193631/a-redirection-problem-in-my-php-proxy-server-for-loading-webpages[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия