Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: PHP: Linkkilista

Sivun loppuun

snakari [27.02.2003 01:07:06]

#

Tee linkit.dat ja alueet.dat niille vaikka oikeudet 666.
Saa käyttää vapaasti, eikä tekijän nimee tarvi mainita

linkit.php

<?php
$alue="alueet.dat"; // tiedosto mihin alueet työnnetään
$link="linkit.dat"; // tiedosto minne linkit työnnetään
$otsikko="linkkilista by: snakari"; // sivun otsikko
?>
<html>
<head>
<title><?php echo $otsikko; ?></title>
<style type="text/css">
  body { font-family:verdana, arial, courier; font-size:9px; color:orange; background-color:black; }
  table { width:700; background-color:yellow; font-family:verdana, arial, courier; font-size:9px; color:orange; }
  input { font-family: verdana, arial, courier; font-size:9px; color:black; background-color:white; border-width:1px; border-color:orange; border-style:solid; }
  select { font-family: verdana, arial, courier; font-size:9px; color:black; background-color:white; border-width:1px; border-color:orange; border-style:solid; }
  .alue { background-color: red; }
  .sivun_nimi { background-color: blue; }
  .sivun_kuvaus { background-color: green; }
  A:link{color:white; text-decoration:underline; }
  A:visited{color:white; text-decoration:underline; }
  A:active{color:white; text-decoration:underline; }
  A:hover{color:white; text-decoration:none; }
</style>
</head>
<body>
<?php
$alueet=@file($alue);
$linkit=@file($link);
sort($linkit);
echo "<table border=\"0\" cellspacing=\"1\" cellpadding=\"3\">\n";
for($r=0; $r<count($linkit); $r++)
{
  $linkki=explode(">",trim(stripslashes($linkit[$r])));
  if($linkki[0]!=@$oldid)
  {
    echo "<tr>\n";
    echo "<td colspan=\"2\" class=\"alue\">". trim(stripslashes($alueet[$linkki[0]])) ."</td>\n";
    echo "</tr>\n";
  }
  echo "<tr>\n";
  echo "<td class=\"sivun_nimi\"><a href=\"$linkki[2]\">$linkki[1]</a></td>\n";
  echo "<td class=\"sivun_kuvaus\">$linkki[3]</td>\n";
  echo "</tr>\n";
  $oldid=$linkki[0];
}
echo "</table>\n";

echo "<form action=\"$PHP_SELF\" method=\"post\">\n";
echo "sivun nimi: <input type=\"text\" name=\"nimi\"><br>\n";
echo "sivun osoite: <input type=\"text\" name=\"osoite\"><br>\n";
echo "kuvaus sivusta: <input type=\"text\" name=\"kuvaus\"><br>\n";
echo "alue: ";
echo "<select name=\"alue\">";
$f=@file($alue);
for ($r=0; $r<count($f); $r++) { echo "<option value=\"$r\">". stripslashes(trim($f[$r])) ."</option>"; }
echo "</select><br>\n";
echo "<input type=\"submit\" value=\"Lisää\" name=\"lisaa\">\n";
echo "</form>\n";
if (isset($_POST['lisaa']))
{
  if ($_POST['nimi'] && $_POST['osoite'] && $_POST['kuvaus'] && $_POST['alue'])
  {
    $uusi=fopen($link, "a");
    fwrite($uusi, htmlspecialchars($_POST['alue']) .">". htmlspecialchars($_POST['nimi']) .">". htmlspecialchars($_POST['osoite']) .">". htmlspecialchars($_POST['kuvaus']) ."\n");
    fclose($uusi);
    header("Location: ". $PHP_SELF);
  }
  else { echo "<br>Täytä kaikki kohdat!<br>\n"; }
}
echo "</body>\n";
echo "</html>\n";
?>

alueet.dat

alue 1
alue 2
...

snakari [27.02.2003 01:07:33]

#

kommentteja

mikaelh [27.02.2003 01:21:29]

