Tämä on yksinkertainen UKK palsta, jota käsitellään yksinkertaisesti selaimella.
Eli Usein kysytyt kysymykset a.k.a FAQ a.k.a frequently asked questions.
En ole tehnyt noihin muokkaksiin ja poistoihin salausta, enkä aiokkkaan, koska putkassa on sen verran hyvät ohjeet sellaisen tekemiseen. Sen verran autoin, että laitoin kommenttia siihen kohtaan, jossa salaus kannattaa tehdä.
Ohjeet
1. Siirrä ukk.php (voi olla myös muun niminen) haluamaasi kansioon.
2. Siirrä modify_row.php samaan kansioon.
3. Tee samaan kansioon ukk.txt tiedosto
4. Anna tarvittavat oikeudet ukk.txt:lle, jotta siihen voidaan kirjoittaa.
Kiitokset lisäksi T.M:lle loistavasta rivien käsittely scriptasta, tässä on käytetty sitä !
Demoa osoitteessa: http://koti.mbnet.fi/ztomiz/ukk.php
Nojoo, no siis ei välttämättä UKK, ku kaikki kysymykset hyväksytään, mutmut..
HOXHOX
Uus versio on nyt, eli sisältää sen salasanasuojauksen. Demon salasana on jorma, jos haluatte sitä admin paneelia nähdä.
tiedoston_nimi.php
<html><head> <style type="text/css"> .taulu { font-family: Verdana; font-size: 8pt; color: #000000; border: 1px black solid; margin: 5px; padding: 2px; } .taulua { font-family: Verdana; font-size: 8pt; color: #000000; border: 1px black solid; margin: 5px; padding: 2px; background-color: #AB4B43; } .taulub { font-family: Verdana; font-style: italic; font-size: 8pt; color: #000000; border: 1px black solid; margin: 5px; padding: 2px; background-color: #9CA1C7; } .taulud { font-family: Verdana; font-size: 8pt; color: #000000; border: 1px black solid; margin: 5px; padding: 2px; background-color: #g8g8g8; } .tauluc { font-family: Verdana; font-style: italic; font-size: 8pt; color: #000000; margin: 5px; padding: 2px; background-color: #C3D8C6; } </style> </head><body> <?php // UKK-palsta a'la Suhkruvaba && PHP :) // HUOM ! Modify_row on T.M:n käsialaa, ei minun omaani. // Siitä isot kiitokset T.M.:lle //Tässä määritellään adim osion salasana, sen täytyy olla md5 hashattu //Saat helposti hashattua uuden salasanan kirjautumalla ensin alkuperäisellä salasanalla sisään //Sisäänkirjautuneena saat tehtyä uuden salasanan $oikeapassu = "6ba1e0f1ef925477b2d6572df4794110"; // Sana "jorma" md5 hashattuna // Luetaan taulukkoon kysymykset & vastaukset $filu = file('ukk.txt'); echo "<table class=\"taulu\">"; // Luetaan taulukon avulla tyylikkäästi, kysymykset, vastaukset, muokkaa & poista. for($i = 0; $i < count($filu); $i++) { $ukk = explode("|", $filu[$i]); echo "<tr><td class=\"taulua\">$ukk[0]</td></tr>"; echo "<tr><td class=\"taulub\">$ukk[1]</td></tr>"; $admin = $_COOKIE["admin"]; if ($admin == "ok") { echo "<tr><td class=\"tauluc\">"; echo "<i><a href=\"$PHP_SELF?tee=muokkaa&muokattava=$i\" class=\"tauluc\">Muokkaa ></a> :: <a href=\"$PHP_SELF?tee=poista&poistettava=$i\" class=\"tauluc\">Poista ></a> </td></tr>"; } else { } } echo " <table><tr> <form method=\"POST\" action=\"$PHP_SELF?tee=lisaa\"> <tr><td class=\"taulua\">Kysymys:</td><td class=\"taulua\"><input name=\"kysymys\" size=\"24\"></td> <td class=\"taulua\"><input type=\"submit\" name=\"lisaa\" value=\"Kysy =>\"></td></tr> </form> "; if ($admin != "ok") { echo "<tr><td class=\"taulud\">"; echo "<form method=\"POST\" action=\"$PHP_SELF?tee=kirjaudu\">Admin:</td><td class=\"taulud\"> <input type=\"password\" name=\"salasana\" size=\"24\"> </td><td class=\"taulud\"><input type=\"submit\" name=\"sisaan\" value=\"Kirjaudu =>\"></td></tr></form> "; $virheteksti = $_COOKIE["kirjautumine"]; echo "<tr><td class=\"taulud\"> $virheteksti</td></tr>"; setcookie("kirjautumine", ""); } else { if (($tee == "md5" || $tee == "")) { echo "<tr><td class=\"taulud\">"; echo "<form method=\"POST\" action=\"$PHP_SELF?tee=uuspassu\">Uusi salasana: </td><td class=\"taulud\"><input type=\"text\" name=\"uussalasana\" size=\"24\"></td><td class=\"taulud\"> <input type=\"submit\" name=\"ulos\" value=\"md5 hashaa salasana =>\"></form> </td></tr> "; $salasanasi = $_COOKIE["uuspass"]; echo "<tr><td class=\"taulud\">Uusi salasanasi on: </td><td class=\"taulud\"><b>$salasanasi</b></td><td class=\"taulud\">Muokkaa tämä tiedoston alkuun, kohtaan \"oikeapassu\".</td></tr>"; } else { echo "<tr><td class=\"taulud\"><a href=\"$PHP_SELF?tee=md5\">md5 hashaa itsellesi helposti uusi salasana.</a></td></tr>"; } } echo " </table> "; echo "</table>"; // Jos sivu on muokkaa, niin tehään tepposet ;) // Modify_row on siis T.M:n käsialaa. if ($tee == "muokkaa") { $vanha = file('ukk.txt'); $vanharivi = $vanha[$muokattava]; $vanhaukk = explode("|", $vanharivi); // Tehdään lomake, jolla muokataan riviä echo " <table><tr> <form method=\"POST\" action=\"$PHP_SELF?tee=muokkaa2\"> <td><input type=\"hidden\" name=\"muokattava\" value=\"$muokattava\" size=\"24\"></td></tr> <tr><td class=\"taulua\">Kysymys:</td><td class=\"taulua\"><input name=\"uusikysymys\" value=\"$vanhaukk[0]\" size=\"24\"></td></tr> <tr><td class=\"taulub\">Vastaus:</td><td class=\"taulub\"><input name=\"uusivastaus\" value=\"$vanhaukk[1]\" size=\"24\"></td></tr> <tr><td></td><td><input type=\"submit\" name=\"muokkaa\" value=\"Muokkaa =>\"></td></tr> </form> </table> "; } if ($admin == "ok") { echo "<table><tr><td></td></tr><tr><td></td></tr><tr><td></td></tr>"; echo "<tr><td class=\"taulud\">"; echo "<form method=\"POST\" action=\"$PHP_SELF?tee=kirjaudu_ulos\">Admin:</td><td class=\"taulud\"> <input type=\"submit\" name=\"ulos\" value=\" Kirjaudu ulos =>\"></form> </td></tr></table> "; } else { } // Käsitellään muokkaus if (($tee == "muokkaa2") && ($admin == "ok")) { include('modify_row.php'); $uusirivi = "$uusikysymys|$uusivastaus"; modify_row($tiedosto, "$uusirivi\n", $muokattava); header("Location: $PHP_SELF"); } //Jos sivu on poista, niin poistellaan :) elseif (($tee == "poista") && ($admin == "ok")) { include('modify_row.php'); modify_row($tiedosto, "", $poistettava); header("Location: $PHP_SELF"); } // Jos kysytään uutta kysymystä.. elseif ($tee == "lisaa") { $uusk = fopen("ukk.txt", "a"); fwrite($uusk, "$kysymys|Ylläpito ei ole vastannut vielä.\n"); fclose($uusk); header("Location: $PHP_SELF"); } // Jos kirjaudutaan adminina elseif ($tee == "kirjaudu") { if (md5($salasana) == "$oikeapassu") { setcookie("admin", "ok"); header("Location: $PHP_SELF"); } else { setcookie("kirjautumine", "Salasana väärin."); header("Location: $PHP_SELF"); } } // Jos kirjaudutaan ulos adminina elseif ($tee == "kirjaudu_ulos") { setcookie("admin", ""); header("Location: $PHP_SELF"); } // Jos tehdään uusi salasaa elseif ($tee == "uuspassu") { $uus_salis = md5($uussalasana); setcookie("uuspass", "$uus_salis"); header("Location: $PHP_SELF"); } // Jos $tee on jotain ihan muuta ;P else { } ?> </body></html>
modify_row.php
<?php // HUOM, tämä ei ole minun tekemä, vaan T.M:n. // Pakko mainita ettei kukaan ala mitään itkeä :) // Tiedoston nimi, Rivin tieto, [Rivin numero], [Poistomoodi? 1/0] function modify_row($tiedosto, $rowdata, $id = "", $delete = 0){ $id = (int)$id; $filu = file($tiedosto); // Jos muokataan monta eri riviä samanaikaisesti, eli kyseessä on taulukko: if(is_array($rowdata)){ if($delete){ // Jos haluttiin vain poistaa rivit, ja käytetty taulukko sisältää // rivinumeron sen alkion arvossa, eikä sen alkion nimessä: foreach($rowdata as $value){ // Tyhjätään rivi: $filu[(int)$value] = ""; } }else{ // Jos haluttiin poistaa tai muokata monta eri riviä, ja käytetty // taulukko sisältää rivinumeron sen alkion nimessä: foreach($rowdata as $key => $value){ // Korvataan muokattava rivi uudella tiedolla: $filu[(int)$key] = $value; } } }else{ // Jos ei muokattu taulukkoa, korvataan yksittäinen rivi uudella tiedolla: $filu[$id] = $rowdata; } // Rivin muokkaaja by T.M. www.HC-Codes.net $save = fopen($tiedosto, "w"); flock($save, LOCK_EX); foreach($filu as $rivi){ fwrite($save, $rivi); } flock($save, LOCK_UN); fclose($save); } // Tiedosto jonka rivejä muokataan: $tiedosto = "ukk.txt"; ?>
ukk.txt
Kysymys|Vastaus
Kaikki voi poistaa niitä?
Kuten huomaat, olen maininnut kyllä, että:
"En ole tehnyt noihin muokkaksiin ja poistoihin salausta, enkä aiokkkaan, koska putkassa on sen verran hyvät ohjeet sellaisen tekemiseen. Sen verran autoin, että laitoin kommenttia siihen kohtaan, jossa salaus kannattaa tehdä. "
Siis eihän siihen tarvita kuin kirjautumissivu ja sitten tossa ukk.php:ssä tarkistat onko kirjautuminen voimassa, jos on tulostat ne "muokkaa" ja "poista", jos ei lopetat kirjoittamisen siihen.
Voinhan mä toki sellasen tehä jos vaaditte esimerkkiä :)
Vai mitä mikko?
Toimii koti.mbnetissä :) Just mitä tarvin.
Testiversio ei toimi!
toi jorma passu ei toimi mulla. mikä vittu se siis on?
Aihe on jo aika vanha, joten et voi enää vastata siihen.