Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Vastaus systeemistä

Dexter [23.01.2009 17:24:47]

#

Elikkäs olis kysymistä flatfile viekun vastaus systeemistä. Eli:
Miten teen sen paneelin joka on:
- salasanasuojattu
ja siin pitäs näkyy kaikki viestit ja vastaus button. Vinkkiä?

trilog [23.01.2009 17:48:09]

#

Dexter kirjoitti:

Elikkäs olis kysymistä flatfile viekun vastaus systeemistä. Eli:
Miten teen sen paneelin joka on:
- salasanasuojattu

Teet kentän, joka lähetetään POST-datana serverille, esim.:

<?php
$salainen_sana = 'akuankka';

if (isset($_POST['salasana']) and $_POST['salasana'] === $salainen_sana) {
    echo "salaista sisältöä";
    // jne...
} else echo "Salasana väärin.";
?>

Salasanan voi tietysti hashata esim. md5:lla ja lisätä salaisen suolan ym., niistä lisää täällä.

Dexter kirjoitti:

ja siin pitäs näkyy kaikki viestit ja vastaus button. Vinkkiä?

Riippuu siitä miten vieraskirjasi on tehty.

Dexter [23.01.2009 22:59:28]

#

Tämän tyylinen se on =)

<html>
<head>
<title>Linkkilista</title>
</head>
<body>
<?php
print "<h1>Linkkilista</h1>";
$tulostus = file("linkit.txt");
$rivit = count($tulostus);
if ($rivit == 0 )
{
print "Linkkilistassa ei ole yhtään linkkiä.<br><br>";
}
elseif ($rivit == 1)
{
print "Linkkilistassa on 1 linkki.<br><br>";
}
else
{
print "Linkkilistassa on $rivit linkkiä.<br><br>";
}
if ($rivit != 0)
{
$rivit2 = $rivit - 1;
$i = 0;
while ($i <= $rivit2)
{
$tulosta = explode("|", $tulostus[$i]);
print "<b><a href=\"$tulosta[0]\">$tulosta[1]</a></b><br>$tulosta[2]<br><br>";
$i++;
}
}
print "<br><br>
<b>Lisää oma linkkisi:</b><br><br>
<form method=\"post\" action=\"$PHP_SELF\">
Sivun URL: <input type=\"text\" name=\"url\" size=\"20\" value=\"http://\"><br>
Sivun nimi: <input type=\"text\" name=\"nimi\" size=\"20\" value=\"\"><br>
Sivun kuvaus: <input type=\"text\" name=\"kuvaus\" size=\"20\" value=\"\"><br>
<input type=\"submit\" value=\"Lähetä\">
</form> ";
if (isset($url))
{
$tiedosto = "linkit.txt";
$fp = fopen($tiedosto, 'a');
$data = "$url|$nimi|$kuvaus\n";
fwrite ($fp, $data);
print "Linkki lisätty.";
}
?>
</body>
</html>

Toi ei kuitenkaan ole lähellekkään saman lainen mutta pääasiassa kyllä

Mod. lisäsi oikeat kooditagit

trilog [24.01.2009 09:44:08]

#

Tuohon kohtaan laitat sen vastausnappulan ylläpitäjän sivulle:

<?php
if ($rivit != 0) {
    $rivit2 = $rivit - 1;
    $i = 0;
    while ($i <= $rivit2) {
        $tulosta = explode("|", $tulostus[$i]);
        print "<b><a href=\"$tulosta[0]\">$tulosta[1]</a></b><br>$tulosta[2]<br><br><a href=\"{$tulosta[0]}?act=vastaa\">vastaa</a>";
        $i++;
    }
}
?>

Sitten teet käsittelijän $_GET['act'] -muuttujalle ja näyttelet sen mukaan vastausformin.

Tosin tuo on suunniteltu hieman huonosti, koska järkevää olisi tehdä jokaiselle tietueelle oma uniikki-ID, jonka perusteella niitä pystyisi helposti käsittelemään.
Tuossa pätkässä on käytetty myös vanhoja (huonoja) tapoja, kuten esimerkiksi register_globalsin käyttöä, joka on ollut jo PHP4 -versiosta asti oletuksena disabloituna sen haavoittuvuuden takia, kuten myös PHP_SELF.

Jaksu-Preriumzone [24.01.2009 11:03:17]

#

Unohdan koko projektin :( en vaan jaksa ku en osaa, sitten kun osaan paremmin niin jatkan.

ankzilla [24.01.2009 18:50:54]

#

Jaksu-Preriumzone kirjoitti:

Unohdan koko projektin :( en vaan jaksa ku en osaa, sitten kun osaan paremmin niin jatkan.

Ei kannata kokonaan unohtaa. ;) Pyydät vaan joltai hyvähermoselta oikeilla sanoilla apua, niin into löytyy taas. ;D

Ja lue vaikka aluksi Ohjelmointiputkan PHP-opas. ;)

Jaksu-Preriumzone [24.01.2009 20:35:04]

#

Olen lukenut sen oppaan. Nyt kuitenkin minulla on muuta tekemistä. Enkä unohda sittenkään kokonaan =)

Vastaus

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

Tietoa sivustosta