Hyvä tietää. Miten tuo parin sivun mittainen takaisinohjaus kannattaisi toteuttaa jos tulee ongelma Referrerin kanssa? Säilyttämällä keksissä n viimeisintä avattua sivua (missä 5<n<15) ja poimimalla sieltä parin sivun takainen sivu kun tulee tarve liikkua takaisin?Pettis wrote:Referrer ei sitten ole 100% varmaa tietoa. Se voi joko puuttua tai olla väärennetty, koska se on vain selaimen antamaa tietoa. Yleisin ongelma on se, että se puuttuu, koska tietoturvaohjelmat tykkää poistaa kyseisen tiedon selaimen lähettämistä headereista.temu92 wrote:Code: Select all
$_SERVER['HTTP_REFERER'];
PHP-ongelmat
Re: PHP-ongelmat
Asus P8P67 LE/Intel Core i5 2500K/ GTX560/ 8GT RAM/750GT HDDt + 120GT SSD + 13" Macbook Pro
Blogi - Peräpohjola - MERPG
Blogi - Peräpohjola - MERPG
Re: PHP-ongelmat
Tuon voi tietysti toteuttaa myös JavaScriptillä:Feuer wrote:Hyvä tietää. Miten tuo parin sivun mittainen takaisinohjaus kannattaisi toteuttaa jos tulee ongelma Referrerin kanssa? Säilyttämällä keksissä n viimeisintä avattua sivua (missä 5<n<15) ja poimimalla sieltä parin sivun takainen sivu kun tulee tarve liikkua takaisin?Pettis wrote:Referrer ei sitten ole 100% varmaa tietoa. Se voi joko puuttua tai olla väärennetty, koska se on vain selaimen antamaa tietoa. Yleisin ongelma on se, että se puuttuu, koska tietoturvaohjelmat tykkää poistaa kyseisen tiedon selaimen lähettämistä headereista.temu92 wrote:Code: Select all
$_SERVER['HTTP_REFERER'];
<script type="text/javascript">
Code: Select all
history.go(x)
missä x on negatiivinen luku, joka kertoo, montako sivua mennään taaksepäin. Positiivinen luku tarkoittaa taas eteen päin navigointia (vaatii back-napin painalluksia toimiakseen, luonnollisesti)
Re: PHP-ongelmat
Kaikilla käyttäjillä ei ole JavaScriptiä käytössä joten jos sivulla ei muutoin käytetä sitä, ei ole mitään järkeä tehdä yhtä ainutta asiaa JS:n kanssa (jos ko. asia on vielä oleellinen sivun toimivuuden kannalta).
Re: PHP-ongelmat
Jea, itelläni ei ainakaan oo JavaScript käytössä oletuksena.temu92 wrote:Kaikilla käyttäjillä ei ole JavaScriptiä käytössä joten jos sivulla ei muutoin käytetä sitä, ei ole mitään järkeä tehdä yhtä ainutta asiaa JS:n kanssa (jos ko. asia on vielä oleellinen sivun toimivuuden kannalta).
Re: PHP-ongelmat
Miten toteuttaisin chat-sivun php:llä? Niin että chattiin kirjautunut henkilö ei näe aikaisempia viestejä, ja x millisekuntia vanhat viestit poistetaan kaikkien keskusteluikkunoista. Kaikki viestit menevät myös lokitiedostoon.
Re: PHP-ongelmat
Osaat kai käyttää ajaxia? Sillä voi tehdä javascriptin avulla kyselyitä palvelimelle. Enpä usko että tästä on mitään apua, mutta tässä on vähän aikaa sitten tekemäni chatin koodi http://laakeri.kapsi.fi/a/chatti.zip.DJ-Filbe wrote:Miten toteuttaisin chat-sivun php:llä? Niin että chattiin kirjautunut henkilö ei näe aikaisempia viestejä, ja x millisekuntia vanhat viestit poistetaan kaikkien keskusteluikkunoista. Kaikki viestit menevät myös lokitiedostoon.
Re: PHP-ongelmat
Kannattaa muistaa noita omia chatteja tehdessä, että se on palvelimelle aika raskasta, jos uusia viestejä haetaan palvelimelta liian tiuhaan. Ja kyselyiden määrähän kasvaa mukavasti käyttäjämäärän mukaan.
Jos viestien tallentamiseen käyttää mysliä, kannattaa optimoida ja cachettaa queryt hyvin.
Yksi tapa, jolla palvelimen turhaa loadia voi keventää on tehdä chattiin toiminto, joka tiputtaa viestikyselyiden tiheyttä huomattavasti, mikäli chattiin ei ole tullut vähään aikaan viestejä.
Jos viestien tallentamiseen käyttää mysliä, kannattaa optimoida ja cachettaa queryt hyvin.
Yksi tapa, jolla palvelimen turhaa loadia voi keventää on tehdä chattiin toiminto, joka tiputtaa viestikyselyiden tiheyttä huomattavasti, mikäli chattiin ei ole tullut vähään aikaan viestejä.
Voittoja viikkokisoissa: 3
http://fugufish.dy.fi/ | vanhat cb-pelini: http://porzi.arkku.net/old_games/
http://fugufish.dy.fi/ | vanhat cb-pelini: http://porzi.arkku.net/old_games/
Re: PHP-ongelmat
Enemmän tuossa chatin kuormituksessa merkitsee se, että kuinka nopea palvelin on ja kuinka raskaiden sovellusten päällä chatti pyörii. Jos jokainen chatin kysely palvelimelle menee esim. Apachen päällä pyörivälle PHP:lle, on tämä raskasta. Jos sama määrä kyselyitä menee esimerkiksi node.js:lle tai vaikkapa nginxin tai lighttpd:n päällä pyörivälle PHP:lle niin ollaan jo paljon kevyemmillä vesillä. Vielä jos mukana on PHP opcode-cache, niin jokaisen kyselyn tuoma kuorma pienenee entisestään aika suuresti.
Apache on rakas. Sitä on turha käyttää pieniin ja nopeutta vaativiin kyselyihin. Apachen etuja on kuitenkin laaja käyttäjäkunta, vakaus ja erilaisten moduulien helppo saatavuus ja suuri määrä.
Toinen vaihtoehto on käyttää kunnon ohjelmointikieliä PHP:n sijaan, jolloin chatin palvelimen pään ohjelmaa voi ajaa siten, että chattikoodi on koko ajan käynnissä ja odottaa vain palvelimen HTTP-pyyntöä, johon vastaus tulee nopeammin, kun koodia ei tarvitse käynnistää uudelleen.
Apache on rakas. Sitä on turha käyttää pieniin ja nopeutta vaativiin kyselyihin. Apachen etuja on kuitenkin laaja käyttäjäkunta, vakaus ja erilaisten moduulien helppo saatavuus ja suuri määrä.
Toinen vaihtoehto on käyttää kunnon ohjelmointikieliä PHP:n sijaan, jolloin chatin palvelimen pään ohjelmaa voi ajaa siten, että chattikoodi on koko ajan käynnissä ja odottaa vain palvelimen HTTP-pyyntöä, johon vastaus tulee nopeammin, kun koodia ei tarvitse käynnistää uudelleen.
Re: PHP-ongelmat
Arkkunetissä. Ei omaa palvelinta ;(
Re: PHP-ongelmat
Code: Select all
if ($handle = opendir('.')) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
if ((strpos($file,"n") && $_GET['n'] == "1") || (!strpos($file,"n") && $_GET['n'] == "0")) {
echo $file.chr(10);
}
}
}
closedir($handle);
}
- Jos GET-parametri n=1 niin listataan tiedostot, joiden nimen ensimmäinen kirjain on 'n'.
- Jos GET-parametri n=0 niin listataan tiedostot, joiden nimen ensimmäinen kirjain ei ole 'n'.
Mikä failaa?
Re: PHP-ongelmat
Strpos() palauttaa haettavan merkkijonon paikan tai false, jos sitä ei löydy. Ensimmäisen merkin paikka on 0, toisen 1 jne. Joten jos nimi alkaa n-kirjaimella, strpos() palauttaa 0, mikä evaluoituu falseksi, ellet vertaa arvoa näin:DJ-Filbe wrote: Tämän pitäisi toimia näin:
- Jos GET-parametri n=1 niin listataan tiedostot, joiden nimen ensimmäinen kirjain on 'n'.
- Jos GET-parametri n=0 niin listataan tiedostot, joiden nimen ensimmäinen kirjain ei ole 'n'.
Mikä failaa?
- 0 === strpos(*parametrit*) //n-kirjain on ensimmäisenä
- 0 !== strpos(*parametrit*) //n-kirjain ei ole ensimmäisenä
Re: PHP-ongelmat
Kiitos! Tuo auttoiJare wrote:Strpos() palauttaa haettavan merkkijonon paikan tai false, jos sitä ei löydy. Ensimmäisen merkin paikka on 0, toisen 1 jne. Joten jos nimi alkaa n-kirjaimella, strpos() palauttaa 0, mikä evaluoituu falseksi, ellet vertaa arvoa näin:DJ-Filbe wrote: Tämän pitäisi toimia näin:
- Jos GET-parametri n=1 niin listataan tiedostot, joiden nimen ensimmäinen kirjain on 'n'.
- Jos GET-parametri n=0 niin listataan tiedostot, joiden nimen ensimmäinen kirjain ei ole 'n'.
Mikä failaa?
- 0 === strpos(*parametrit*) //n-kirjain on ensimmäisenä
- 0 !== strpos(*parametrit*) //n-kirjain ei ole ensimmäisenä
Vielä kun tiedostot voisi järjestää ajan mukaan nousevassa järjestyksessä (vanhimmat ensin) niin olisi loistavaa!
Last edited by DJ-Filbe on Wed Jun 15, 2011 12:40 pm, edited 1 time in total.
Re: PHP-ongelmat
Eikö myös 0 == strpos(... toimisi, kun kerran 0 evaluoituu falseksi joka tapauksessa?Jare wrote:DJ-Filbe wrote:0 === strpos(*parametrit*) //n-kirjain on ensimmäisenä
EDIT:
Tietty === on tyyppiturvallisempi
EDIT:
aa aivan strpos palauttaa false jos ei löydy :D
Re: PHP-ongelmat
Näyttääpäs hankalalta tuo sinun koodisi. Eikö helpompaa olisi vain käyttää scandiriä ja sitten järjestäisit arrayn filemtime-funktion avulla? Jos haluaisit vielä käydä kansiot rekursiivisesti läpi niin NetMatchin updaterin PHP-koodin tutkiskelu voi auttaa. Tälläistä se tulostaa.DJ-Filbe wrote:Vielä kun tiedostot voisi järjestää ajan mukaan nousevassa järjestyksessä (vanhimmat ensin) niin olisi loistavaa!
cbEnchanted, uudelleenkirjoitettu runtime. Uusin versio: 0.4.1 — Nyt myös sorsat GitHubissa!
NetMatch - se kunnon nettimättö-deathmatch! Avoimella lähdekoodilla varustettu
vesalaakso.com
NetMatch - se kunnon nettimättö-deathmatch! Avoimella lähdekoodilla varustettu
vesalaakso.com
Re: PHP-ongelmat
Ihan nopeasti semmonen kysymys, että mikä mahtaa olla helpoin tapa testata PHP-skriptien toimivuutta (ilman nettiin uppaamista)? Apache-palvelimen asennus ja siihen PHP:n asennus vaikuttaa yliampuvalta pelkästään tätä tarkoitusta varten, onko jotain kevyempää?
Re: PHP-ongelmat
Tuskin muu siinä nyt auttaa. Onhan Apachea varten olemassa valmispaketteja, ettei tarvitse itse asentaa kaikkea käsin jos sitä tarkoitat. Itse käytän XAMPP:ia jossa on Apache, PHP, MySQL, Perl ja ties mitä vielä.
Muistaakseni ohjelmointiputkassa oli joku sivu (jonka osoitetta en muista) jolla pystyi testaamaan koodinpätkiä, mutta ympäristö on todella rajoitettu väärinkäyttöjen estämiseksi.
Muistaakseni ohjelmointiputkassa oli joku sivu (jonka osoitetta en muista) jolla pystyi testaamaan koodinpätkiä, mutta ympäristö on todella rajoitettu väärinkäyttöjen estämiseksi.
Last edited by temu92 on Thu Jun 16, 2011 6:11 pm, edited 1 time in total.
Re: PHP-ongelmat
*AMP tikulle?axu wrote:Ihan nopeasti semmonen kysymys, että mikä mahtaa olla helpoin tapa testata PHP-skriptien toimivuutta (ilman nettiin uppaamista)? Apache-palvelimen asennus ja siihen PHP:n asennus vaikuttaa yliampuvalta pelkästään tätä tarkoitusta varten, onko jotain kevyempää?
EDIT:
Niin, vaikkapa tuo XAMPP
Toinen vaihtoehto on ladata PHP ja ajaa skriptit vain suoraan sen parserin läpi.
Re: PHP-ongelmat
Kiitoksia vastauksista
EDIT:
En saa XAMPPia toimimaan... Latasin installerin ja asennuksen jälkeen XAMPP ohjauspaneelista painoin Start (Apache) nappia ja vaikka se väittää, että Apache lähti käyntiin (portti asiaankuuluvasti 80), ei http://localhost/ palauta mitään. Ei index.htmlää eikä 404 erroria tahi kansiolistausta. Pitäisikö jotain konffaamista tehdä? Jos niin mitä muutoksia?
Re: PHP-ongelmat
Sen Apachen oikeasti asentaminen nyt ei ole sen kummempi operaatio kuin asentaa se apache ja sitten PHP. Tämän jälkeen googlataan sopiva konffipätkä PHP:n käyttöönottamiseksi apacheen ja pastetaan se Apachen konffiin. Toki jos noilla "helppopaketeilla" on sotkenut jotain oleellisia asetuksia koneestaan, niin kunnollisen devikonffauksen tekeminen voi olla aika infernaalista.
Btw. Allekirjoituksessa on linkkiä webmasterfoorumiin, josta koitan tehdä suomenkielistä webbijuttuihin keskittyvää foorumia.
Btw. Allekirjoituksessa on linkkiä webmasterfoorumiin, josta koitan tehdä suomenkielistä webbijuttuihin keskittyvää foorumia.
Re: PHP-ongelmat
Muistanko aivan väärin, vai eikös korrekti osoite portissa 80 elävään palvelimeen ole localhost:80 eikä silkka localhost?
Asus P8P67 LE/Intel Core i5 2500K/ GTX560/ 8GT RAM/750GT HDDt + 120GT SSD + 13" Macbook Pro
Blogi - Peräpohjola - MERPG
Blogi - Peräpohjola - MERPG