<?php // Älä tulosta tätä funktiota ennen yhtään mitään! // Jopa yksi tulostettu merkki, vaikkapa välilyönti // aiheuttaa scriptin toimimattomuuden. // Myöskään <?php -tagia ennen ei saa laittaa // mitään HTML-koodia tai tekstiä. ob_start(); ///////////////////////////////////////////// // Yksinkertainen linkkilista by T.M. www.HC-Codes.net // Saa muokata vapaasti, kunhan tämä tekstilaatikko säilyy. ///////////////////////////////////////////// function karsi_url($url){ $url = strtolower($url); // Kaikki merkit pieniksi $url = str_replace("www.", "", $url); // Poistetaan www. $url = str_replace("koti.", "", $url); // ... $url = str_replace("home.", "", $url); // ... // Poistetaan kaikki muut merkit paitsi aakkoset ja numerot: $url = preg_replace("/[^a-z0-9]/", "", $url); return $url; } // Muuttujat helpommin käsiteltävään muotoon: $act = $_GET['act']; $do = $_GET['do']; $SELF = basename($_SERVER['SCRIPT_URI']); // Pelkkä tiedoston nimi // Tiedosto taulukkoon, jossa on linkit ja muu data: $linkit = file("linkkitiedosto.txt"); $max = count($linkit); if($act == "addlink"){ print"<A HREF=\"$SELF\">Takaisin</A>"; // Muuttujat helpommin käsiteltävään muotoon: $k_nimi = $_POST['k_nimi']; $k_osoite = $_POST['k_osoite']; $k_kuvaus = $_POST['k_kuvaus']; // Lisätään http:// linkin alkuun, jos sitä ei löytynyt sieltä: if(substr($k_osoite, 0, 7) != "http://") $k_osoite = "http://$k_osoite"; print"<FORM METHOD=\"POST\" ACTION=\"?act=addlink&do=add\">"; print"Sivun nimi: <INPUT TYPE=\"text\" NAME=\"k_nimi\" value=\"$k_nimi\"><br>"; print"Sivun osoite: <INPUT TYPE=\"text\" NAME=\"k_osoite\" value=\"$k_osoite\"><br>"; print"Kuvaus sivustosta: <INPUT TYPE=\"text\" NAME=\"k_kuvaus\" value=\"$k_kuvaus\"><br>"; print"<INPUT TYPE=\"submit\" value=\"Lähetä\">"; print"</FORM>"; if($do == "add"){ // Virheet sisältävä taulukko tyhjäksi: $error = array(); // Käydään linkkitiedosto läpi: foreach($linkit as $linkki){ $osa = explode("<>", $linkki); // Verrataan kahta osoitetta toisiinsa karsi_url() funktion avulla: if(karsi_url($osa[0]) == karsi_url($k_osoite)){ $error['osoite'] = "Antamasi sivusto on jo listalla, url: $osa[0]"; break; } } $k_nimi = trim($k_nimi); // Poistaa välilyönnit ym tekstin alusta ja lopusta. $k_nimi = stripslashes($k_nimi); // Muuttaa \" ym muunnokset takaisin " muotoon. $k_nimi = htmlspecialchars($k_nimi); // Ei sallita HTML:ää. $k_osoite = trim($k_osoite); $k_osoite = stripslashes($k_osoite); $k_osoite = htmlspecialchars($k_osoite); $k_kuvaus = trim($k_kuvaus); $k_kuvaus = stripslashes($k_kuvaus); $k_kuvaus = htmlspecialchars($k_kuvaus); // Tarkistetaan onko annettu tyhjiä tekstikenttiä, jos on, ilmoitetaan virheestä: if($k_nimi == "") $error['nimi'] = "Kirjoita sivustosi nimi"; if($k_osoite == "" || $k_osoite == "http://") $error['osoite'] = "Kirjoita sivustosi osoite"; if($k_kuvaus == "") $error['k_kuvaus'] = "Kirjoita sivustosi kuvaus"; if($error){ // Jos error taulukko ei ollut tyhjä: $ers = count($error); print"<B>$ers</B> virhettä huomattiin:<br>"; // Käydään kaikki virheet läpi: foreach($error as $rivi){ print"<li>$rivi<br>"; } print"Ole hyvä ja korjaa virheet."; }else{ // Jos virheitä ei löytynyt, eli error taulukko oli tyhjä: $aika = time(); // tämänhetkinen UNIX aikaleima $data = "$k_osoite<>$k_nimi<>$k_kuvaus<>$aika<>"; // Korvataan kaikki mahdolliset rivinvaihdot välilyönneiksi (ettei tiedosto mene sekaisin): $data = str_replace(array("\r\n", "\n", "\r"), " ", $data); // Avataan tiedosto siten, että sen loppuun lisätään tallennettava data (a=append): $save = fopen("linkkitiedosto.txt", "a"); fwrite($save, $data."\n"); // Tallennetaan data tiedostoon, ja lisätään loppuun rivinvaihto fclose($save); header("Location: $SELF"); // Siirrytään takaisin linkkilista sivulle. } } } if($act == ""){ print"<A HREF=\"?act=addlink\">Lisää linkki</A><br><hr>"; if($max > 0){ print"Yhteensä $max linkkiä, (uusin ensimmäisenä)."; }else{ print"Ei vielä yhtään linkkiä, <A HREF=\"?act=addlink\">lisää</A> omasi!"; } print"<br><BR>"; print"<TABLE border=\"1\" style=\"font:12px verdana\" width=\"600\">"; // Käydään linkit läpi viimeisestä ($max-1) ensimmäiseen (0): for($u = $max-1; $u >= 0; $u--){ $osa = explode("<>", $linkit[$u]); $paivays = date("j.n.Y - H:i:s", $osa[3]); print"<TR>"; print" <TD valign=\"top\"><A HREF=\"$osa[0]\">$osa[1]</A></TD>"; print" <TD valign=\"top\" width=\"400\">$osa[2]<p style=\"font:9px verdana; color:#888888; margin:0\" align=\"right\">Lisätty: $paivays</p></TD>"; print"</TR>"; } print"</TABLE>"; } ob_end_flush(); ?>
Aihe on jo aika vanha, joten et voi enää vastata siihen.