Шаблон односторінкового лендінг-сайту з імітацією товарівsteemCreated with Sketch.

in Ukraine on Steemyesterday (edited)
Колись у дуже далекому минулому я займався дуже мутними справами – я крав гроші у росіян. Звісно, не в прямому сенсі слова «крав», але мої дії призводили до мимовільних і неконтрольованих фінансових витрат у інтернет-користувачів при взаємодії з моїми матеріалами. Йдеться про 2008-2010 роки. У чому суть. Існував певний сервіс, який називався «А1-Агрегатор», він надавав послуги з монетизації веб-трафіку через смс. Приблизно з тих часів зберіглася вже жартівлива фраза з пошукових запитів «дивитися онлайн без реєстрації та смс». Цілком можливо, що він (А1) існує й досі, я не перевіряв. Певна група людей (росія) створила мережу партнерських програм, що надавали доступ до контенту еротичної тематики, де при натисканні будь-яких посилань типу «завантажити» або «дивитися» в телефон завантажувався файл – застосунок для ще тих доандроїдних версій мобільників. При спробі запуску файлу з телефону надсилалися смс на короткі номери А1-агрегатора. Учасники партнерської програми отримували до 90% відрахувань, решта – власнику партнерського сайту. Схема дуже проста, і можна було підняти хороші суми за наявності цілеспрямованого трафіку. Згодом про це навіть писали у них там у ЗМІ, і, судячи з виття на болотах, баланси на мобільних рахунках просто уходили в нуль.
 
У ті часи вже можна було взаємодіяти з Google AdWords, модерація оголошень робилася вручну. Народ хоч і навчився користуватися мобільним інтернетом, але все ще був безпечним і темним в аспектах безпеки. У сервісі Google AdWords створювалася рекламна кампанія, зазначалося посилання на сайт, який я спеціально готував для проходження модерації на рекламному майданчику. Наприклад, «фото дівчат», але без натяку на еротику. Таргетинг виставлявся на росію, вікова категорія 18-40 років, стать – чоловіча. Після проходження модерації всі фотографії сайту повністю замінювалися на тематику «для дорослих». Після цього залишалося трохи зачекати та стежити за статистикою.
 
До чого вся ця лірика. Хотів поділитися скриптом односторінкового сайту-вітрини (сайт-лендінг), який можна використовувати для спрямування трафіку на реферальні посилання. На які? Та на будь-які. Починаючи від продажу товарів і послуг до еротики – повна свобода дій. Скрипт адаптований для перегляду на настільному ПК та мобільних пристроях, автоматично відображає зображення з директорії на сервері, за заголовок «товару» береться заголовок зображення, а при натисканні на зображення відбувається перехід за вказаним вами посиланням. Товари відображаються у ролі «приманки» для потенційного покупця. Причому до таких дій вдаються багато магазинів, зокрема АліЕкспрес.
 

Шаблон односторінкового лендінг-сайту

Розберемося, як працює скрипт:

$directory = 'images'; – задаємо в налаштуваннях, з якої директорії «брати» зображення.

$images = glob($directory . '/*.jpg'); – задаємо формат зображень для відображення. У цьому випадку враховуються лише файли з розширенням JPG.

sort($images); – сортуємо відображення зображень за алфавітом за схемою (A → Z, 0 → 9).

if (isset($_GET['content'])) – при натисканні на посилання виконується запит GET, і при виконанні цієї умови відбудеться перехід за посиланням.

$url = 'https://www.google.com/'; – вказуємо на яке посилання має бути перехід. Google – для прикладу.

header('Location: '.$url); – ця функція виконує перенаправлення користувача на посилання.

exit(); – ця функція обов’язково має йти після header, щоб зупинити подальше виконання скрипту після виконання перенаправлення.

if (!empty($images)): – перевіряємо, чи змінна $images не порожня (тобто чи є файли в масиві).

foreach ($images as $image): – foreach це цикл, який перебирає кожен елемент масиву $images. Для кожного елемента в $images створюється змінна $image, що містить шлях до файлу.

$filename = pathinfo($image, PATHINFO_FILENAME); – отримуємо ім'я файлу без розширення та зберігаємо отримане ім'я файлу в змінній $filename.

... У цьому місці відбувається відображення завантажених світлин, дивіться розмітку у повному коді.

endforeach; – завершуємо цикл foreach.

else:

echo 'Відсутній контент для відображення.'; – якщо $images порожній (тобто в папці немає зображень), виконується код після else.

endif; – Завершує if – if (!empty($images)).

Повний код скрипту:

Файл index_file_.php

<?

$directory = 'images'; // Директорія з картинками
$images = glob($directory . '/*.jpg'); // Отримуємо всі JPG-файли

sort($images); // Сортуємо список файлів у алфавітному порядку

if (isset($_GET['content'])) {

    $url = 'https://www.google.com/';
    header('Location: '.$url);
    exit();

}

?>
<!DOCTYPE html>
<html lang="uk">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Мій сайт</title>
    <style>
body {
    margin: 0;
    font-family: Arial, sans-serif;
}

header {
    background-color: #333;
    color: white;
    padding: 15px 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
}

.logo {
    font-size: 1.5em;
    font-weight: bold;
}

nav {
    display: flex;
    gap: 15px;
}

