🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

19 total messages Started by Colnet Sat, 21 Nov 2020 13:08
Strona www z potwierdzeniem odczytania
#57762
Author: Colnet
Date: Sat, 21 Nov 2020 13:08
9 lines
1967 bytes
Chcę zrobić podstronę www która dostępna była by do odczytu za hasłem, przydał by się numer IP odczyttującego i zapis do pliku. Jak zrobić hasło to się doczytałem tutaj:

https://edodatki.pl/porada-dla-webmasterow/jak-zrobic-zabezpieczenie-strony-haslem

jak  odczyt numeru IP też: 

http://www.capaciouscore.pl/artykuly/jak-odczytac-adres-ip-goscia-odwiedzajacego-strone/

  - ale nie mogę nigdzie znaleźć sposobu zapisu tego numeru do pliku i odczytanie tegoż. Chodzi mi o publiczny numer IP - to jest jak pod takim jest wiele komputerów z zakresu IP 192.168.x.x - to już o takie dokładności mi nie chodzi - wystarczy ten publiczny IP.  Proszę o pomoc lub pomocny link do tematu.
Re: Strona www z potwierdzeniem odczytania
#57763
Author: Mateusz Viste
Date: Sat, 21 Nov 2020 13:31
13 lines
1340 bytes
On Sat, 21 Nov 2020 05:08:11 -0800 (PST)
Colnet <januszp366@gmail.com> wrote:
>   - ale nie mogę nigdzie znaleźć sposobu zapisu tego numeru do pliku
> i odczytanie tegoż. Chodzi mi o publiczny numer IP - to jest jak pod
> takim jest wiele komputerów z zakresu IP 192.168.x.x - to już o takie
> dokładności mi nie chodzi - wystarczy ten publiczny IP.

<?php file_put_contents('plik.txt', $_SERVER['REMOTE_ADDR']); ?>

* https://www.php.net/manual/en/reserved.variables.server
* https://www.php.net/manual/en/function.file-put-contents

Mateusz
Re: Strona www z potwierdzeniem odczytania
#57764
Author: Colnet
Date: Thu, 26 Nov 2020 07:02
10 lines
2163 bytes
sobota, 21 listopada 2020 o 13:31:46 UTC Mateusz Viste napisał(a):
[..]

> <?php file_put_contents('plik.txt', $_SERVER['REMOTE_ADDR']); ?> 
> 
> * https://www.php.net/manual/en/reserved.variables.server 
> * https://www.php.net/manual/en/function.file-put-contents 

Próbowałem to z plikiem index.html oraz index.php  - obydwa umieszczałem w podkatalogu strony ABC -  niestety plik.txt pozostał pusty - trening przeprowadzałem na razie ze swoim komputerem i swoją stroną na serwerze odległym. Wiersz skryptu umieszczałem zaraz pod "body" - może w innym miejscu należy umieścić ?
Googlowałem w sprawie jeszcze raz ale wszędzie tylko o odczytywaniu IP i nigdzie o zapisie do pliku. Linki które podałeś odwiedziłem - ale przy nieznajomości PHP są dla mnie niezrozumiałe.
Re: Strona www z potwierdzeniem odczytania
#57765
Author: Mateusz Viste
Date: Thu, 26 Nov 2020 08:36
44 lines
2486 bytes
On 25 Nov 2020 23:02 -0800 (PST) Colnet <januszp366@gmail.com> wrote:
> sobota, 21 listopada 2020 o 13:31:46 UTC Mateusz Viste napisał(a):
> > <?php file_put_contents('plik.txt', $_SERVER['REMOTE_ADDR']); ?> 
> 
> Próbowałem to z plikiem index.html oraz index.php  - obydwa
> umieszczałem w podkatalogu strony ABC -  niestety plik.txt pozostał
> pusty

Tzn. plik "plik.txt" został stworzony, ale z pustą zawartością? W
takim razie niewykluczone, że twój hosting z jakichś powodów nie
podaje REMOTE_ADDR w $_SERVER[].

Przeczytaj zawartość tabeli $_SERVER[], być może znajdziesz adres IP
klienta pod innym indeksem:

<html><head></head><body><pre>
<?php var_dump($_SERVER); ?>
</pre></body></html>

U mnie widzę, że adres klienta pojawia się pod HTTP_REMOTE_IP,
REMOTE_ADDR oraz HTTP_X_REMOTE_IP.

