IP laten zien + opslaan
Ik ben al een tijd opzoek naar een script waarbij er de volgende dingen gebeuren:
- In de website content word het IP van de bezoeker geplaatst (Alleen de bezoeker kan zijn/haar ip-adres zien.)
- IP word opgeslagen in database + bezoek datum. (Bij elk bezoek van de bezoeker moet er een nieuwe tabel worden aangemaakt met:
- IP
- Datum
(Dan kan ik zien hoevaak hij de website heeft bekeken.
(Als het kan ook op de website hoevaak hij de website al heeft bezocht.)
Misschien klikt dit als een idioot kind dat zelf niks kan maar ik ben al een aantal weken aan het zoeken en toen dacht ik:
Ik ga het vragen op phphulp.
Groetjes,
Julian
Gewijzigd op 26/10/2012 18:27:09 door Julian x
met $_SERVER['REMOTE_ADDR'] kan je het IP ophalen, met een INSERT-query kan je je hem in de database opslaan, met mysql_num_rows() kan je kijken of een IP al voorkomt, en met een UPDATE-query kan je een veld van een opgeslagen ip-adres aanpassen, en dus steeds er eentje bij optellen.
Het leuke is overigens dat de webserver zelf ook al deze dingen logt in een tekstbestand. De access-log files.
- Aar - op 26/10/2012 16:30:11:
En je zou het ook kunnen maken natuurlijk. Zo lastig het het ook weer niet...
met $_SERVER['REMOTE_ADDR'] kan je het IP ophalen, met een INSERT-query kan je je hem in de database opslaan, met mysql_num_rows() kan je kijken of een IP al voorkomt, en met een UPDATE-query kan je een veld van een opgeslagen ip-adres aanpassen, en dus steeds er eentje bij optellen.
Het leuke is overigens dat de webserver zelf ook al deze dingen logt in een tekstbestand. De access-log files.
met $_SERVER['REMOTE_ADDR'] kan je het IP ophalen, met een INSERT-query kan je je hem in de database opslaan, met mysql_num_rows() kan je kijken of een IP al voorkomt, en met een UPDATE-query kan je een veld van een opgeslagen ip-adres aanpassen, en dus steeds er eentje bij optellen.
Het leuke is overigens dat de webserver zelf ook al deze dingen logt in een tekstbestand. De access-log files.
Dit weet ik -Aar- alleen ik ben er helemaal niet goed in met PHP & MySQL. Ik vraag op het moment en daar ben ik ook eerlijk over eigenlijk om een kant en klaar script. En natuurlijk is dit een website om mensen te helpen maar ik kan echt voor geen ene fluit PHP & MySQL. Ik kan wel goed HTML & CSS om website's te maken. Dus ik geef het ook zeker toe dat ik eigenlijk ZEUR om een script xD. Maar bedankt voor je snelle en aardige reactie -Aar-. Maar ook al bedoel je het goed, ik kan hier heel weinig mee :(.
Gewijzigd op 26/10/2012 16:51:19 door Julian x
Als je er echt niet uitkomt (laat dan even zien wat je gedaan hebt), dan wil ik zeker wel wat bouwen om je op weg te helpen.
Als je echt een script op aanvraag wilt doen, dan raad ik aan om in het vacature-forum een topic te starten.
Gewijzigd op 26/10/2012 18:00:11 door - Ariën -
<center>
<b>Uw ip:</b>
<br>
<i></i>
<br>
<br>
<b>Uw laatste bezoek:</b>
<br>
<i></i>
<br>
<br>
<b>Totaal aantal bezoeken:</b>
<br>
<i>Hier zijn wij mee bezig...</i>
<br>
<br>
<b>LET OP!</b>
<br>
<i>Uw IP word opgeslagen om betere aanpak te kunnen verrichten tegen Hackers. Uw gegevens worden niet doorgegeven aan onbevoegde.</i>
<br>
<br>
<b>Bent u het hier niet mee eens?</b>
<br>
<i><div id="information"><font color="blue">Als u het hier niet mee eens bent kunt u e-mailen naar:
<br>
.....</div></font></i>
</center>
Maar verder kom ik gewoon niet met het updaten, inserten & aanvragen van gegevens uit de ips >> ip & datum tabel. Ik zal maar op vacature pagina plaatsen. Bedankt voor je hulp -Aar-.
Toevoeging op 26/10/2012 18:26:37:
Ook meteen even voor andere die ik afkraakte bij forum's omdat ze over regels beginde:
Het spijt me dat ik zo reageerde. Ik zal voortaan proberen minder snel boos te worden. Ik waardeer jullie inzet voor iedereen heel erg. Heel erg bedankt dus. En nee, ik speel niet met Lego, Playmobiel of Barbie's :P. Vroeger misschien ;). Nu meer met mijn computer.
LET OP! Vergeet niet je database gegevens in te vullen anders werkt het niet.
Helaas geen tijd om de boel te vertalen, ik ben er van het weekend niet.
Code (php)
Het script, gewoon opslaan als een nieuwe pagina om te proberen.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
<?php
/* --------------------------------------------------------------------------------------------------------------------------
* Debugging.
* --------------------------------------------------------------------------------------------------------------------------
0 = OFF
1 = ON
Warning! Its not advised to display errors on a live website. Hackers might find it a bit to usefull for our liking.
*/
ini_set('display_errors', 0);
error_reporting(E_ALL);
/* --------------------------------------------------------------------------------------------------------------------------
* Create a new session or resume the current one.
* --------------------------------------------------------------------------------------------------------------------------
IMPORTANT! Make sure you call session_start() before outputting anything to the browser.
*/
session_start();
/* --------------------------------------------------------------------------------------------------------------------------
* Defaults.
* --------------------------------------------------------------------------------------------------------------------------
*/
# Check if defaults settings have already been set.
if(!isset($_SESSION['ip_logged'], $_SESSION['visit_counter'])){
# Used for checking if the clients IP has been logged YES or NO.
$_SESSION['ip_logged'] = false;
# Used for storing the amount of times a client has visited our website.
$_SESSION['visit_counter'] = 0;
}
/* --------------------------------------------------------------------------------------------------------------------------
* Create MySQL database connection.
* --------------------------------------------------------------------------------------------------------------------------
host, user, password, database
*/
# Create connection.
$mysqli = new mysqli('localhost', 'root', '', 'test');
# Check for errors and stop script execution if any occur.
if($mysqli->connect_errno){
die('Error! '.$mysqli->connect_error);
}
/* --------------------------------------------------------------------------------------------------------------------------
* Log IP address.
* --------------------------------------------------------------------------------------------------------------------------
*/
# Check if the IP has already been logged YES or NO.
if($_SESSION['ip_logged'] == false){
# Set SQL query for logging the clients IP address.
$sql = "INSERT INTO ip_log ( ip_address, entry_date ) VALUES ( '".$mysqli->real_escape_string($_SERVER['REMOTE_ADDR'])."', NOW() )";
# Execute query.
if(($result = $mysqli->query($sql)) !== false){
# SET $_SESSION['ip_logged'] to TRUE so that we don't update it on every page load.
$_SESSION['ip_logged'] = true;
}
else{
# Debugging.
trigger_error('Query: '.$mysqli->error);
}
}
/* --------------------------------------------------------------------------------------------------------------------------
* Fetch the amount of times the client has visited our website.
* --------------------------------------------------------------------------------------------------------------------------
*/
# Check if $_SESSION['visit_counter'] has already been updated.
if($_SESSION['visit_counter'] == 0){
# Set SQL query for fetching the amount of times the client has visited our website.
$sql = "SELECT COUNT(id) as visit_counter FROM ip_log WHERE ip_address = '".$mysqli->real_escape_string($_SERVER['REMOTE_ADDR'])."' ";
# Execute query.
if(($result = $mysqli->query($sql)) !== false){
# Fetch results and store it in array $ip_log for later use.
$ip_log = $result->fetch_assoc();
# Store the amount of times a client has visited our website in a session for later use.
$_SESSION['visit_counter'] = $ip_log['visit_counter'];
}
else{
# Debugging.
trigger_error('Query: '.$mysqli->error);
}
}
/* --------------------------------------------------------------------------------------------------------------------------
* Display IP Address.
* --------------------------------------------------------------------------------------------------------------------------
*/
echo 'Your IP address is "'.$_SERVER['REMOTE_ADDR'].'" and you have visited us '.$_SESSION['visit_counter'].' time(s) before.';
?>
/* --------------------------------------------------------------------------------------------------------------------------
* Debugging.
* --------------------------------------------------------------------------------------------------------------------------
0 = OFF
1 = ON
Warning! Its not advised to display errors on a live website. Hackers might find it a bit to usefull for our liking.
*/
ini_set('display_errors', 0);
error_reporting(E_ALL);
/* --------------------------------------------------------------------------------------------------------------------------
* Create a new session or resume the current one.
* --------------------------------------------------------------------------------------------------------------------------
IMPORTANT! Make sure you call session_start() before outputting anything to the browser.
*/
session_start();
/* --------------------------------------------------------------------------------------------------------------------------
* Defaults.
* --------------------------------------------------------------------------------------------------------------------------
*/
# Check if defaults settings have already been set.
if(!isset($_SESSION['ip_logged'], $_SESSION['visit_counter'])){
# Used for checking if the clients IP has been logged YES or NO.
$_SESSION['ip_logged'] = false;
# Used for storing the amount of times a client has visited our website.
$_SESSION['visit_counter'] = 0;
}
/* --------------------------------------------------------------------------------------------------------------------------
* Create MySQL database connection.
* --------------------------------------------------------------------------------------------------------------------------
host, user, password, database
*/
# Create connection.
$mysqli = new mysqli('localhost', 'root', '', 'test');
# Check for errors and stop script execution if any occur.
if($mysqli->connect_errno){
die('Error! '.$mysqli->connect_error);
}
/* --------------------------------------------------------------------------------------------------------------------------
* Log IP address.
* --------------------------------------------------------------------------------------------------------------------------
*/
# Check if the IP has already been logged YES or NO.
if($_SESSION['ip_logged'] == false){
# Set SQL query for logging the clients IP address.
$sql = "INSERT INTO ip_log ( ip_address, entry_date ) VALUES ( '".$mysqli->real_escape_string($_SERVER['REMOTE_ADDR'])."', NOW() )";
# Execute query.
if(($result = $mysqli->query($sql)) !== false){
# SET $_SESSION['ip_logged'] to TRUE so that we don't update it on every page load.
$_SESSION['ip_logged'] = true;
}
else{
# Debugging.
trigger_error('Query: '.$mysqli->error);
}
}
/* --------------------------------------------------------------------------------------------------------------------------
* Fetch the amount of times the client has visited our website.
* --------------------------------------------------------------------------------------------------------------------------
*/
# Check if $_SESSION['visit_counter'] has already been updated.
if($_SESSION['visit_counter'] == 0){
# Set SQL query for fetching the amount of times the client has visited our website.
$sql = "SELECT COUNT(id) as visit_counter FROM ip_log WHERE ip_address = '".$mysqli->real_escape_string($_SERVER['REMOTE_ADDR'])."' ";
# Execute query.
if(($result = $mysqli->query($sql)) !== false){
# Fetch results and store it in array $ip_log for later use.
$ip_log = $result->fetch_assoc();
# Store the amount of times a client has visited our website in a session for later use.
$_SESSION['visit_counter'] = $ip_log['visit_counter'];
}
else{
# Debugging.
trigger_error('Query: '.$mysqli->error);
}
}
/* --------------------------------------------------------------------------------------------------------------------------
* Display IP Address.
* --------------------------------------------------------------------------------------------------------------------------
*/
echo 'Your IP address is "'.$_SERVER['REMOTE_ADDR'].'" and you have visited us '.$_SESSION['visit_counter'].' time(s) before.';
?>
Welke delen moet ik in een apart bestand zetten en helemaal bovenin de website plaatsen als:
config.php
En welke sessions moet ik op de website plaatsen?
(Alleen session voor hoevaak hij op de website is gekomen hoeft)
Ik weet wel hoe dit allemaal werkt en wat elk script doet(Kan zo'n script niet schrijven wel aanpassen.) Maar ik weet even niet welke sessie's ik in mijn content moet zetten en welk deel in config.php en de code:
bovenaan de website moet zetten?
Het klinkt of ik helemaal niks wil doen maar zo zit het niet. Dit is een groot script maar ik kan er niet uitkomen welke delen ik nou waar moet plaatsen. Als jullie me verder niet willen helpen snap ik dat volkomen. Dan kijk ik zelf nog wel eens grondig. Maar ik zou het heel aardig vinden van jullie als jullie mij zouden willen helpen met dit laatste dingetje.
Groetjes,
Julian
Gewijzigd op 27/10/2012 00:23:34 door - Ariën -
Code (php)
1
<?php echo 'Your IP address is "'.$_SERVER['REMOTE_ADDR'].'" and you have visited us '.$_SESSION['visit_counter'].' time(s) before.'; ?>
Aangepast naar:
En de include op de website geplaatst. Ik denk dat ik er even niet uitkwam omdat ik de regel voor het eindresultaat niet zag. Super bedankt allemaal :D.
In je tweede code-blok is het niet zo spanndend om daar een '' te gebruiken. Waarom een lege string aan een variabele koppelen? Je plaatst toch ook geen lege melkpakken in de koelkast als iemand *niets* wilt drinken.