Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP] Automatycznie wykonanie kodu
Forum PHP.pl > Forum > Przedszkole
plaxton
Witam,
Pytanie od przedszkolaka :-)
Czy jest możliwość aby wykonać skrypt PHP automatycznie po wejściu na stronę index.html ?

Potrzebuję wykonać prosty skrytp do logów strony który zbierałby informacje o użytkowniku: IP , UA, itd... , a następnie zapisywał do pliku log.txt . Niestety nie mam dostępu do logów serwera. Taki skrypcik posiadam , ale działa on tylko przy wysyłaniu formularza i Submit . Natomiast chciałbym aby był on wykonywany automatycznie przy każdym wejściu na stronę w .html

Czy to jest w ogóle możliwe , czy trzeba przerabiać na .JS ?

Ew. czy ktoś może polecić podobne, gotowe rozwiązanie w JS ?
StrefaPi
include w każdym pliku ;)

Piwik, Google Analytics
trueblue
Możesz przekierować wszystkie pliki .html na wrapper w PHP, który "wykona" statystykę, a w odpowiedzi poda plik HTML.
Można też w .htaccess spowodować doklejanie kodu na koniec pliku.
plaxton
@StrefaPi
- include - To rozwiązanie działa chyba jeśli chciałbym umieścić odwołanie .html w pliku .php , a nie na odwrót : plik PHP traktować jako skrypt w pliku .html
Musiałbym wszystko przerabiać na .php i w każdej stronie imieszczać include do .html

- G Analystic - nie zbiera logów. Piwik jest płatny.

@trueblue
"Można też w .htaccess spowodować doklejanie kodu na koniec pliku."

Jak to zrobić ? Bo to chyba najprostsze rozwiązanie ?


Ogólnie z tego wnioskuje że rozwiązania takiego prostego i podstawowego nie ma w PHP , i lepiej przerobić to na JS dodając link do skryptu w stronę html ?
markonix
Cytat(plaxton @ 19.12.2018, 01:32:00 ) *
Ogólnie z tego wnioskuje że rozwiązania takiego prostego i podstawowego nie ma w PHP , i lepiej przerobić to na JS dodając link do skryptu w stronę html ?

Oczywiście, że jest. Każda aplikacja i framework ma możliwość wstrzyknięcia kodu, który wykona się przy określonej akcji, chociażby każdym otwarciu strony (request GET).

W Twoim przypadku chodzi o pojedynczy plik więc do tego pojedynczego pliku wklejasz kod PHP, nie musi być w include, nie musi być wstrzykiwany nietypowymi metodami.
To, że plik ma rozszerzenie html nie oznacza, że nie odpalisz w nim php.
plaxton
Cytat(markonix @ 19.12.2018, 01:54:22 ) *
Oczywiście, że jest. Każda aplikacja i framework ma możliwość wstrzyknięcia kodu, który wykona się przy określonej akcji, chociażby każdym otwarciu strony (request GET).

W Twoim przypadku chodzi o pojedynczy plik więc do tego pojedynczego pliku wklejasz kod PHP, nie musi być w include, nie musi być wstrzykiwany nietypowymi metodami.
To, że plik ma rozszerzenie html nie oznacza, że nie odpalisz w nim php.


OK,
do odpalenia skryptu PHP przez formularz używam kodu :
  1. <form id="contactform" name="contactform" action="contact.php" method="post">
  2. <button type="submit" value="wyslij"class="btn ">Wyślij</button>
  3. </form>



Zatem jak powinien wyglądać kod aby odpalić kod PHP automatycznie po wejściu na strone ?


.
Pyton_000
Jeśli ten twój plik ze skryptem nic nie zwraca (żadnego output) to:
- albo możesz zrobić request ajaxem
- wstawić takiego potworka:

<img src="twoj.php" alt="" />

powinno zadziałąć smile.gif
markonix
Nadal nie rozumiem po co ajax lub pixel śledzący zamiast inline php w miejscu w którym ma się wykonywać.
Pyton_000
Dla tego że to plik html?
markonix
W niczym to nie przeszkadza, linijka kodu i html będzie parsowany poza tym nigdzie nie zostało napisane, że to musi być html w znaczeniu rozszerzenia, bardziej uznaje, że chodzi po prostu o to że mamy podstronę z kodem HTML.
plaxton
Cytat(markonix @ 20.12.2018, 22:39:56 ) *
W niczym to nie przeszkadza, linijka kodu i html będzie parsowany poza tym nigdzie nie zostało napisane, że to musi być html w znaczeniu rozszerzenia, bardziej uznaje, że chodzi po prostu o to że mamy podstronę z kodem HTML.


strona w kodzie html , w rozszerzeniu pliku index.html

Ten potworek mi się podoba:
<img src="twoj.php" alt="" />
To jest tzw pixel śledzący ? Czy Google ma coś przeciwko lub przeglądarki jeśli odpali się PHP poprzez IMG ? Nie będą krzyczeć ?
Nic na stronę nie ma być zwracane tylko zapisywane do logs.txt
markonix
Cytat(plaxton @ 21.12.2018, 00:18:39 ) *
strona w kodzie html , w rozszerzeniu pliku index.html

W niczym to nie przeszkadza.

https://www.google.com/search?safe=off&...l+parser+as+php
Pyton_000
@markonix zdajesz sobie sprawę że parsowanie HTML to nie jest najlepsze rozwiązanie? Tym bardziej do takiedo trywialnego zadania
markonix
Nie zdaje sobie sprawy skoro to zasugerowałem.
Nie raz z tego korzystałem na statycznych stronach HTML gdzie potrzebne było troszkę PHP i w żaden sposób się na tym jeszcze nie sparzyłem.

Jedyną wadę jaką widzę to kwestie optymalności, plik HTML leci niepotrzebnie przez parser PHP.

Pixele śledzące mogą być blokowane przez wtyczyki i tryby incognito. Z drugiej strony Ty zwracasz obrazek więc nie są w stanie wykryć tego co się dzieje pod przykryciem.
Obrazek też z pewnością optymalny nie jest bo to request oraz minusem jest, że traci kontekst wywołania (np. referer).
plaxton
Pozwolę sobie odświeżyć temat.
Patent z <img> i skryptem php działa, przynajmniej w localhost. Jeśli kogoś by zainteresowało znalazłem też jak to zamaskować , choć jeszcze nie próbowałem w praktyce.
http://blog.aleksander.kaweczynski.pl/jak-...comment-page-1/

Ale proszę o pomoc w kodzie PHP. Nie wiem czemu ale zapisuje mi się dwa razy. Otrzymuje dwa rekordy z tymi samymi wartościami. Nie wiem czy to wina kodu, czy też skrypt jest dwa razy uruchamiany w zdjęciu ?

sama końcówka:
  1.  
  2. $fp=fopen("logs.txt","a"); // here is apendix
  3. $savestring = "ONE: ".$ipaddress." TWO: ".$useragent."\n";
  4. fwrite($fp, $savestring);
  5. fclose($fp);
  6.  


To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.