>  trening przeprowadzałem na razie ze swoim komputerem

"trening"? Brzmi intensywnie. :)

> Wiersz skryptu umieszczałem zaraz pod "body" - może w innym miejscu
> należy umieścić ?

Wszystko jedno, gdziekolwiek by nie był, PHP go uruchomi (pod warunkiem,
że sam plik zostanie wykonany - jeśli na serwerze działa PHP i plik
posiada rozszerzenie *.php, to powinien).

> tylko o odczytywaniu IP i nigdzie o zapisie do pliku.

Odczyt IP klienta wykonasz za pomocą super globalnej zmiennej
$_SERVER[], a zapis do pliku najprościej jednym wywołaniem
file_put_contents(). Dla testu możesz wykonać coś takiego:

<?php file_put_contents('plik.txt', 'tralalala'); ?>

To wszystko oczywiście przy założeniu, że twój hosting wspiera php.

Mateusz
Re: Strona www z potwierdzeniem odczytania
#57766
Author: Colnet
Date: Thu, 26 Nov 2020 09:50
6 lines
2193 bytes
czwartek, 26 listopada 2020 o 08:36:19 UTC Mateusz Viste napisał(a):
[..]
> Tzn. plik "plik.txt" został stworzony, ale z pustą zawartością? W 
[..]

Wow...! Dzięki za odpowiedź - "poszło" - radość wywołała u mnie sentencja słów: "Tzn. plik "plik.txt" został stworzony, ale z pustą zawartością?". Ja ten plik.txt utworzyłem "ręcznie" na dysku i wysłałem na server, ale jak napisałeś że ten plik ma zostać utworzony na serverze to ten wysłany skasowałem, później otworzyłem stronę i był plik plik.txt  wraz zawartością mojego IP. Chodziło zapewne o prawa zapisu do pliku - ja pracuję pod Linux Mint więc plik miał moje prawa usera na systemie - teraz jest OK - dzięki bardzo. Da radę jeszcze dokoptować to tego datę i czas tak żeby były w jednej linii z nr IP ?
Re: Strona www z potwierdzeniem odczytania
#57767
Author: Mateusz Viste
Date: Thu, 26 Nov 2020 10:02
20 lines
1551 bytes
On 26 Nov 2020 01:50 -0800 (PST) Colnet <januszp366@gmail.com> wrote:
> Da radę jeszcze dokoptować to tego datę i czas tak żeby były w jednej
> linii z nr IP ?

Patrz tutaj:
https://www.php.net/manual/en/function.date.php

Czyli wyjdzie coś takiego:

<?php
file_put_contents('plik.txt', date('c') .
': '. $_SERVER['REMOTE_ADDR']);
?>

Każde wywołanie spowoduje nadpisanie pliku plik.txt nową zawartością.

Odpowiedź na to, w jaki sposób miast tego dodawać kolejne wpisy do pliku
znajdziesz w podręczniku (wcześniej podanym) od file_put_contents().

Mateusz
Re: Strona www z potwierdzeniem odczytania
#57768
Author: Colnet
Date: Thu, 26 Nov 2020 14:14
12 lines
1913 bytes
czwartek, 26 listopada 2020 o 10:02:05 UTC Mateusz Viste napisał(a):
[..]
> 
> Czyli wyjdzie coś takiego: 
> 
> <?php 
> file_put_contents('plik.txt', date('c') . 
> ': '. $_SERVER['REMOTE_ADDR']); 
> ?> 
[..]
Dzięki - funkcjonuje zarówno data/czas jak i numer IP.
O dopisywaniu kolejnych linii poczytam późnym wieczorem lub jutro.
Re: Strona www z potwierdzeniem odczytania
#57769
Author: Colnet
Date: Fri, 27 Nov 2020 04:21
1 lines
2067 bytes
Póki co ściągnąłem sobie e-book z kursem PHP , tyle  tylko że  na pewno  nie zdążę z nim do świąt. Tematu szukam pod hasłem : "wielowierszowy zapis do pliku",  ale jak na razie z marnymi wynikami. Ze strony :  https://www.php.net/manual/en/function.file-put-contents nie sposób coś wyczytać nie znając PHP, może ktoś z forumowiczów podpowie mi pod jakim tematem mam szukać potrzebnych informacji w Google'ach.
Re: Strona www z potwierdzeniem odczytania
#57770
Author: Mateusz Viste
Date: Fri, 27 Nov 2020 08:13
24 lines
2301 bytes
On 26 Nov 2020 20:21 -0800 (PST) Colnet <januszp366@gmail.com> wrote:
> Póki co ściągnąłem sobie e-book z kursem PHP , tyle  tylko że  na
> pewno  nie zdążę z nim do świąt. Tematu szukam pod hasłem :
> "wielowierszowy zapis do pliku",  ale jak na razie z marnymi
> wynikami. Ze strony :
> https://www.php.net/manual/en/function.file-put-contents nie sposób
> coś wyczytać nie znając PHP, może ktoś z forumowiczów podpowie mi pod
> jakim tematem mam szukać potrzebnych informacji w Google'ach.

