IP Adres opslaan in database.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

 - Diov  -

- Diov -

06/11/2011 11:49:31
Quote Anchor link
Beste,
voor mijn berichtenbalk zou ik graag iets extra erbij willen.
Dit is nu mijn script:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
include('config.php');
include('functions.php');
if($_SERVER['REQUEST_METHOD']=="POST") {
header('location:http://www.smik.tk/gepost.php');
$sql = "INSERT INTO balk SET id = '', naam ='".$_POST['naam']."', bericht='".$_POST['bericht']."'";
mysql_query($sql);
 
$post = smilie($_POST['bericht']);
echo "U heeft het volgende bericht gepost: <br>".$post.".";
}

else {
?>


Ik zou graag als iemand een bericht post, ook dat z'n ip adres wordt opgeslagen in mijn database.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
echo "$REMOTE_ADDR";
?>


Maar hoe sla ik het op? En Hoe moet ik mijn tabel in mijn database maken?
Ik ondersteun php 5.2 en en mysql 5.1

Alvast bedankt!
 
PHP hulp

PHP hulp

22/12/2024 11:21:46
 
- Ariën  -
Beheerder

- Ariën -

06/11/2011 12:40:51
Quote Anchor link
- Die header()-location staat op een verkeerde plek. je wilt eerst kijken of de querie uitgevoerd is, waarna je de header() pas uitvoert. Op deze maniet zal je query nu nooit uitgevoerd worden.

- SQL injectie in mogelijk. Gebruik mysql_real_escape_string() over je POST-variabele heen.

- Ik mis foutafhandeling op je query. Zodra je query is gelukt plaats je de header()

- Een IP kan je opvragen met $_SERVER['REMOTE_ADDR'], en deze kan je in de INSERT-query verwerken. $REMOTE_ADDR is al vele jaren verouderd en zal tegenwoordig geen IP meer geven en dus leeg zijn.
 
 - Diov  -

- Diov -

06/11/2011 12:53:31
Quote Anchor link
Dus eigenlijk voor het ip adres, moet ik dit er nog bijvoegen:
ip ='".$_POST[$_SERVER['REMOTE_ADDR']]."'
 
Wesley PHP

Wesley PHP

06/11/2011 12:58:18
Quote Anchor link
Snap je waarvoor post word gebruikt?

ip = '" . $_SERVER['REMOTE_ADDR'] . "'
 
Jordi Kroon

Jordi Kroon

06/11/2011 13:10:34
Quote Anchor link
Ik denk het niet als ik jou was zal ik eens de php beginners handleiding doorlezen.
 
Jacco Brandt

Jacco Brandt

06/11/2011 13:18:25
Quote Anchor link
En laat die quotes ook gelijk maar weg.
 
- Ariën  -
Beheerder

- Ariën -

06/11/2011 13:19:31
Quote Anchor link
Dem Ian op 06/11/2011 12:53:31:
Dus eigenlijk voor het ip adres, moet ik dit er nog bijvoegen:
ip ='".$_POST[$_SERVER['REMOTE_ADDR']]."'

$_POST[$_SERVER['REMOTE_ADDR']]

Dit is onzin, lees mijn reactie maar eens goed.
 
 - Diov  -

- Diov -

06/11/2011 13:29:17
Quote Anchor link
Dus,
ik moet gewoon dit zetten: $_SERVER['REMOTE_ADDR']

En daarna moet ik dit oproepen via:
ip ='".$_POST[REMOTE_ADDR]."'

Ofzo?
 
- Ariën  -
Beheerder

- Ariën -

06/11/2011 13:34:01
Quote Anchor link
- Aar - op 06/11/2011 12:40:51:
Een IP kan je opvragen met $_SERVER['REMOTE_ADDR']
 
 - Diov  -

- Diov -

06/11/2011 13:35:21
Quote Anchor link
Weet ik ook al indertussen.
Maar waar moet ik het plaatsen?
 
Vincent Huisman

Vincent Huisman

06/11/2011 13:45:11
Quote Anchor link
Jordi kroon op 06/11/2011 13:10:34:
als ik jou was zal ik eens de php beginners handleiding doorlezen.
 

06/11/2011 15:45:39
Quote Anchor link
Dit zou zoiets kunnen worden. Ik weet natuurlijk ook niet hoe config.php en functions.php in elkaar zitten...
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
<?php
    include("config.php");        // Configuratie bestand
    include("functions.php");     // Standaard functies
    
    // Als er op post gedrukt wordt:

    if($_SERVER['REQUEST_METHOD'] == 'POST') {
    
        // Stuur de gebruiker door naar gepost.php (weet ik niet wrm, maarja):
        // Ik denk dat dit hier ook niet hoor, eerst doorsturen en dan pas de query uitvoeren???
        // Hoe doe je dat en waarom toon je dan nog dat het bericht gepost is?

        header("Location: http://www.smik.tk/gepost.php");         // Dus ik denk dat dit weg moet :p
        
        // De database connectie (je kan ook natuurlijk config.php of functions.php gebruiken:

        $Conn = mysqli_connect(MYSQLI_SERVER, MYSQLI_USERNAME, MYSQLI_PASSWORD, MYSQLI_DATABASENAME) or trigger_error('Het was onmogelijk om database connectie te maken.');
        
        // Alles in de database stoppen, maak een extra veld in de database genaamd ip:
        $SQL    = mysqli_query($Conn, "INSERT INTO balk SET id = '', naam = '".mysqli_real_escape_string($Conn, $_POST['naam'])."', bericht = '".mysqli_real_escape_string($Conn, $_POST['bericht'])."', ip = '".mysqli_real_escape_string($Conn, $_SERVER['REMOTE_ADDR'])."'") or trigger_error('Er is iets fout gelopen met het maken van de datbase connectie (input).');
        // Sluit de connectie:
        mysqli_close($Conn);
        
        // Kijken of de database is geupdatet:
        if($SQL) {
            echo 'U hebt het volgende bericht gepost: <br>'.smilie($_POST['bericht']).'.'; }
        else {
            echo 'Probeer het later nog eens opnieuw, want er is iets fout gegaan.'; } }
            
    // Ik weet niet waarom je else zou doen... Maar dat kan je er zelf wel nog bijvoegen natuurlijk.
?>
    
Gewijzigd op 06/11/2011 15:49:48 door
 
- Ariën  -
Beheerder

- Ariën -

06/11/2011 15:58:10
Quote Anchor link
Die header zou dan beter kunnen verdwijnen, omdat je op lijn 23 al een bevestiging toont. Desgewenst zou je op die lijn die header kunnen plaatsen.
 
 - Diov  -

- Diov -

06/11/2011 16:01:01
Quote Anchor link
Erg bedankt voor de hulp.
Ik ga straks aan de slag met dat script om dingen uit te proberen!
Bedankt :)
 

