PHP-ongelmat

Muu yhteisön välinen keskustelu.
Post Reply
Feuer
Devoted Member
Posts: 520
Joined: Tue Jun 16, 2009 11:13 am
Contact:

Re: PHP-ongelmat

Post by Feuer »

Pettis wrote:
temu92 wrote:

Code: Select all

$_SERVER['HTTP_REFERER'];
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.
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?
Asus P8P67 LE/Intel Core i5 2500K/ GTX560/ 8GT RAM/750GT HDDt + 120GT SSD + 13" Macbook Pro
Blogi - Peräpohjola - MERPG
DJ-Filbe
Devoted Member
Posts: 854
Joined: Sat Feb 20, 2010 2:18 pm

Re: PHP-ongelmat

Post by DJ-Filbe »

Feuer wrote:
Pettis wrote:
temu92 wrote:

Code: Select all

$_SERVER['HTTP_REFERER'];
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.
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?
Tuon voi tietysti toteuttaa myös JavaScriptillä:
<script type="text/javascript">

Code: Select all

history.go(x)
</script>
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)
temu92
Web Developer
Web Developer
Posts: 1226
Joined: Mon Aug 27, 2007 9:56 pm
Location: Gamindustri
Contact:

Re: PHP-ongelmat

Post by temu92 »

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).
User avatar
esa94
Guru
Posts: 1855
Joined: Tue Sep 04, 2007 5:35 pm

Re: PHP-ongelmat

Post by esa94 »

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).
Jea, itelläni ei ainakaan oo JavaScript käytössä oletuksena.
DJ-Filbe
Devoted Member
Posts: 854
Joined: Sat Feb 20, 2010 2:18 pm

Re: PHP-ongelmat

Post by DJ-Filbe »

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.
User avatar
buke44
Active Member
Posts: 169
Joined: Sat May 23, 2009 8:10 pm
Location: Tampere

Re: PHP-ongelmat

Post by buke44 »

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.
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.
porzi
Active Member
Posts: 119
Joined: Mon Aug 27, 2007 11:10 pm
Contact:

Re: PHP-ongelmat

Post by porzi »

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ä.
Voittoja viikkokisoissa: 3
http://fugufish.dy.fi/ | vanhat cb-pelini: http://porzi.arkku.net/old_games/
Pettis
The Evil Admin
The Evil Admin
Posts: 1044
Joined: Sun Aug 26, 2007 5:08 pm
Location: Rovaniemi
Contact:

Re: PHP-ongelmat

Post by Pettis »

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.
CB Repository .com - Sinne ne kaikki koodit menneet on!
MunVerkko - Ilmaisia foorumeita ja blogeja
DJ-Filbe
Devoted Member
Posts: 854
Joined: Sat Feb 20, 2010 2:18 pm

Re: PHP-ongelmat

Post by DJ-Filbe »

Arkkunetissä. Ei omaa palvelinta ;(
DJ-Filbe
Devoted Member
Posts: 854
Joined: Sat Feb 20, 2010 2:18 pm

Re: PHP-ongelmat

Post by DJ-Filbe »

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);
}
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?
User avatar
Jare
Devoted Member
Posts: 877
Joined: Mon Aug 27, 2007 10:18 pm
Location: Pori
Contact:

Re: PHP-ongelmat

Post by Jare »

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?
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:
- 0 === strpos(*parametrit*) //n-kirjain on ensimmäisenä
- 0 !== strpos(*parametrit*) //n-kirjain ei ole ensimmäisenä
DJ-Filbe
Devoted Member
Posts: 854
Joined: Sat Feb 20, 2010 2:18 pm

Re: PHP-ongelmat

Post by DJ-Filbe »

Jare wrote:
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?
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:
- 0 === strpos(*parametrit*) //n-kirjain on ensimmäisenä
- 0 !== strpos(*parametrit*) //n-kirjain ei ole ensimmäisenä
Kiitos! Tuo auttoi :)
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.
User avatar
esa94
Guru
Posts: 1855
Joined: Tue Sep 04, 2007 5:35 pm

Re: PHP-ongelmat

Post by esa94 »

Jare wrote:
DJ-Filbe wrote:0 === strpos(*parametrit*) //n-kirjain on ensimmäisenä
Eikö myös 0 == strpos(... toimisi, kun kerran 0 evaluoituu falseksi joka tapauksessa?
EDIT:

Tietty === on tyyppiturvallisempi

EDIT:

aa aivan strpos palauttaa false jos ei löydy :D

User avatar
valscion
Moderator
Moderator
Posts: 1599
Joined: Thu Dec 06, 2007 7:46 pm
Location: Espoo
Contact:

Re: PHP-ongelmat

Post by valscion »

DJ-Filbe wrote:Vielä kun tiedostot voisi järjestää ajan mukaan nousevassa järjestyksessä (vanhimmat ensin) niin olisi loistavaa!
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.
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
User avatar
axu
Devoted Member
Posts: 854
Joined: Tue Sep 18, 2007 6:50 pm

Re: PHP-ongelmat

Post by axu »

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ää?
Jos tämä viesti on kirjoitettu alle 5 min. sitten, päivitä sivu. Se on saattanut jo muuttua :roll:
Image
temu92
Web Developer
Web Developer
Posts: 1226
Joined: Mon Aug 27, 2007 9:56 pm
Location: Gamindustri
Contact:

Re: PHP-ongelmat

Post by temu92 »

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.
Last edited by temu92 on Thu Jun 16, 2011 6:11 pm, edited 1 time in total.
User avatar
esa94
Guru
Posts: 1855
Joined: Tue Sep 04, 2007 5:35 pm

Re: PHP-ongelmat

Post by esa94 »

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ää?
*AMP tikulle?
EDIT:

Niin, vaikkapa tuo XAMPP

Toinen vaihtoehto on ladata PHP ja ajaa skriptit vain suoraan sen parserin läpi.

User avatar
axu
Devoted Member
Posts: 854
Joined: Tue Sep 18, 2007 6:50 pm

Re: PHP-ongelmat

Post by axu »

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?

Jos tämä viesti on kirjoitettu alle 5 min. sitten, päivitä sivu. Se on saattanut jo muuttua :roll:
Image
Pettis
The Evil Admin
The Evil Admin
Posts: 1044
Joined: Sun Aug 26, 2007 5:08 pm
Location: Rovaniemi
Contact:

Re: PHP-ongelmat

Post by Pettis »

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.
CB Repository .com - Sinne ne kaikki koodit menneet on!
MunVerkko - Ilmaisia foorumeita ja blogeja
Feuer
Devoted Member
Posts: 520
Joined: Tue Jun 16, 2009 11:13 am
Contact:

Re: PHP-ongelmat

Post by Feuer »

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
Post Reply