W podręczniku do którego linka podałem wcześniej, a który cytujesz
nieco wyżej, jest to jednoznacznie wyjaśnione.

Funkcja file_put_contents() oczekuje dwóch obowiązkowych argumentów:
nazwę pliku oraz dane do wpisania w ten plik. Opcjonalnie może także
przyjąć dwa kolejne argumenty, w tym "flagi". Jedną z możliwych flag
jest flaga FILE_APPEND. podręcznik pisze o niej tak:

"If file filename already exists, append the data to the file instead
of overwriting it."

Krótko mówiąc, wystarczy dodać FILE_APPEND jako trzeci argument
wywołania funkcji file_put_contents().

Mateusz
Re: Strona www z potwierdzeniem odczytania
#57771
Author: Colnet
Date: Sun, 29 Nov 2020 11:11
9 lines
2141 bytes
[..]
> Krótko mówiąc, wystarczy dodać FILE_APPEND jako trzeci argument 
> wywołania funkcji file_put_contents(). 
[..]
Dzięki bardzo - skrypt pracuje i zapisuje potrzebne informacje. Pracuję obecnie nad tym 
żeby jedno otwarcie strony to był jeden wiersz z tymi informacjami - w ten sposób będzie
to bardziej czytelne. Usiłowałem się zapisać na forum PHP  - forum.php.pl , ale coś mają
zwalone przy  rejestracji i na razie sam kombinuję jak to zrobić. Może jest jakieś inne, a 
polskojęzyczne forum o PHP ?
Re: Strona www z potwierdzeniem odczytania
#57772
Author: Mateusz Viste
Date: Sun, 29 Nov 2020 16:51
17 lines
1882 bytes
On 29 Nov 2020 03:11 -0800 (PST) Colnet <januszp366@gmail.com> wrote:
> Pracuję obecnie nad tym żeby jedno otwarcie strony to był jeden
> wiersz z tymi informacjami - w ten sposób będzie to bardziej
> czytelne.

Brzmi jakby brakowało po prostu LFa ("\n").

file_put_contents('plik.txt', date('c') . ': '.
$_SERVER['REMOTE_ADDR'] . "\n");

> Usiłowałem się zapisać na forum PHP  - forum.php.pl , ale
> coś mają zwalone przy  rejestracji i na razie sam kombinuję jak to
> zrobić. Może jest jakieś inne, a polskojęzyczne forum o PHP ?

Nic nie wiem o żadnych forach, nie znam się.

Mateusz
Re: Strona www z potwierdzeniem odczytania
#57773
Author: Colnet
Date: Sun, 29 Nov 2020 19:08
21 lines
2558 bytes
> niedziela, 29 listopada 2020 o 16:51:48 UTC Mateusz Viste napisał(a):

> Brzmi jakby brakowało po prostu LFa ("\n").
> file_put_contents('plik.txt', date('c') . ': '.
> $_SERVER['REMOTE_ADDR'] . "\n");

Dzięki, ale ja już to próbowałem najpierw było tak:

<?php
file_put_contents('visitors.txt', date('c') .
': '. $_SERVER['REMOTE_ADDR'] , FILE_APPEND );
echo("\r\n");
?>
 - błędu nie wyrzuca, ale też nowej linii nie robi.

Jak wstawiłem jak napisałeś  to parser wyrzuca błąd:

Parse error: syntax error, unexpected '"\n"' (T_CONSTANT_ENCAPSED_STRING) in /profiles [..]index.php on line 11

