Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: PHP: Helppo UKK

chiqu [25.03.2005 16:54:07]

#

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

LeX69 [04.04.2005 08:03:30]

#

Kaikki voi poistaa niitä?

chiqu [04.04.2005 15:30:15]

#

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ä :)

makeuu [05.04.2005 15:53:34]

#

Vai mitä mikko?

Kenilworth [29.03.2007 12:16:13]

#

Toimii koti.mbnetissä :) Just mitä tarvin.

Olli [19.05.2007 16:08:17]

#

Testiversio ei toimi!

Clacier [11.09.2008 19:28:23]

#

toi jorma passu ei toimi mulla. mikä vittu se siis on?

Vastaus

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

Tietoa sivustosta