Forum » Server-Side scripting » zoeken naar ip adres
devow.nl
Berichten: 1592
avatar
Offline Stuur privebericht
beste leden,

ik ben bezig met een poll script te maken, nu worden alle ip's opgeslagen in de database die al gestemd hebben. Nu moet het alleen nog gecontroleerd worden of de ip of user id in die tabel voorkomt.

ze worden als volgd opgeslagen.

ik ben speler 5 en ga stemmen, mijn stem is uitgebracht:

word alsvolgt opgeslagen in de database: 5,111.111.1.11

nu moet hij gaan zoeken of 5, of mijn ip voorkomt. Hoe doe ik dat?

ik heb al met strstr geprobeerd, en preg match maar het wou me niet baten.
16-06-2010 21:56
Dit topic is 200 keer bekeken door 47 verschillende leden
Reacties op: "zoeken naar ip adres"
1
Scooby Snack
Berichten: 119
avatar
Offline Stuur privébericht
16-06-2010 23:14
Berichten: 2123
avatar
Offline Stuur privébericht
Je zet nu feitelijk meer data in één kolom. Dat moet je nooit doen, want dan krijg je van dit soort ongein en ben je je database wel heel erg aan het denormaliseren.

Mocht je hiermee willen bereiken dat de data minder opslagruimte kost heb ik een beter idee voor je:

Een IP past precies in een integer: ip2long

Dus gewoonweg twee velden aan maken, dat is veel effici?nter.
17-06-2010 00:01
Rapifia Europe
Berichten: 3719
avatar
Offline Stuur privébericht
Doe het volgende:
Maak een tabel aan met deze inhoud en noem hem poll:
"id INT (12) AUTO INCREMENT, PRIMARY KEY".
"naamip VARCHAR(100)"
(maak dit aan met de wizard van PMA)

Nu maak je dus bij elke poll een insert aan in die tabel.
Dan werkt het volgende:
Code | Selecteer Alles
minimaliseren
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//Verbinden met database
$dbhost 'localhost';
$dbuser 'USER';
$dbpass 'PASSWORD';
$dbdb 'DATABASE';
$verbind mysql_connect($dbhost$dbuser$dbpass);
mysql_select_db($dbdb$verbind);


echo 
'<h1>Poll resultaten</h1>';
echo 
'<table><tr><td><b>Speler ID</b></td><td><b>IP</b></td></tr>';
//Alle info uit poll db halen
$res mysql_query("SELECT id, naamip FROM poll");
//Voor elke rij deze while uitvoeren
while($sel mysql_fetch_array($res)){
//De info scheiden met de komma
$stukje explode(","$sel['naamip']);
//De info weergeven
echo '<tr><td>'.$stukje[0].'</td><td>'.$stukje[1].'</td></tr>';
}
echo 
'</table>';


Als je iets anders wil, PM maar.
Dit werkt als het goed is

Succes!

P.S. Je wou zoeken toch?
Dan doe je het zo:
Code | Selecteer Alles
minimaliseren
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//Verbinden met database
$dbhost 'localhost';
$dbuser 'USER';
$dbpass 'PASSWORD';
$dbdb 'DATABASE';
$verbind mysql_connect($dbhost$dbuser$dbpass);
mysql_select_db($dbdb$verbind);


echo 
'<h1>Poll</h1>';
//Alle info uit poll db halen
$res mysql_query("SELECT id, naamip FROM poll WHERE naamip = '".$data['name'].",".$_SERVER['REMOTE_ADDR']."'");
//Komt ie voor?
if(mysql_num_rows($res) == 1){
echo 
'Je hebt al gestemd!';
} else{
echo 
'Je mag stemmen!';
}
17-06-2010 08:28
Luc
devow.nl
Berichten: 1592
avatar
Offline Stuur privébericht
inmiddels is het al gelukt via een andere weg, wat misschien niet zo handig was. Maar wel efficiënter, gewoon een extra tabel aangemaakt waar de data wordt opgeslagen.
17-06-2010 09:41
Reageer op: "zoeken naar ip adres"
1
Je kan niet reageren omdat je niet bent ingelogd. Inloggen of Aanmelden