Zapisywanie IP wchodzących na stronę. (jestem początkujący xD)

Odpowiedz Nowy wątek
2017-04-29 19:44
200
0

Nie potrafię napisać takiego skryptu, więc zwracam się tutaj o pomoc.
Chcę, aby każdy kto wchodzi na moją stronę (index.html), jego ip było zapisywane w tabeli na innej podstronie (admin.php)
Fajnie jeszcze by było gdyby była pokazana data i przeglądarka (działało podobnie/tak samo jak iplogger.com).

edytowany 2x, ostatnio: 200, 2017-04-29 20:10

Pozostało 580 znaków

2017-04-29 19:58
Biały Jeleń
1

Eh, zwraca adres ip $_SERVER['REMOTE_ADDR'];

Teraz wystarczy dodać do bazy danych.
SQL, albo do pliku jak wolisz.

I ten plik admin.php może sobie potem czytać.

Ogólnie, tu nie ma nic trudnego, więc to trochę dziwny wątek.

Pozostało 580 znaków

2017-04-29 20:07
200
0

Dla Ciebie może nie, bo masz doświadczenie itp. , a ja jestem dopiero początkujący.
Możesz szczegółowo napisać jak to dodać do bazy danych.
Jak wyżej pisałem jestem początkujący, więc proszę o wyrozumiałość.

Pozostało 580 znaków

2017-04-29 22:06
1

Jaką masz bazę danych?
Czy wiesz, jak w ogóle zrobić podłączenie do niej?
Czy wiesz, jak w ogóle wysłać zapytanie SQL do bazy danych w celu pobrania danych lub wykonania czynności?

Przy założeniu, że jest to baza MySQL, a na drugie i trzecie pytanie odpowiesz "Tak", to zrobisz to poleceniem
insert into JakasTabela (JakiesPoleTekstowe) values ('".$JakasZmiennaPHP."').
Pamiętaj o ataku typu SQL Injection w kontekście możliwych wartości zmiennej do podstawienia.

Pozostało 580 znaków

2017-04-29 22:41

Tutaj rozwiązanie dla MySQL

Na swojej stronie index musisz mieć skrypt który połączy się z bazą danych. Najlepiej to zrobić tak, że masz osobny plik, nazwijmy go, dla przykładu, dbConnect.php w którym masz:
(Wszędzie tam gdzie podane są kwadratowe nawiasy zastępujesz swoimi nazwami pól)

<?php
$con = new mysqli('[ADRES DB]', '[LOGIN]', '[HASLO]', '[NAZWA DB]') or die("Error " . mysqli_error($con));
?>

A na stronie index (której będziesz musiał zmienić rozszerzenie z .html na .phpaby skrypty PHP działały) wrzucasz to:

<?php
include_once 'dbConnect.php';
// W tym momencie możemy odwoływać się do bazy danych poprzez $con

$ip = $_SERVER['REMOTE_ADDR']; // Przypisujemy IP użytkownika do zmiennej $ip

// Można przechować adres IP po prostu jako string, aczkolwiek lepiej przechować go w postaci long bo zajmie to mniej miejsca
// Do tego potrzebujemy 4 bajtowego (oczywiście bez znaku) pola w bazie danych 
$longIP = sprintf('%u', ip2long($ip));
// Przykład: Jeżeli $ip to 127.0.0.1 to $longIP będzie 2130706433

// Teraz czas na SQL
$query = "INSERT INTO [TABELA]([POLE IP]) VALUES('" . $longIP . "')";

// I powyższe zapytanie wysyłamy do bazy
mysqli_query($con, $query) or die(mysqli_error($con));  
?>

Powyższe masz do przechowywania samego adresu IP. Teraz zadanie należy do Ciebie aby dowiedzieć się jakich funkcji należy użyć aby dostać obecną datę i przeglądarkę użytkownika.

Jak już będziesz to miał to zmodyfikuj zapytanie aby uwzględnić wszystkie 3 zmienne, czyli

$query = "INSERT INTO [TABELA]([POLE IP], [POLE DATA], [POLE PRZEGLĄDARKA]) VALUES('" . $longIP . "', '" . $[ZMIENNA DATY] . "', '" . $[ZMIENNA PRZEGLĄDARKI] . "')";

Uwaga - zapytania do bazy danych nie były testowane.

edytowany 1x, ostatnio: atmal, 2017-04-29 22:42
Poza tym zamiast mysqli lepiej użyć PDO - axelbest 2017-04-29 22:49

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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