Z tym nie ma najmniejszego problemu ponieważ mogę sobie ten plik ściągnąć
na komputer i Enterem "masowo" dostawić w Word'zie.
Re: Strona www z potwierdzeniem odczytania
#57774
Author: Mateusz Viste
Date: Mon, 30 Nov 2020 08:24
21 lines
2029 bytes
On 29 Nov 2020 11:08 -0800 (PST) Colnet <januszp366@gmail.com> wrote:
> Dzięki, ale ja już to próbowałem najpierw było tak:
> 
> <?php
> file_put_contents('visitors.txt', date('c') .
> ': '. $_SERVER['REMOTE_ADDR'] , FILE_APPEND );
> echo("\r\n");
> ?>  
>  - błędu nie wyrzuca, ale też nowej linii nie robi.

Robi. Tyle, że na ekranie, a nie w pliku. file_put_contents() wrzuca
dane do pliku, a echo po prostu je wyświetla.

> Jak wstawiłem jak napisałeś  to parser wyrzuca błąd:
> 
> Parse error: syntax error, unexpected '"\n"'
> (T_CONSTANT_ENCAPSED_STRING) in /profiles [..]index.php on line 11

Coś przekombinowałeś. Podaj dokładnie, co zrobiłeś.

Mateusz
Re: Strona www z potwierdzeniem odczytania
#57775
Author: Piotr Lechowicz
Date: Mon, 30 Nov 2020 21:19
22 lines
2373 bytes
W dniu 2020-11-30 o 09:24, Mateusz Viste pisze:
> On 29 Nov 2020 11:08 -0800 (PST) Colnet <januszp366@gmail.com> wrote:
>> Dzięki, ale ja już to próbowałem najpierw było tak:
>>
>> <?php
>> file_put_contents('visitors.txt', date('c') .
>> ': '. $_SERVER['REMOTE_ADDR'] , FILE_APPEND );
>> echo("\r\n");
>> ?>
>>   - błędu nie wyrzuca, ale też nowej linii nie robi.
> 
> Robi. Tyle, że na ekranie, a nie w pliku. file_put_contents() wrzuca
> dane do pliku, a echo po prostu je wyświetla.
> 

Może spróbuj:

<?php
file_put_contents('visitors.txt', date('c') . ': ' . $_SERVER['REMOTE_ADDR']  . '\r\n', FILE_APPEND);
?>

echo pomiń całkowicie.
Re: Strona www z potwierdzeniem odczytania
#57776
Author: Colnet
Date: Mon, 30 Nov 2020 23:28
15 lines
2983 bytes
poniedziałek, 30 listopada 2020 o 21:19:32 UTC Piotr Lechowicz napisał(a):
[..]
> 
> <?php 
> file_put_contents('visitors.txt', date('c') . ': ' . $_SERVER['REMOTE_ADDR'] . '\r\n', FILE_APPEND); 
> ?> 
> 
> echo pomiń całkowicie.
--------------------------------------------------
Zrobiłem jak napisałeś - oto wynik:
2020-12-01T00:17:38+01:00: 79.75.141.132\r\n2020-12-01T00:17:45+01:00: 79.75.141.132\r\n2020-12-01T00:17:47+01:00: 79.75.141.132\r\n2020-12-01T00:17:48+01:00: 79.75.141.132\r\n2020-12-01T00:17:50+01:00: 79.75.141.132\r\n2020-12-01T00:17:51+01:00: 79.75.141.132\r\n2020-12-01T00:17:53+01:00: 79.75.141.132\r\n

 Wiesz - ja Ci bardzo dziękuję za pomoc - nie chcę Ci już zaprzątać czasu którego dziś nikt w nadmiarze nie ma.
Tyle co mam w tym skrypcie to w zupełności wystarczy,  a jeśli do tego przyłożyć że ma ten skrypt pracować  
w okresie świąt i nowego roku - to mam aż nad to co potrzebuję. Dzięki bardzo za pomoc i cierpliwość.
Re: Strona www z potwierdzeniem odczytania
#57778
Author: Mateusz Viste
Date: Tue, 01 Dec 2020 06:13
22 lines
2357 bytes
On 30 Nov 2020 15:28 -0800 (PST) Colnet <januszp366@gmail.com> wrote:
> poniedziałek, 30 listopada 2020 o 21:19:32 UTC Piotr Lechowicz
> napisał(a): [..]
> > 
> > <?php 
> > file_put_contents('visitors.txt', date('c') . ': ' .
> > $_SERVER['REMOTE_ADDR'] . '\r\n', FILE_APPEND); ?>   
> > 
> > echo pomiń całkowicie.  
> --------------------------------------------------
> Zrobiłem jak napisałeś - oto wynik:
> 2020-12-01T00:17:38+01:00:
> 79.75.141.132\r\n2020-12-01T00:17:45+01:00:
> 79.75.141.132\r\n2020-12-01T00:17:47+01:00:
> 79.75.141.132\r\n2020-12-01T00:17:48+01:00:

Piotr proponował zawarcie \r\n w pojedyńczym cudzysłowie. Myślę, że to
błąd, bo o ile dobrze kojarzę to taki cudzysłów nie może zawierać
żadnych interpretowanych wartości. Sugeruję skorzystać z "\r\n" (lub
"\n") zamiast '\r\n'.

Mateusz
Re: Strona www z potwierdzeniem odczytania
#57779
Author: Piotr Lechowicz
Date: Tue, 01 Dec 2020 07:17
31 lines
3065 bytes
W dniu 2020-12-01 o 07:13, Mateusz Viste pisze:
> On 30 Nov 2020 15:28 -0800 (PST) Colnet <januszp366@gmail.com> wrote:
>> poniedziałek, 30 listopada 2020 o 21:19:32 UTC Piotr Lechowicz
>> napisał(a): [..]
>>> <?php
>>> file_put_contents('visitors.txt', date('c') . ': ' .
>>> $_SERVER['REMOTE_ADDR'] . '\r\n', FILE_APPEND); ?>
>>>
>>> echo pomiń całkowicie.
>> --------------------------------------------------
>> Zrobiłem jak napisałeś - oto wynik:
>> 2020-12-01T00:17:38+01:00:
>> 79.75.141.132\r\n2020-12-01T00:17:45+01:00:
>> 79.75.141.132\r\n2020-12-01T00:17:47+01:00:
>> 79.75.141.132\r\n2020-12-01T00:17:48+01:00:
> Piotr proponował zawarcie \r\n w pojedyńczym cudzysłowie. Myślę, że to
> błąd, bo o ile dobrze kojarzę to taki cudzysłów nie może zawierać
> żadnych interpretowanych wartości. Sugeruję skorzystać z "\r\n" (lub
> "\n") zamiast '\r\n'.
>
> Mateusz

Oczywiście, masz rację - mój błąd.
Pojedynczy cudzysłów  może zawierać różne rzeczy, ale nie są one interpretowane. Przechodzą literalnie tak jak są wpisane - stąd string \n\r zamiast nowej linii w pliku.

To powinno zadziałać zgodnie z oczekiwaniami:
<?php
file_put_contents('visitors.txt', date('c') . ': ' . $_SERVER['REMOTE_ADDR'] . "\r\n", FILE_APPEND);
?>

Piotr
Re: Strona www z potwierdzeniem odczytania
#57780
Author: Mateusz Viste
Date: Tue, 01 Dec 2020 09:07
13 lines
2138 bytes
On 1 Dec 2020 08:17 +01 Piotr Lechowicz <edithkal@gmail.com> wrote:
> To powinno zadziałać zgodnie z oczekiwaniami:
> <?php
> file_put_contents('visitors.txt', date('c') . ': ' .
> $_SERVER['REMOTE_ADDR'] . "\r\n", FILE_APPEND); ?>  

Tak jest - i to dokładnie proponowałem (w wersji z "\n", gdyż OP
wspominał, że działa na Linuksie) dn. 29.11.2020 o 16:51 UTC. Umyślnie
nie podałem wówczas flagi FILE_APPEND licząc na to, że Janusz sobie to
rozumnie poskłada. Przypowieść o wędce, itd. No ale teraz ma już
wszystko na tacy.

Mateusz
Re: Strona www z potwierdzeniem odczytania
#57781
Author: Colnet
Date: Tue, 01 Dec 2020 09:36
10 lines
2583 bytes
Bingo. Skrypt działa. 
2020-12-01T10:21:38+01:00: 79.75.141.132
2020-12-01T10:21:41+01:00: 79.75.141.132
2020-12-01T10:21:45+01:00: 79.75.141.132
2020-12-01T10:21:48+01:00: 79.75.141.132
2020-12-01T10:21:51+01:00: 79.75.141.132

Dziękuję  wam obu za pomoc.  W styczniu zamierzam się wziąć za naukę
albo Java albo PHP.  Co polecicie mi jako pierwsze bo zamierzam nauczyć się obu
a kolejność dobrać tak żeby nawyki z "pierwszego" nie utrudniały w tym drugim.
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads