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 ...
kommentteja
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.
kiitos
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.
scripti on toiminnassa http://koti.mbnet.fi/zimos/linx.php
hmm... eipä tuo linkki toiminutkaan http://koti.mbnet.fi/zimos/linx.php
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.
Kun kokeilun tuota, niin tulee aina teksti: "Täytä kaikki kohdat" vaikka onkin täyttänyt kaikki kohdat.
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)...
Mikä siinäkin on ku oon laittanu niit alueit sinne mut silti ku linkkii lisää nii ne ei näy siin valikos. :(
Ihan kiva
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 ;)
Aihe on jo aika vanha, joten et voi enää vastata siihen.