Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP:llä rivinvaihtoja ym.

Sivun loppuun

Miksu [30.10.2002 16:18:55]

#

Niin, että kun kävijälaskuria vaan teen ja sitten tuota niinnnin, kun pitäisi saada tollanen HTML:n <p> -tagia vastaava homma sitte. Ja sitte kanssa lihavointi, eli sitä <b>:tä vastaava. Mites sellanen sitte mahtais mennä? Mitä? Hä? Nii että jos sitte, vai mikä homma niissä on?

Miksu [30.10.2002 16:19:26]

#

...Ja sitte kanssa pelkkä rivinvaihto, eli
:ää vastaava

mikko [30.10.2002 17:15:58]

#

Yksinkertaisesti laitat ne sinne.

vipemype [30.10.2002 17:20:13]

#

Hmm? Mikäli ymmärsin oikein niin nuo tulee suoraan vaan

echo '<b>Foo</b>'; // tulostaa "Foo" sanan paksunnettuna
echo '<p>Foo</p>'; // tulostaa sanan "Foo" <p> tagin kanssa

Eli php:hän tulkataan html:ksi, joten voit käyttää suoraan html tageja em. tapaan.

Miksu [30.10.2002 18:01:48]

#

Heh, jaa, yritin tota, mut se valitti jotain, et vika onki sit jossain muualla.

Queq [30.10.2002 20:52:26]

#

Jos vaikka lähettäisit koodisi tänne, niin mahdolliset virheet voitaisiin korjata.

Miksu [31.10.2002 16:12:45]

#

Joo, no tein sen niin että ennen <?php -tagia <b> -tagi niin sitte se ei valita ettäs niin. Mutta että sellanen, että jos ip osote on vaikka 01.234.56.789, ni sitte tehään jotain. Sellanen, eli ehtolause, mut miten toi ip:n selvittäminen käy?

Veltto [31.10.2002 16:39:05]

#

ip:n sai muistaakseni selville näin
<php print("$REMOTE_ADDR"); ?>

trinit [31.10.2002 17:12:22]

#

lainaus:

ip:n sai muistaakseni selville näin
<php print("$REMOTE_ADDR"); ?>

Saahan sen noinkin, mutta se ei välttämättä ole oikea IP. Mureakuhan koodikirjastosta löytyy tällainen koodi, tekijänä raspi ( http://www.mureakuha.com/koodikirjasto/PHP/357 ):

<?php
function getip () {
  if ($_SERVER) {
    if ($_SERVER["HTTP_X_FORWARDED_FOR"]) {$rip = $_SERVER["HTTP_X_FORWARDED_FOR"];}
    elseif ($_SERVER["HTTP_CLIENT_IP"]) {$rip = $_SERVER["HTTP_CLIENT_IP"];}
    else {$rip = $_SERVER["REMOTE_ADDR"];}
  } else {
    if (getenv("HTTP_X_FORWARDED_FOR")) {$rip = getenv("HTTP_X_FORWARDED_FOR");}
    elseif (getenv("HTTP_CLIENT_IP")) {$rip = getenv("HTTP_CLIENT_IP");}
    else {$rip = getenv("REMOTE_ADDR");}
  }
  return $rip;
}
?>

Tätä olen itse käyttänyt ja toiminut ihan hyvin.

Miksu [31.10.2002 20:43:45]

#

Niin, no tuo jälkimmäinen on tietty vähän pitkä, mutta tietty jos se on sitten väärä se REMOTE_ADDR homma ni se on sit tietty vähän. Miten se voi muuten olla väärä? Kenen IP:n se siihen oikeen keksii jos ei sitä? Ei sillä etten uskoisi mutta :) Back to asiaan, et mites se sit menis et jos ip on just joku tietty, ni sit, tai oikestaan et jos se ei oo ni sit tehtäis jotain. No äh, tarkotuksena on tehä kävijälaskuri, mutta kun en haluis niitä omia käymiäni kertoja siihen, niin että sillon se ei lisääntyis(adsl, ip on aina vakio). Tai jos keksitte paremman tavan(cookiet?), niin mikäs siinä...

Antti Laaksonen [31.10.2002 22:28:40]

#

