Forum » Programiranje » Vpis na stran samo za določene IP-je
Vpis na stran samo za določene IP-je
Digo991 ::
Imam težavo pri omejevanju vpisa z Ip-ji. v bazo podatkov (v pgAdmin III) sem vnesel IP-je katerim bom dovolil vpis na svoj forum. Tu pa se mi zatakne. Narejeno imam že celotno login, register formo, ki dela kot mora. Zdaj ko pa bi rad dodal omejitev z IP-ji pa nevem kako naj to vključim v mojo PHP kodo. Mi lahko kdo pomaga?
Hvala za odgovor.
Hvala za odgovor.
usoban ::
IP klienta lahko dobis iz
kako bos omejil? Pogledal bos v bazo ce je IP na listi dovoljenih. Kje bos omejil? To pa ne vem, odvisno a hoces omejit samo postanje, ali tudi branje.
$_SERVER['REMOTE_ADDR']
kako bos omejil? Pogledal bos v bazo ce je IP na listi dovoljenih. Kje bos omejil? To pa ne vem, odvisno a hoces omejit samo postanje, ali tudi branje.
Zgodovina sprememb…
- spremenil: usoban ()
Digo991 ::
Ip-je vseh klientov že imam vnešene v bazi, zato ne rabim pridobiti IP naslovov. Omejil bi rad VPIS na stran, kar pomeni, da če se IP tistega, ki se vpisuje oz. registrira ne ujema z IP-jem, ki je vnešen v bazi podatkov (pgAdmin III), se ne more vpisati oz. registrirati.
_Dormage_ ::
Sej ti je lepo odgovoril.
Tako dobiš host ip. Potem narediš query po IPjih v bazi in, če ga najdeš na v bazi ga spustiš skozi prijavo.
$hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']);
Tako dobiš host ip. Potem narediš query po IPjih v bazi in, če ga najdeš na v bazi ga spustiš skozi prijavo.
Digo991 ::
Nerabim pridobiti nobenega IP-ja, ker že vse imam. V tem pa je problem, da mi nikakor ne uspe narediti tega.
Non-stop mi javlja napake za headerje oz. sploh ne pride do baze.
Koda izgleda takole:
$ip = 'SELECT ip FROM fin.forum_ip';
$result = pg_query($ip);
$zapis = pg_fetch_assoc($result);
if (!$zapis) {
header('Location: protectedip.php');
}
else {
header('Location: index.php');
}
Non-stop mi javlja napake za headerje oz. sploh ne pride do baze.
Koda izgleda takole:
$ip = 'SELECT ip FROM fin.forum_ip';
$result = pg_query($ip);
$zapis = pg_fetch_assoc($result);
if (!$zapis) {
header('Location: protectedip.php');
}
else {
header('Location: index.php');
}
Zgodovina sprememb…
- spremenilo: Digo991 ()
IceBoX ::
Ja kako boš vedel ali se uporabnik x lahko prijavi ali ne? Najprej boš pridobil njegov IP in nato pogledal če ta IP obstaja v bazi. Če obstaja, dovoliš vstop, drugače ne.
Huh...
Digo991 ::
Ha, sploh nisem pomislil na to :) Se pravi bi morala koda izgledati nekako takole: ?
$user_ip = ($_SERVER['REMOTE_ADDR']);
$ip = 'SELECT ip FROM fin.forum_ip WHERE ip = \''.pg_escape_string($user_ip).'\'';
$result = pg_query($ip);
$zapis = pg_fetch_assoc($result);
if (!$zapis) {
header('Location: protectedip.php');
}
else {
header('Location: index.php');
}
Ali lahko ta file (userip.php) preprosto includam v login.php in register.php?
$user_ip = ($_SERVER['REMOTE_ADDR']);
$ip = 'SELECT ip FROM fin.forum_ip WHERE ip = \''.pg_escape_string($user_ip).'\'';
$result = pg_query($ip);
$zapis = pg_fetch_assoc($result);
if (!$zapis) {
header('Location: protectedip.php');
}
else {
header('Location: index.php');
}
Ali lahko ta file (userip.php) preprosto includam v login.php in register.php?
_Dormage_ ::
Ja ideja je prava, če pa zgornja stvar dela ali ne boš pa sam vedu bolj.
Pa preveri, da imaš v bazi IPje v istem formatu kot ga vrne
Pa preveri, da imaš v bazi IPje v istem formatu kot ga vrne
$_SERVER['REMOTE_ADDR']
Digo991 ::
Zgornja koda mi ne deluje :/ Nikakor ne najdem rešitve...
IP-ji v bazi so v formatu cidr, prikazan je kot 111.111.111.111/32.
IP-ji v bazi so v formatu cidr, prikazan je kot 111.111.111.111/32.
Digo991 ::
Oz. koda deluje, vendar me stalno redirecta na protectedip.php, čeprav imam v bazi vnešen svoj IP.
klemen93 ::
echo $_SERVER['REMOTE_ADDR'];
Potem pa uredi ta ip tako, da ga boš lahko primerjal s tistimi v bazi.
Digo991 ::
Zakaj mi vrne čisto drug IP, kot mi ga pokaže na myipaddress.com?
Kako to misliš, da ga uredim? Ali je problem tudi v tem, da imam v bazi tip IP-jev "cidr", ki na koncu prikaže še /32?
Kako to misliš, da ga uredim? Ali je problem tudi v tem, da imam v bazi tip IP-jev "cidr", ki na koncu prikaže še /32?
vorantz ::
očitno ne veš kaj un 32 dela na koncu
ta ti pove, da iščeš range ip-jev in ne samo enega
tko, da tvoj sql query sploh ne more delat
ta ti pove, da iščeš range ip-jev in ne samo enega
tko, da tvoj sql query sploh ne more delat
vorantz ::
aja sm mal pozabu...32 na koncu v bistvu pomeni samo 1 ip
pol al spremeni un ip ki ga dobiš v cidr zapis in pol naredi sql query al pa mej v bazi navadne ip-je
v tvojem primeru se mi zdi bol primerno da maš v bazi navadne ipje
pol al spremeni un ip ki ga dobiš v cidr zapis in pol naredi sql query al pa mej v bazi navadne ip-je
v tvojem primeru se mi zdi bol primerno da maš v bazi navadne ipje
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | JavaScript v PHP-juOddelek: Izdelava spletišč | 1035 (820) | drola |
» | [php] Knjiga gostovOddelek: Izdelava spletišč | 3158 (2361) | darix |
» | [PHP] Kako blokirat IPOddelek: Programiranje | 2112 (1697) | CaqKa |
» | PHP - kako dobiti hostOddelek: Programiranje | 1232 (1112) | pac3k |
» | anketa z vec moznostmiOddelek: Izdelava spletišč | 1626 (1505) | Packač |