Суперглобальный массив SERVER в PHP | Базовый курс PHP-7

preview_player
Показать описание
$_SERVER - это супер глобальный массив, который одержит различные параметры для формирования HTTP-заголовков, а также параметров, которые сервер извлекает из HTTP присланные со стороны клиента.

ДОМАШНЕЕ ЗАДАНИЕ:
Рекомендации по теме
Комментарии
Автор

Как всегда всё замечательно, спасибо большое!

Atikan
Автор

сижу пока на 14 уроке по html и css, очень интересно и понятно, спасибо за вашу работу надеюсь в скором времени догоню вас)

aristakrattm
Автор

ахренеть, сколько параметров, спасибо большое

nurlannadzhavov
Автор

который одержит различные = одержит содержит* в описании, спасибо за уроки!

kilop
Автор

Благодарю за уроки! Хотелось бы о безопасности сайта узнать ) Только желательно в формате, который не научит злодеев чему-то, а наоборот благонамеренных умудрит.

vitalijslavrinovics
Автор

Подскажите пжж что нужно писать вместо неизвестного числа

intelligent_muslim
Автор

если кому нужно, вот ДЗ. Которое **. В принципе реально разобраться, что к чему)

session_start();
setcookie('test', numberOfVisits());


$filepath = 'ips.txt';
$file = file($filepath);

function numberOfVisits(){
if(isset($_COOKIE['test'])){
$_COOKIE['test']++;
}else {
$_COOKIE['test'] = 1;
}
return $_COOKIE['test'];
}

$numberVisitsFinal = $_SERVER['REMOTE_ADDR'] . " " . numberOfVisits();
file_put_contents($filepath, $numberVisitsFinal);

sreggh
Автор

Спасибо за урок
наброски ДЗ
<!-- Файл index.php -->
<!DOCTYPE html>

<head>
<title>HTML-форма</title>
<meta charset='utf-8'>
</head>

<body>
<form action='form5.php' method='post'>
<input type="text" name="name" placeholder="Имя">
<input type="text" name="surname" placeholder="Фамилия">
<input type='submit' value='Отправить'>
</form>
</body>


<?php // проверял на своем Firefox в ubuntu 20.04 === дз 3
// Получаем информацию о браузере пользователя
$userAgent = $_SERVER['HTTP_USER_AGENT'];

// Проверяем, является ли браузер Mozilla
if (strpos($userAgent, 'Firefox') !== false) {
// Выводим предупреждение
echo "Доступ к сайту запрещен для браузера Mozilla.<br>";

// Завершаем сессию (если используется)
session_start();
session_destroy();

// Завершаем выполнение скрипта
exit();
}

// Если не Mozilla, продолжаем выполнение кода
echo "Добро пожаловать! Ваш браузер не является Mozilla Firefox.<br>";
?>


<?php //form5.php === дз 1
// Проверка, были ли переданы параметры имени и фамилии
if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST['name']) && isset($_POST['surname'])) {
$name = $_POST['name'];
$surname = $_POST['surname'];

// Устанавливаем часовой пояс Киева


// Получаем текущее время
$currentHour = date('G');

// Определяем приветствие в зависимости от времени суток
if ($currentHour >= 5 && $currentHour < 11) {
$greeting = 'Доброе утро';
} elseif ($currentHour >= 11 && $currentHour < 16) {
$greeting = 'Добрый день';
} elseif ($currentHour >= 16 && $currentHour < 24) {
$greeting = 'Добрый вечер';
} else {
$greeting = 'Доброй ночи';
}

// Выводим приветствие с именем и фамилией пользователя
echo "$greeting, $name $surname!";
} else {
// Если параметры не были переданы, выводим сообщение об ошибке
echo 'Пожалуйста, укажите имя и фамилию в форме выше.';
}
echo '<pre>';
print_r($_SERVER);
echo '</pre>';
echo $_SERVER['HTTP_USER_AGENT'] . '<br>';
?>



<?php //=== дз 4
// Получаем текущий IP-адрес посетителя
$ipAddress = $_SERVER['REMOTE_ADDR'];

// Определяем путь к файлу
$filePath = 'ips.txt';

// Читаем существующие данные из файла
$existingData = [];
if (file_exists($filePath)) {
$existingData = json_decode(file_get_contents($filePath), true);
}

// Проверяем, был ли уже посещен текущий IP-адрес
if (array_key_exists($ipAddress, $existingData)) {
// Увеличиваем счетчик посещений
$existingData[$ipAddress]++;
} else {
// Добавляем новую запись
$existingData[$ipAddress] = 1;
}

// Сохраняем обновленные данные в файл
file_put_contents($filePath, json_encode($existingData));

// Выводим информацию
echo "IP-адрес: $ipAddress<br>";
echo "Количество посещений:

?>


<?php //=== дз 2
// Получаем информацию о браузере и операционной системе
$userAgent = $_SERVER['HTTP_USER_AGENT'];

// Определяем браузер
$browser = '';
$browserVersion = '';
if (preg_match('/MSIE/i', $userAgent) && !preg_match('/Opera/i', $userAgent)) {
$browser = 'Internet Explorer';
preg_match('/MSIE (\d+\.\d+)/', $userAgent, $matches);
if (isset($matches[1])) {
$browserVersion = $matches[1];
}
} elseif (preg_match('/Firefox/i', $userAgent)) {
$browser = 'Mozilla Firefox';
preg_match('/Firefox\/(\d+\.\d+)/', $userAgent, $matches);
if (isset($matches[1])) {
$browserVersion = $matches[1];
}
} elseif (preg_match('/Chrome/i', $userAgent)) {
$browser = 'Google Chrome';
preg_match('/Chrome\/(\d+\.\d+)/', $userAgent, $matches);
if (isset($matches[1])) {
$browserVersion = $matches[1];
}
} elseif (preg_match('/Safari/i', $userAgent)) {
$browser = 'Safari';
preg_match('/Version\/(\d+\.\d+)/', $userAgent, $matches);
if (isset($matches[1])) {
$browserVersion = $matches[1];
}
} elseif (preg_match('/Opera/i', $userAgent)) {
$browser = 'Opera';
preg_match('/Opera\/(\d+\.\d+)/', $userAgent, $matches);
if (isset($matches[1])) {
$browserVersion = $matches[1];
}
} elseif (preg_match('/Edge/i', $userAgent)) {
$browser = 'Microsoft Edge';
preg_match('/Edge\/(\d+\.\d+)/', $userAgent, $matches);
if (isset($matches[1])) {
$browserVersion = $matches[1];
}
} elseif (preg_match('/Trident/i', $userAgent)) {
$browser = 'Internet Explorer';
preg_match('/rv:(\d+\.\d+)/', $userAgent, $matches);
if (isset($matches[1])) {
$browserVersion = $matches[1];
}
}

// Определяем операционную систему
$os = '';
if (preg_match('/Windows/i', $userAgent)) {
$os = 'Windows';
} elseif (preg_match('/Macintosh/i', $userAgent)) {
$os = 'Macintosh';
} elseif (preg_match('/Android/i', $userAgent)) {
$os = 'Android';
} elseif (preg_match('/iPhone/i', $userAgent)) {
$os = 'iPhone';
} elseif (preg_match('/iPad/i', $userAgent)) {
$os = 'iPad';
} elseif (preg_match('/Linux/i', $userAgent)) {
$os = 'Linux';
}

// Выводим информацию
echo "Браузер: $browser<br>";
echo "Версия браузера: $browserVersion<br>";
echo "Операционная система: $os<br>";
?>

aleksandrsh
Автор

Дз с ** для тех кто смотрит в 2023) Как по мне максимально правильный скрипт, полностью соответствующий ТЗ. P.S. Комментариями подписал что за что отвечает
setcookie("test", getValue());
$currIP = $_SERVER['REMOTE_ADDR'];
// Количество посещений сайта пользователем
function getValue(){
if (isset($_COOKIE["test"])) {
$_COOKIE["test"]++;
}else{
$_COOKIE["test"] = 1;
}
return $_COOKIE["test"];
}

begin:
if (file_exists("ips.txt")) {
// Информация из файла ips.txt
$file = file("ips.txt");
// Разбив файла ips.txt(если он не пуст) на вложенные массивы содержащие IP и кол-во посещений(раздельно)(0 - IP; 1 - Кол-ва посещений)
foreach ($file as $key => $value) {
$file2[] = explode("=", $file[$key]);
}
// Добавление посещений пользователя и его IP если они отсутствуют
for ($i=0; $i < count($file2); $i++) {
if ($file2[$i][0] != $currIP) {
$file2[][0] = $currIP;
$file2[count($file2)-1][1] = $_COOKIE["test"];
break;
}else{
continue;
}
}
// Изменение кол-ва посещений пользователя
for ($i=0; $i < count($file2); $i++) {
if ($file2[$i][0] == $currIP) {
if ($file2[$i][1] != $_COOKIE["test"]) {
$file2[$i][1] = $_COOKIE["test"];
break;
}
}
}
// Обьединение IP + кол-ва посещений вложенных массивов для дальнейшего изменения(кол-ва посещений) в файле
foreach ($file2 as $key => $value) {
$file2[$key] = "$value[0]=$value[1]";
}
// Запись обратно в файл
file_put_contents("ips.txt", "");
file_put_contents("ips.txt", $file2);
}else{
// Создание файла
file_put_contents("ips.txt", "\n");
goto begin;
}

nevenik
Автор

Целый день кодил, даже на линию не вышел. Но решил.
$content = file('ips.txt');
$currentIP = $_SERVER['REMOTE_ADDR'] . " " . $_COOKIE['counter'] . "\n";
if($content){
for ($i=0; $i < count($content); $i++) {
$value = $content[$i];
$str = strpos($value, $_SERVER['REMOTE_ADDR']);
if($str === 0) {
unset($content[$i]);
}
}
array_push($content, $currentIP);
} else {
array_push($content, $currentIP);
}
$file = 'ips.txt';
file_put_contents($file, $content);

lmoelxx