nav a {
    color: white;
    text-decoration: none;
    font-size: 1em;
}

nav a:hover {
    text-decoration: underline;
}

.gallery-container {
    display: flex;
    justify-content: center;
    margin: 20px auto 0 auto;
    padding: 0 10px;
    max-width: 1000px;
}

.gallery {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
    max-width: 100%;
}

.image-item {
    margin: 0 0 15px 0;
    text-align: center;
    text-decoration: none;
    color: inherit;
    display: block;
}

.gallery img {
    width: 100%;
    max-width: 200px;
    height: auto;
    border-radius: 5px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
    display: block;
}

.image-name {
    margin: 5px 0 0 0;
    font-size: 14px;
    color: #333;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

p {
    margin: 15px 10px;
    padding: 0;
    text-align: center;
}

#footer {
    position: absolute;
    bottom: 0;
    width: 100%;
    text-align: center;
    color: #f9f9ff;
    background-color: #333;
    padding: 15px 0;
}

/* Адаптивні стилі */
@media (max-width: 600px) {
    header {
        flex-direction: column;
        text-align: center;
    }

    nav {
        flex-direction: column;
        gap: 10px;
        margin-top: 10px;
    }

    .gallery {
        gap: 5px;
    }

    .gallery img {
        max-width: 150px;
    }
    .image-item {
        width: 100%;
        max-width: 150px;
    }
}
    </style>
</head>

<body>
    <header>
        <div class="logo">Логотип</div>
        <nav>
            <a href="#">Головна</a>
            <a href="#">Про нас</a>
            <a href="#">Контакти</a>
        </nav>
    </header>

    <div class="gallery-container">
    <?
    if (!empty($images)):
        echo '<div class="gallery">';
            foreach ($images as $image):
                $filename = pathinfo($image, PATHINFO_FILENAME); // Отримуємо назву
                echo '<a href="?content=' . htmlspecialchars($filename) . '" target="_blank" class="image-item">';
                    echo '< img src="' . htmlspecialchars($image) . '" alt="' . htmlspecialchars($filename) . '">';
                    echo '<div class="image-name">' . htmlspecialchars($filename) . '</div>';
                echo '</a>';
            endforeach;
        echo '</div>';
    else:
        echo '<p class="message">Відсутній контент для відображення.</p>';
    endif;
    ?>
    </div>

    <div id="footer">
        &copy; Мій_Сайт, 2025
    </div>
</body>
</html>

 

Файл .htaccess

У цьому файлі треба замінити DOMAIN_NAME на ваш домен. А у рядку RewriteRule ^(.*)$ index_file_.php [L] задається ім'я головного файлу.

<Files *>
order allow,deny
allow from all
</Files>

<Files .htaccess>
order allow,deny
deny from all
</Files>

Options -Indexes

Options +FollowSymlinks
RewriteEngine on

RewriteBase /

RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://DOMAIN_NAME/$1 [R,L]

RewriteCond %{THE_REQUEST} !\/images/
RewriteRule ^(.*)$ index_file_.php [L]

 

Завантажити повний архів:
https://cdn.steemitimages.com/DQmW3VXRFJNfNB17Y36sud1vfzgiVWWyhh7GYA9b1LUusmH/WebSiteLandingPage_zip.jpg

Нехай мене вибачать розробники Стіміт, бо тут заборонено завантажувати певні файли крім світлин. Але зараз саме той випадок коли «дуже треба». Після завантаження треба змінити розширення імені WebSiteLandingPage_zip.jpg на WebSiteLandingPage_zip.zip, але під час перевірки здатності завантажити файл за мене це зробив Ґуґл-Хром.

Sort:  
 22 hours ago 

Колись у дуже далекому минулому я займався дуже мутними справами – я крав гроші у росіян.

Ну дуже клікбейтний перший рядок))) Особливо для українця))

Але тільки на Росію це було спрямоване? 😉

 22 hours ago 

тільки на Росію це було спрямоване?

Тільки ☝🏻😉

 22 hours ago 

💪

 20 hours ago 

Колись у дуже далекому минулому я займався дуже мутними справами – я крав гроші у росіян.

Як сміливо…
Написати таке, та ще й так що, це видно навіть якщо не відкриваєш допис …
Оце відвертість … 😅
image.png

 15 hours ago (edited)

Я не розумію, чого мені боятися. Кожен день гинуть українці від рук росіян. Тож боятися просто нічого 🤷🏻‍♂️

 15 hours ago 

Я писала не про страх, а про сміливу щирість. 😔

 15 hours ago (edited)

Вибачаюсь, не так зрозумів... 🙏
А що тут приховувати )) Покарати мене нікому 😉
На фоні всіх подій я просто радий що робив це ))

 9 hours ago 

Мене не покидає відчуття, що я вас образив. Сподіваюсь, це помилкове відчуття 😐

 1 hour ago 

Ні все ок. Ніби нічого образливого не було. Чи я що не зрозуміла і треба ображатись ? 🤣🤣🤣😇

 1 hour ago 

🌻🌤🫶🏻

 1 hour ago 

Хіба на Вас можна ображатися. Ви виглядаєте дуже милою людиною:)

 yesterday 

У текстовому прикладі зайвий пробіл зроблено навмисно, тому що Стіміт не давав опублікувати допис.
Під час публікації була помилка: "An image in this post did not save properly".