06/11/2011 16:03:53
Quote Anchor link
Lees wel de post van - Aar - eens goed door :p. Want een header versturen voordat de tabel geüpdatet is, is niet goed, want dan wordt de tabel in z'n geheel niet geüpdatet.

Dus er zijn twee mogelijk heden.
1. Laat de header weg
2. Zet op regel 23 de header, dan wordt de gebruiker doorgestuurd naar de gepost.php pagina als de database is geüpdatet (zie post - Aar -)
Gewijzigd op 06/11/2011 16:04:32 door
 
 - Diov  -

- Diov -

08/11/2011 17:25:21
Quote Anchor link
Beste,
ik heb zonet het script uitgeporbeerd, hij verzend een bericht en de naam, alleen krijg ik geen IP adres in mijn database.

Zou er een fout kunnen zijn in mijn database tabel? En hou zou die er moeten uitzien?
 
- SanThe -

- SanThe -

08/11/2011 17:35:12
Quote Anchor link
Hoe ziet de database er uit?
 
 - Diov  -

- Diov -

08/11/2011 17:51:47
Quote Anchor link
een gewone, varchar 14
 
- Ariën  -
Beheerder

- Ariën -

08/11/2011 17:56:49
Quote Anchor link
Ik zou er maar varchar 15 van maken. Niet dat het je probleem oplost, maar er zitten drie punten in een IP-adres, en elke octet kan uit 3 tekens bestaan.
 
Eddy B

Eddy B

08/11/2011 18:10:53
Quote Anchor link
Volgens mij kan je net zo makkelijk varchar 39 er van maken i.v.m. IPv6.
 
 - Diov  -

- Diov -

08/11/2011 18:21:40
Quote Anchor link
Ik zal het eens problemen en kijken of het probleem opgelost is.
 

Pagina: 1 2 volgende »



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.