Splash Screen (komunikat informacyjny) strony www

0

Chciałbym zrobić na mojej stronie internetowej taki myk, że KAŻDE pierwsze wejście na stronę (niezależnie, czy na główną (index.php) czy na podstronę (download.php)) odpali swojego rodzaju Splash Screen, który po określonym czasie się zamknie i przekieruje użytkownika na stronę, którą pierwotnie chciał wyświetlić. Czy to jest możliwe?
Ewentualnie "rozmazanie strony/podstrony" i wyświetlenie komunikatu na określony czas, który znika i daje normalny dostęp do zasobów.

Obecnie używam takich wpisów w .htaccess (przekierowuje strony błędów apacza oraz jako, że mam certyfikat SSL, przekierowuje na protokół https).

ErrorDocument 401 /401.php
ErrorDocument 403 /403.php
ErrorDocument 404 /404.php
ErrorDocument 500 /500.php

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

Reasumując, czy jest możliwe zrobienie (php,js, html,css) takiego mechanizmu:

  1. Użytkownik wchodzi na moją stronę (dowolną podstronę)
  2. Odpala się ekran z ważnym komunikatem (donacja)
  3. Po okresie np. 30 sekund strona ta zostaje zamknięta i wyświetla się normalna strona, którą użytkownik chciał przeczytać

Będę wdzięczny za wskazówki.
-Pawel

4

To o czym piszesz nie ma żadnego związku (albo minimalny) z .htaccess.

**1) **Sam "splash screen" to po prostu okienko modalne z rozmyciem tła. Pełno jest informacji w necie jak to zrobić. Przykład pierwszy z brzegu: https://www.cssscript.com/simple-modal-window-with-background-blur-effect/ oraz działająca wersja demo: https://www.cssscript.com/demo/simple-modal-window-with-background-blur-effect/

2) Co do znikania po jakimś czasie - JavaScript i setTimeout - https://www.javascripttutorial.net/javascript-bom/javascript-settimeout/

3) W temacie wykrycia pierwszego wejścia na stronę - ciasteczka/cookies i ich odczyt. Podczas odpalania strony sprawdzasz, czy Twoje ciasteczko już istnieje. Jeśli tak, to idziesz dalej (bo znaczy, że pacjent już wchodził na stronę), jeśli go nie ma, to wtedy je zakładasz, a następnie wyświetlasz stosowne okienko/splash/informację/cokolwiek.

P.S. Pamiętaj tylko, że cookies to jest śmiertelne zagrożenie, w związku z czym miłościwie nam panująca Unia Erłojepska nakazała informowanie tych biednych użytkowników o tym, że cookies są wykorzystywane. Totalny debilizm, ale lepiej do mieć, żeby ktoś się nie doczepił.

0

Ogólnie, to szukam prostego i zgrabnego rozwiązania, które działa globalnie. Aha - jestem dosyć zielony w tych sprawach i mogę pisać głupoty.
Nie chcę, na każdej stronie wstawiać kodu. Pisałem o htaccess, bo tam globalnie mogę zmieniać świat :P

Odniosę się do twoich uwag.

  1. Splash Screen to dobre rozwiązanie i łatwe do realizacji - ale rozumiem, że musiałbym do każdej strony dodać kod, który go odpali.
  2. Tak, to niuanse
  3. Hmm. Nie używam ciastek i chciałem tego uniknąć. Chyba bardziej od reklam denerwują mnie komunikaty o ciastkach, rodo i innych głupotach (typu, czy chcesz włączyć powiadomienia dla tej strony - patologia). Nie chcę tego u siebie.

Chciałem zrobić tak jak mam teraz, tylko nieco łagodniej. Obecnie całkowicie odciąłem wszystkich od kontentu, póki nie "zarobię" na opłaty. Ale to jest bardzo złe działanie. Myślę nad usprawnieniem, które każdemu wyświetliło by prośbę o donację i po odpowiednim czasie dało dostęp do czego tam chce. Eh, nie wiem czy nie błądzę...

2

Ale w jaki sposób chcesz w takim razie zrealizować rozpoznanie pierwszego wejścia? Gdzieś te dane muszą być trzymane. Najprostsze jest wrzucenie ciasteczka. Poza tym możesz dać informację o cookies jako 1-2 zdania z linkiem do większej ilości szczegółów gdzieś drobnym drukiem na dole ekranu splash.

Alternatywą jest jakieś zapamiętywanie po stronie serwera faktu, że dany klient już był, ale jest to o wiele bardziej skomplikowane, mniej wiarygodne, poza tym i tak będziesz musiał poinformować klienta o tym, że zbierasz jakieś dane z nim związane (IP, dane przeglądarki itp.), a do tego z racji ich pobierania i przechowywania ocieramy się o RODO.

Naprawdę, opcja z cookies jest najlepsza.

A ten fragment rozumiem, że musiałbym do każdej strony dodać kod, który go odpali jest prawdziwy, ale nie jest żadnym problemem. Tworzysz sobie jakiś skrypt w JS, którego zadaniem będzie sprawdzenie, czy dane wejście jest pierwszym. Umieszczasz go w osobnym pliku, a potem jedynie musisz dodać go gdzieś w HTML, najlepiej w sekcji <HEAD>, a potem tylko go jednorazowo wywołać. Poza tym raczej nie piszesz każdej strony osobno, tylko korzystasz z jakichś szablonów, wstawiasz jakiś nagłówek/stopkę do każdej strony. Więc jak dodasz odwołanie do skryptu sprawdzającego pierwsze wejście do takiego szablonu, to automatycznie pojawi się we wszystkich stronach ten szablon wykorzystujących.

0

Hehe, dziękuję za chęć pomocy. Ale teraz to napisałeś jakbym wczoraj się urodził :)
Basic Level for rookiees! :P

Ps: kombinowałem z Web Storage API (localStorage) ale to wszytko mi się nie podoba. Zresztą, js mnie denerwuje. Nie wszyscy używają.
Na razie zostawię jak jest i za parę dni przywrócę normalna stronę. Szkoda zachodu z komunikatami.

1

kombinowałem z Web Storage API (localStorage) ale to wszytko mi się nie podoba

No ale to nie służy to zastępowania ciasteczek. Owszem, da się ten mechanizm wykorzystać, ale jest to niepotrzebne komplikowanie tematu. Poza tym i tak zbierasz dane i je przechowujesz, więc moim zdaniem trzeba dać takie same informacje/ostrzeżenia, co w wypadku cookies

Zresztą, js mnie denerwuje

Na to nic nie poradzę ;)

Nie wszyscy używają

Obecnie można przyjąć, że jednak wszyscy. Dawniej rzeczywiście się uwzględniało scenariusze, w których user mógł mieć JS zablokowany. Aktualnie praktycznie wszystkie strony się w mniejszym lub większym stopniu opierają o JS, więc można przyjąć, że każdy użytkownik ma JS włączony. A jeśli sobie go zablokuje, to nie tylko Twoja strona nie będzie poprawnie się wyświetlać, ale 95% innych także.

1 użytkowników online, w tym zalogowanych: 0, gości: 1