Miten sivuille voi laittaa tietylle henkilölle porttikiellon, eli miten se tehdään. Sammutetaanko jonkun henkilön IP-osoite siinä vai mitä?
Yleensähän nuo taitaa toimia IP-osoitteen perusteella. Kannattaa toki olla varovainen, ettei mene vahingossa ISP X:n koko proxy pannaan.
Jos sivuilla on rekisteröityminen, voi estää myös käyttäjätunnuksen perusteella.
Yksi simppeli koodi kertoo enemmän kuin 1000 sanaa :)
ja jos bannattavia on monta niin niistä voi tehdä taulukon:
Ja tuohon viimeiseen kätevä on myös funktio in_array.
ja vielä kätevämpää on ko. homma toteuttaa jos käytössä on tietokanta. Tauluun vaan heittää bannatut ip:t ja sitten itse php-sivulle kyselyn, jossa tarkastetaan kuuluuko käyttäjän ip ns. mustalle listalle, joka löytyy tietokannasta...Suuremmassa mittakaavassa on nimittäin todella epäkäytännöllistä lisätä kaikki bannatut ip:t suoraan koodiin.
Finkar kirjoitti:
ja vielä kätevämpää on ko. homma toteuttaa jos käytössä on tietokanta. Tauluun vaan heittää bannatut ip:t ja sitten itse php-sivulle kyselyn, jossa tarkastetaan kuuluuko käyttäjän ip ns. mustalle listalle, joka löytyy tietokannasta...Suuremmassa mittakaavassa on nimittäin todella epäkäytännöllistä lisätä kaikki bannatut ip:t suoraan koodiin.
Tämä mahdollistaisi myös paljon helpommin, ja paljon paremman käyttöliittymän rakentamisen operaatiolle.
No joo, tuo oma esimerkkini oli lähinnä rautalanka-malli silmälläpitäen sitä, että kyselijä taisi aloittaa PHP:n opiskelun juuri muutama päivä sitten...
miten saan tuon bannaamisen toimimaan silleen että se lukee bannatut ip:t teksti tiedostosta
Ensinnäkin, miettimällä, ja toiseksi, tutkimalla php:n manuaalista funktiota file...
<?php foreach(file('bannatut.txt') as $ip) { if (trim($ip) == $_SERVER['REMOTE_ADDR']) exit('You have been banned!'); } ?>
Ip:t siis bannatut.txt:ssä, yksi ip per rivi.
Aihe on jo aika vanha, joten et voi enää vastata siihen.