Olen yrittänyt opiskella PHP-kieltä nyt pari päivää, mutta oikein mitään ei ole tarttunut. HTML kieltä osaan hyvin.
Tarvitsisin uutis-scriptin kotisivuilleni, mutten osaa tehdä sellaista enkä saa ladattavia sellaisia toimimaan (cutenews).
Haluaisin sellaisen scriptin, joka kysyy ensin salasanaa, jonka jälkeen pääsee uutisen lisäys sivulle. Otsikko siihen ja sitten uutinen. Uutinen lähtisi etusivulle (index.php(?)), jossa näkyisi ensin päivämäärä ja sitten otsikko, jota painamalla pääsee lukemaan uutisen. Uusin uutinen näkyisi aina ylimpänä etusivulla.
Olisin kiitollinen, jos joku väsäisi mahdollisimman helpon tälläisen, ilman että pitää mitään suuria muutoksia tehdä, koska en osaa. Tai sitten joku voisi neuvoa mitä pitää esim. cutenewsille tehdä, jotta sen saa toimimaan.
PHP:ta yritän harjoitella minkä kerkiän, toivottavasti alkaisin pikkuhiljaa saamaan siitä jotain irti.
Tee erillinen kansio, jonne lisäät .htaccess ja .htpasswd -tiedostot. Ohjeita näiden tekoon löydät runsaasti Googlella (ja joku varmasti osaa avustaa täälläkin jos tarvetta on). Niillä saat ihan kelvollisen perussuojauksen omaan käyttöön ilman suurta vaivannäköä.
Sitten: tee siihen hakemistoon vaikka uutiset.txt, ja muuta chmodilla tiedoston oikeuksiksi 666 tai 777 (toisinsanoen anna kirjoitusoikeus).
<?php if( isset($_POST['otsikko']) ) { // avaa tiedosto tekstimuuttujaan, pilko samantien uutiset toisistaan $tekstit = explode('{uutinen}', file_get_contents('uutinen.txt')); // hae uuden uutisen otsikko ja teksti $otsikko = stripslashes($_POST['otsikko']); $teksti = stripslashes($_POST['teksti']); // lisää taulukkomuuttujaan otsikko, teksti ja päiväys $tekstit[] = $otsikko.'||'.$teksti.'||'.time(); // yritä tallentaa if( $handle = fopen('uutinen.txt', 'w') ) { // kirjoita tiedot yhdistäen taulukon takaisin tekstiksi fwrite($handle, implode('{uutinen}', $tekstit)); // sulje avattu tiedosto fclose($handle); } // siirry ylempään hakemistoon header('Location: ../'); exit; } ?> <h1>Kirjoita uutinen</h1> <form action="" method="post"> <fieldset><legend></legend> <p class="text"> <label for="otsikko">Uutisen otsikko:</label> <input id="otsikko" name="otsikko" type="text" value="" /> </p> <p class="text area"> <label for="teksti">Uutisteksti:</label> <input id="teksti" name="teksti" type="text" value="" /> </p> </fieldset> <p class="submit"><input type="submit" value="Lähetä" /></p> </form>
Sitten tietysti tarvitset PHP-skriptin, joka lukee yllä olevaa tiedostoformaattia. Käyttäen yllä olevia tietoja ei pitäisi olla mahdottoman vaikeaa: yksi explode erittelee uutiset toisistaan, toinen explode kunkin uutisen kohdalla riittää erottelemaan otsikon, tekstin ja päivämäärän. Uutiset on tietty tiedostossa käänteisessä järjestyksessä, joten ensimmäistä explodella hajautettua taulukkomuuttujaa joutuu myöskin luuppimaan lopusta alkuun päin.
date-funktiolla saat muotoiltua päivämäärän kivempaan muotoon:
echo date('d.m.Y', $uutinen[2]);
Tuossa pitäisikin olla sitten kaikki tarpeellinen, joilla pitäisi päästä alkuun. Ei ole kovin monimutkainen systeemi.
Miten olet yrittänyt saada Cutenewsia toimimaan? Mitä komentoja olet laittanut etusivulle?
Aihe on jo aika vanha, joten et voi enää vastata siihen.