IP laten zien + opslaan

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Julian x

Julian x

26/10/2012 16:24:38
Quote Anchor link
Hallo iedereen,

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
 
PHP hulp

PHP hulp

18/12/2024 18:00:50
 
- Ariën  -
Beheerder

- Ariën -

26/10/2012 16:30:11
Quote Anchor link
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.
 
Julian x

Julian x

26/10/2012 16:39:03
Quote Anchor link
- 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.


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
 
- Ariën  -
Beheerder

- Ariën -

26/10/2012 17:55:53
Quote Anchor link
Je geeft zelf al aan dat je slecht bent, maar wat houd je tegen om het dan te leren? ;-)

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 -
 
Julian x

Julian x

26/10/2012 18:22:01
Quote Anchor link
Ik heb op het moment deze hele en simple kleine code:

<center>
<b>Uw ip:</b>
<br>
<i>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? echo $_SERVER['REMOTE_ADDR'] ?>
</i>
<br>
<br>
<b>Uw laatste bezoek:</b>
<br>
<i>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php print (date ("d-m-Y")); ?>
</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.
 
- Mark -

- Mark -

26/10/2012 19:51:40
Quote Anchor link
Eenmalig en garantie tot aan de deur. De teller gaat maar 1 keer omhoog per sessie. Dus als iemand zijn browser afsluit en opnieuw opend dan gaat de teller weer met 1 omhoog.

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)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php

--
--
Table structure for table `ip_log`
--

CREATE TABLE IF NOT EXISTS `ip_log` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `ip_address` varchar(39) NOT NULL,
  `entry_date` datetime NOT NULL,
  PRIMARY KEY (`id`)
)
ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;

?>


Het script, gewoon opslaan als een nieuwe pagina om te proberen.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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.';

?>
 
Julian x

Julian x

26/10/2012 20:46:22
Quote Anchor link
Super bedankt ;). Alleen de aller laatste vraag:

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:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php include("config.php"); ?>


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
 
- Ariën  -
Beheerder

- Ariën -

27/10/2012 00:23:19
Quote Anchor link
Op de eerste twee regels na zie ik niet echt veel boeiende configuratie voor in config.php. Dus als ik jouw was zou ik het bovenaan zetten, voordat je HTML van start gaat.
Gewijzigd op 27/10/2012 00:23:34 door - Ariën -
 
Julian x

Julian x

27/10/2012 10:16:36
Quote Anchor link
Ah, het is eindelijk gelukt. Ik heb alles gewoon in een "log.php" bestand geplaatst de connectie gegevens met de database aangepast & de volgende code aangepast:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo 'Your IP address is "'.$_SERVER['REMOTE_ADDR'].'" and you have visited us '.$_SESSION['visit_counter'].' time(s) before.'; ?>


Aangepast naar:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo ''.$_SESSION['visit_counter'].''; ?>


En de include
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php include("log.php"); ?>
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.
 
- Ariën  -
Beheerder

- Ariën -

29/10/2012 00:45:19
Quote Anchor link
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.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.