#

Chmod törppöjä aina vain riittää.
Riippumatta siitä, että vaikka kuinka paljon tuolla IRC-kanavalla ollaan chmodeista puhuttu, niin yhä ne asetetaan pieleen.
Chmodiksi ei tiedostolle kannata todellakaan asettaa 666, koska silloin se tarkoittaa sitä, että kaikki voivat muokata tiedostoa. 664 olisi jo paljon parempi, koska silloin muut voisivat vain lukea tiedostoa, mutta jos tiedostoa ei ole tarkoitus lukea, niin silloin muille voidaan antaa oikeudet 660.
Ryhmällä on tuossa kirjoitusoikeudet sen takia, että useimmissa php-tukea tarjoavissa kotisivupalveluissa php:lla on ryhmän oikeudet.
Vielä pieni lista noista numerokoodeista:
1 = Suoritus
2 = Kirjoitus
4 = Luku
Lukuja yhdistämällä saadaan useampia oikeuksia. Esim. 6 on kirjoitus- ja lukuoikeus.
Ensimmäinen luku tyypillisessä chmodissa on käyttäjän oikeudet, sitten on ryhmän oikeudet ja viimeisenä muiden oikeudet.

snakari [27.02.2003 01:24:51]

#

kiitos

Mv [27.02.2003 21:59:29]

#

Melko hyvä skripti. Jos pitäisi antaa pisteet 4-10, antaisin 8, koska olisi parempi, jos linkin lisäys lomake olisi sivun ylälaidassa ja sen alla linkit kategorioiden kirjanmerkkeihin, jos ymmärsit, mitä taroitin.

snakari [28.02.2003 20:05:25]

#

scripti on toiminnassa http://koti.mbnet.fi/zimos/linx.php

Rolle [16.06.2003 16:07:21]

#

hmm... eipä tuo linkki toiminutkaan http://koti.mbnet.fi/zimos/linx.php

Mira [10.02.2004 09:19:22]

#

Hieno juttu! Mutta joku kohta multa jäi ymmärtämättä... Tein tiedostot alueet.dat, linkit.dat ja alueet.php sekä tietysti tuon linkit.php:n, ja annoin niille oikeuksia, mutta en saanut toimimaan.

Sami M [02.03.2004 20:08:37]

#

Kun kokeilun tuota, niin tulee aina teksti: "Täytä kaikki kohdat" vaikka onkin täyttänyt kaikki kohdat.

Marlboroman [15.04.2004 16:38:27]

#

Apua! Missä vika tän scriptin kanssa:
Eli kun lisään linkkejä, niin herjaa jotain vastaavaa Warning: Cannot modify header information - headers already sent by... mutta kun päivitän sivun niin linkki on kyllä lisätty listaan. sitten kuiteskin se tekee välillä kahteen kertaan linkin ja heittelee noita alue numeroita kommentti kohdan perään (esim alue 2 niin laittaa 2 perään)...

Zuuzze [03.06.2004 09:25:15]

#

Mikä siinäkin on ku oon laittanu niit alueit sinne mut silti ku linkkii lisää nii ne ei näy siin valikos. :(

joni_a [30.07.2004 10:19:36]

#

Ihan kiva

cj [20.11.2004 13:41:33]

#

lainaus:

echo "</table>\n";
echo "<form action=\"$PHP_SELF\" method=\"post\">\n";
echo "sivun nimi: <input type=\"text\" name=\"nimi\"><br>\n";
echo "sivun osoite: <input type=\"text\" name=\"osoite\"><br>\n";
echo "kuvaus sivusta: <input type=\"text\" name=\"kuvaus\"><br>\n";
echo "alue: ";
echo "<select name=\"alue\">";

Tommonen kohta tossa ja käväs mielessä, et miks on kaikkien rivien alkuun laitettu echo()? Toimii samallatavalla ihan vaan yhelläkin ;)


Sivun alkuun

Vastaus

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

Tietoa sivustosta