Se "oikea" IP-osoite voi vähän vaihdella sen mukaan, monenko mutkan kautta Internetiin on yhteydessä. Tosin yleensäkään tuolla IP-numerolla ei kovin paljoa tee: bannaamiseen (tai muuhun rajoittamiseen) se on melko tehoton, kun monilla numero vaihtuu joka yhteydenottokerralla ja häiriköintitapauksissa häiriköistä ei kuitenkaan saa mitään tietoa irti - palveluntarjoajat luovuttavat tietoa vain poliisin pyynnöstä.

Mutta tuohon kävijälaskuriisi se voisi sopia aika hyvin. Kun pistät IP:t tiedostoon ja rajaksi vaikka 10 minuuttia, tuloksen pitäisi olla melko luotettava. Cookie on myös ihan hyvä keino, ehkä vähän epäluotettavampi. Ja jos käytettävissä ei ole palvelimen omia lokitiedostoja, ei kävijälaskurista koskaan niin tarkkaa saakaan.

Miksu [04.11.2002 17:17:44]

#

Aijaa... Mut... Niin mites se sit menis niinkun? Et kattokaas näin:

[jos] [ip-osote] = [joku] {
[ni sit kirjotetaan tiedostoon kyl mä tän osaan]
}

Juu, et tollanen...

Antti Laaksonen [04.11.2002 18:21:05]

#

Se tehdään suunnilleen näin:

if ($REMOTE_ADDR=="127.0.0.1")
  {
  $d=fopen("tiedosto.txt","w"); //"w" tyhjentää tiedoston
                                //"a" lisää rivejä sen loppuun
  fwrite($d,"kyl mä tän osaan"); //tai mitä ikinä haluatkin ;)
  fclose($d);
  }

trinit [04.11.2002 18:24:08]

#

lainaus:

[jos] [ip-osote] = [joku] {
[ni sit kirjotetaan tiedostoon kyl mä tän osaan]
}

Kannattaisikohan lukea PHP Manualia If-lauseen osalta?

Mutta tässä on sitten kuitenkin valmista koodia joka käyttää ed. viestissäni olevaa getip-funktiota:

If ( getip() ) == "127.0.0.1" { KirjoitaTiedostoon; }

Eli ei olisi ollut kovin vaikea itsekin kehitellä...

thefox [05.11.2002 11:04:10]

#

Hmm jopas pisti trinit sulut oudosti.. ehkä näin:

if(getip()=="127.0.0.1") { kirjoitatiedostoon; }

trinit [05.11.2002 18:39:27]

#

lainaus:

Hmm jopas pisti trinit sulut oudosti..

Oho, niinpäs olikin oudosti - sitä se teettää kun on viime perjantaista lähtien joutunut heräämään 4.20 ja kotiin tullut siinä 18.00 :)

Miksu [05.11.2002 21:41:23]

#

Joo toi anan homma näyttäs toimivan sillei et nyt kävijät lisääntyy jos ip-osote on toi 80.186.24.115, mut entä ku haluaisin et sit ku se ei oo se, ni sit tehään toi. Ei taida php:ssä olla tota Not -avainsanaa niinku VB:ssä :) Olisko joku <>, tai joku, who knows...

thefox [05.11.2002 21:47:41]

#

Hmm.. no operaattori jota haet on lienee != eli erisuurikuin.

Antti Laaksonen [05.11.2002 22:50:01]

#

PHP on siitä hauska kieli, että se sisältää monille funktioille ja kielen osillekin monia vaihtoehtoja, esimerkiksi juuri tuo erisuuruus ilmaistaan !=:lla mutta mahdollista on käyttää myös Basicista tuttua <>:aa. Näin kaikki ohjelmoijat tuntevat olonsa kotoisaksi ;)

Miksu [06.11.2002 16:26:32]

#

Nii juu, eli joo, eli toi <> laitettas niinku ton = -merkin tilalle, juu, juu, no sitte... Mitään merkitystähän ei ole, että käyttääkö <> vai != merkintää?

Blaze [06.11.2002 17:22:57]

#

Ei oo merkitystä, PHP:ssä <> ja != tarkottaa ihan samaa.

Miksu [06.11.2002 21:08:40]

#

Blazekin sen tietää :)


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta