Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Mihin voi tehdä isohkon sivuston halvalla?

Sivun loppuun

Jaska [15.11.2010 02:14:07]

#

Erään tuttavan kanssa mietittiin, että voisimme yrittää tehdä nettiin keskustelu- ja deittipalstaa. Mihin tuollainen kannattaa tehdä? Aluksi mietin freehostingcloudia, mutta huomasin sivulta http://www.freehostingcloud.com/terms.html , että kiellettyinä ovat kuvien ja tiedostojen tallentaminen sekä aikuisviihde. Emme siis todellakaan ajatelleet tehdä pornografista sivua, mutta koskaan ei voi tietää, millaisia kuvia käyttäjät sivulleen lataavat. Olisikohan esimerkiksi http://www.unlimitedtree.com/ hyvä vaihtoehto alustalle?

Toinen idea, joka tuli tuttavan mieleen, oli tehdä sivusta mainosrahoitteinen. Mutta mitenkä asia järjestyy käytännössä, sillä kuvia ja mainoksia voi laittaa sivulle ilmaiseksi, enkä tiedä kuka niistä maksaisi? Toisaalta jos saisimme sivulta vaikka kaksi euroa kuussa, niin sillä saisi ainakin osoitteesta http://ilmainenwebhotelli.com/webhotelli.php Silverin, ja kumpikin jäisi 2,5 senttiä voitolle kuussa. :)

Lebe80 [15.11.2010 08:48:15]

#

Veikkaan, ettette ole selkeästikään suunnitellut yhtään sivustoa.

Jos tuommoista sivustoa rupeaa väsäämään, niin "halvalla" sitä ei kannata tehdä, koska silloin se ei todellakaan toimi.

Deittisivusto vaatii todella paljon käyttäjiä, jotta se toimisi, joten palvelimen toiminta on viimeisin asia, jossa kannattaa säästellä. Ja juurikin mainostuspuoli on tärkeä tulonlähde, joten yhteistyökumppanit kannattaa selvittää. Ei kukaan halua itse olla se, joka mainospaikkoja myy ja päivittelee sivustolle.

Älkää siis kaverisi kanssa luulko, että saatte viikonlopun aikana sivuston valmiiksi ja että se sen jälkeen rullaa itsekseen. Eli teidän pitää myös valvoa sivuston käyttöä. Ja kahteen pekkaan se voi olla lauantain pikkutunneilla hyvinkin vaikeaa...

ts. Takaisin suunnittelupöydän ääreen.

Metabolix [15.11.2010 11:42:04]

#

Lebe80 kirjoitti:

Veikkaan, ettette ole selkeästikään suunnitellut yhtään sivustoa.

Tuo on kieltämättä paha puute, mutta Jaskan viimeaikaisten kysymysten perusteella sanoisin, että pahempia ongelmia on luvassa ihan teknisen toteutuksen merkeissä (sekä ulkoasussa että toiminnallisella puolella). Jos sivusto on buginen, tavallinen kansa ei viihdy – ainakaan, kun samanlaista palvelua tarjoaa jo vaikka kuinka moni oikea ja toimivakin sivusto. Osaamattoman tekijän lopputulos voi olla pahimmillaan tätä luokkaa.

Jaska [15.11.2010 12:01:35]

#

OK. Pitänee haudata idea. Kuitenkin jotain PHP-koodausta olisi kiva harjoitella, joten ajattelin, että parhaiten opin valitsemalla ison projektin ja alkamalla selvittämään ongelmia yksi kerrallaan.

Lebe80 [15.11.2010 12:04:59]

#

Itse lähtisin kyllä tutustumaan eri julkkareihin, ja tutkimaan, miten sellaiseen pystyy tekemään oman laajennuksen. Näin sivuston runko olisi valmiista paketista, jolloin mitään sef-urleja, käyttäjätunnuksien hallintaa, sivurakennetta, välimuistitoimintoa, yms. yms. yms. ei tarvitsisi keksiä uudelleen.

PHP-ohjelmointiin keksit kyllä aiheen, kun mietit esim. harrastuksiasi yms. Itse ainakin väkersin nuorempana juuri salibandyharrastusta varten pistelaskurin, jotta viikottaisten sarjatulosten naputtaminen nettiin nopeutui.

Jaska [15.11.2010 15:18:53]

#

Oikeastaan jalkapallo on ainoa harrastukseni ja en ole seurani WWW-vastaava, joten en pääse korjailemaan kotisivujen bugeja sitä kautta. Olen kyllä tehnyt joitakin pieniä skriptejä ennenkin, mutta tällä hetkellä mulla ei ole mitään muuta ideaa nettiohjelmointiin liittyen kuin
1. Alkaa toteuttamaan deittipalvelua vammaisille henkilöille.
2. Selvittää, onko olemassa sellaista merkkijonoa, jonka käyttäjä voi antaa salasanaksi ja jonka SHA-salaus antaa koodin, joka aiheuttaa SQL-injektion tai cross-site -skriptihaavoittuvuuden (mikä lie onkaan suomeksi).
3. Tehdä täydellinen sähköpostintarkistusfunktio PHP:llä ( https://www.ohjelmointiputka.net/keskustelu/21680-sähköpostiosoitteen-tarkistus ).

Kuitenkin jossain vaiheessa nuo 2. ja 3. on opeteltava, jos haluan saada töitä.

villev [15.11.2010 15:33:45]

#

PHP-koodausta voi harjoitella kivasti PHP-haasteen avulla, jos et ole sitä vielä kokeillut.

Metabolix [15.11.2010 17:35:30]

#

Jaska kirjoitti:

1. Alkaa toteuttamaan deittipalvelua vammaisille henkilöille.

Melkoinen tavoite. Ensiksi kannattaisi määritellä "vammainen" ja miettiä, mitä sellaista sivustosi pystyisi heille tarjoamaan, mitä normaaleilla seuranhakusivustoilla ei ole.

Jaska kirjoitti:

2. Selvittää, onko olemassa sellaista merkkijonoa, jonka käyttäjä voi antaa salasanaksi ja jonka SHA-salaus antaa koodin, joka aiheuttaa SQL-injektion tai cross-site -skriptihaavoittuvuuden (mikä lie onkaan suomeksi).

Ei se hashaaminen mitään haavoittuvuutta aiheuta. Jos koodissasi on aukko, aukko on koodissasi, ja jos koodissasi ei ole aukkoa, sinne ei myöskään mistään ilmesty sellaista. Lisäksi jos kuulut siihen enemmistöön, joka käsittelee hashauksen tuottamaa lukua heksadesimaalimuodossa tekstinä, voit olla varma, että tuloksessa on vain merkkejä 0-9 ja A-F.

Jaska kirjoitti:

3. Tehdä täydellinen sähköpostintarkistusfunktio PHP:llä

Epäiletkö filter_var-funktion tuottamaa tulosta? Turha keksiä pyörää uudestaan. Sitä paitsi täsmällinen osoitteen tarkistus ei todellakaan ole lomakkeen tarkistuksessa tärkein asia, koska se ei estä laittamasta olematonta sähköpostiosoitetta. Kriittisempiä kohtia ovat nimi, päivämäärä, erilaiset lukuarvot ja isossa palvelussa vaikkapa puhelinnumeron maakoodi.

Jaska kirjoitti:

Kuitenkin jotain PHP-koodausta olisi kiva harjoitella

Ratkaise koko PHP-haaste, niin opit paljon ohjelmoinnin perusasioita. Voin vakuuttaa, että hyvät perustiedot ja teoreettinen osaaminen ovat suureksi eduksi myös käytännön työssä.

Toinen hyvä opettelutapa on selvittää kaikki ne asiat, joista joku muu kysyy täällä foorumilla. Jos saat asian selvitettyä (ja testattua) perin pohjin ja olet aivan varma, että tietosi on oikeaa, voit jopa vastata kysymykseen ja saada kysyjänkin hyvälle mielelle.

Jokotai [15.11.2010 18:25:58]

#

PHP-haaste opettaa algorytmien tekemistä, ei niinkään kieltä itsessään. Paras tapa oppia PHP:tä(tästäkin voi olla eri mieltä, kuten kaikesta) on tehdä omat sivut. Suunnitella homma omien taitojen yläpuolelle ja alkaa toteuttamaan sitä.

trilog [15.11.2010 18:31:19]

#

Jokotai kirjoitti:

PHP-haaste opettaa algorytmien tekemistä, ei niinkään kieltä itsessään.

Algoritmit voi tehdä käyttäen kielen standardikirjaston ominaisuuksia. Esimerkiksi rot13-tehtävän voi ratkaista yllättävällä tavalla. Toki juuri tuon tapaista ohjelmointia ei suoranaisesti tarvitse sivuja tehdessä, mutta kyllä siinä varmasti kielen perusasiat oppii.

Jokotai [15.11.2010 18:38:22]

#

Perusasiat juu, mutta siihen se sitten jääkin. Jaskan vapaasta kuvauksesta voisi saada sen käsityksen, että hän osaisi ainakin perusasiat.

punppis [15.11.2010 22:52:15]

#

Jokotai kirjoitti:

PHP-haaste opettaa algorytmien tekemistä, ei niinkään kieltä itsessään.

Ei minkään ohjelmointikielen haaste ole sen syntaksissa ("kieltä itsessään"), vaan että osaa ajatella loogisesti ongelmanratkaisun kantilta. Kuten jo täälläkin on monesti sanottu, kun osaa yhden ohjelmointikielen, osaa ne kaikki.

Jokotai kirjoitti:

Paras tapa oppia PHP:tä(tästäkin voi olla eri mieltä, kuten kaikesta) on tehdä omat sivut. Suunnitella homma omien taitojen yläpuolelle ja alkaa toteuttamaan sitä.

Tämä on toki totta, mutta on tärkeää muistaa myös se, ettei ala liian isoa tai vaikeaa sivua tekemään heti ensimmäiseksi. Suosittelen lämpimästi lukemaan ensin putkan php-oppaan läpi ja sen jälkeen tekemään php-haastetta.

Jaska [15.11.2010 23:50:17]

#

punppis kirjoitti:

Ei minkään ohjelmointikielen haaste ole sen syntaksissa ("kieltä itsessään"), vaan että osaa ajatella loogisesti ongelmanratkaisun kantilta.

Olen vähän eri mieltä. Minusta Malbolgen syntaksi on haastavaa.

Metabolix [16.11.2010 00:24:49]

#

Jokotai kirjoitti:

PHP-haaste opettaa algorytmien tekemistä, ei niinkään kieltä itsessään.

Nettisivujen tekemisessä ei tarvitse tietää PHP:n hillittömästä funktiorepertuaarista paljonkaan. Tyypillisiin nettisivujen toimintoihin kuten tietokannan käyttöön ja SQL-injektioiden ja XSS-haavoittuvuuksien torjumiseen ym. "hienoon" tarvitaan yhteensä ehkä tusinan verran sellaisia funktioita, jotka eivät esiinny PHP-haasteen kaltaisessa perusohjelmoinnissa.

Alla on tilasto eräästä aika isosta projektista. Nopeasti kyhäämäni skripti ei ehkä tunnista kaikkea oikein, mutta ainakin pääpiirteet ovat luultavasti kohdallaan.

käyttökertojafunktio tai rakenne
4333if
2854array
1049foreach
137count
124isset
108array_key_exists
71–100empty, switch, array_shift, unset
51–70implode, explode, array_merge, preg_replace, while
31–50sprintf, trim, for, round, in_array, is_array, elseif
21–30date, get_class, is_bool, call_user_func, reset
11–20(20 eri funktiota)
6–10(16 eri funktiota)
1–5(215 eri funktiota)

Tilastosta nähdään erinomaisesti, että suurin osa koodista muodostuu tavallisista komentorakenteista. PHP:n valmiita funktioita käytetään huomattavan vähän, ja niistäkin vain kourallinen on toistuvasti tarpeen. Esimerkiksi tietokantafunktiot sen sijaan sisältyvät taulukon alimpiin riveihin, koska niitä käytetään vain keskitetysti projektin tietokantaluokissa.

Jaska [16.11.2010 19:27:55]

#

Jos sitä koittais sitten noita haasteita. Mitenkähän palveluntarjoa suostuu siihen, että sivulle tulee tuollaisia skriptejä, kun en ole varannut tilaa sitä varten? Ja riittääkö noissa skripteissä olla kyseinen PHP-koodi vai pitääkö ympärille laittaa validaattorin läpäisevä HTML5/XHTML-koodi?

Teuro [16.11.2010 19:38:42]

#

Pelkkä tulostus riittää, eli jos halutaan positiiviiset parilliset luvut 2 - n, niin tulosteessa saa olla vain luvut 2 - n ei muuta.

EDIT: onko nolla positiivinen tai parillinen tai edes luku?

tsuriga [16.11.2010 19:43:23]

#

Haasteessa on muistaakseni inhimillinen aikaraja, jonka puitteissa ongelmat selviävät sopivalla algoritmillä muitta mutkitta ilman raskaita bruteforceja. Jos pelottaa kyykyttää palveluntarjoajan palvelinta niin aja ensin omalla koneella testaukset, ja kun skripti puuppaa ulos jotain järkevää, lähetä skripti palveluntarjoajan palvelimelle. Toki voit viitata PHP-haasteessa myös omalle palvelimellesi jos se näkyy verkkoon päin.

Riittää, että palvelin suoltaa PHP-haasteen tarkastusskriptille oikean lopputuloksen, kirjotti se palvelin sen sitten PHP:llä tai vaikkapa Rubylla, Pythonilla, Javalla tai vaikka COBOLilla.

Jaska [16.11.2010 19:44:24]

#

Ok. Kiitos tiedostoa. Nolla ei ole positiivinen luku, mutta on parillinen ja samoin se on luku.

Macro [16.11.2010 21:34:14]

#

Teuro kirjoitti:

onko nolla positiivinen

Ei ole, eikä negatiivinenkään.

Teuro kirjoitti:

tai parillinen

Kyllä.

Teuro kirjoitti:

tai edes luku?

On.

Metabolix [16.11.2010 22:36:28]

#

Jaska kirjoitti:

Mitenkähän palveluntarjoa suostuu siihen, että sivulle tulee tuollaisia skriptejä, kun en ole varannut tilaa sitä varten?

Palveluntarjoajalla tuskin on sen paremmin kiinnostusta kuin resurssejakaan valvoa asiaa, jos sivuista ei aiheudu ongelmia. Luultavasti hakemukseen vaaditaan tuollainen tieto, jotta saadaan kynnys korkeammalle (eli vähemmän turhia varauksia) ja tyhmimmät väärinkäyttäjät pois (esim. "aion levittää waretettua musiikkia ja kräkkejä peleihin").

Jaska kirjoitti:

Ja riittääkö noissa skripteissä olla kyseinen PHP-koodi vai pitääkö ympärille laittaa validaattorin läpäisevä HTML5/XHTML-koodi?

Tehtäviin kuuluu vastata tekstimuodossa. Seuraavassa on esimerkki halutusta vastauksesta ja skriptistä, jolla sen voisi tulostaa:

1
2
<?php
// Ilmoitetaan, että tulossa on vain tekstiä.
header("Content-Type: text/plain");

// Tulostetaan luvut eri riveille. "\n" on rivinvaihtomerkki.
echo 1, "\n";
echo 2, "\n";

Jaska [17.11.2010 00:00:30]

#

OK. Täytyypä tutustua tuohon projektiin ajan kanssa.

TESTI 1...VÄÄRIN

Syöte:

n=3&m=3

Sinun ratkaisusi:

1 2 3\n2 4 6\n3 6 9

Oikea ratkaisu:

1 2 3
2 4 6
3 6 9

Plääh. Ei toimi, vaikka näyttää samalta selaimessa.

Metabolix [17.11.2010 00:27:14]

#

Katsopa, mitä seuraava PHP-sivu tuottaa:

<?php
header("Content-Type: text/plain");
echo "A\nB";
echo 'C\nD';

Ehkä tämä auttaa ongelmasi ratkaisussa. Kyseessä on yksi PHP:n perusasioista, joten voin vain kuvitella, mitä "isohkon sivuston" tekemisestä tulisi.

Jaska [17.11.2010 15:09:58]

#

Totta. Nyt sekin kohta selvisi.-


Sivun alkuun

Vastaus

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

Tietoa sivustosta