Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Ongelmia linkkilistan kanssa

Juuso [24.08.2005 00:27:51]

#

Kehittelin itseäni varten hyvin yksinkertaista linkkilistaa, jossa linkit olisi listattuna ja numeroituna. Linkit ovat tallennettu tiedostoon ja aina skriptin saadessa post-dataa, lisätään post-datassa oleva url tiedoston perään. Idea oli hieno, mutta toteutus ei pelaa.

Ongelmat:
1) Linkkilistassa on jatkuvasti vain viimeiseksi lisätty linkki
2) Ohjelman tuloste tulostaa toiseksi linkiksi skriptin osoitteen

Suorittettava koodi on seuraava:

<?php
if(isset($_POST['url']))
{
	$_POST['url']=$url;
	if(preg_match("/^http:\/\//",$url))
	{
	//url kelvollinen, etsitään datatiedosto. tässä vaiheessa lisätään vain rivi tiedoston loppuun
	//linkit sijaitsevat alla olevassa tiedostossa
		$tiedosto = "linkit.txt";
		if(file_exists($tiedosto)) //jos tiedosto on olemassa jatketaan
		{
			$kahva = fopen($tiedosto,"w"); //avataan tiedosto kirjoitusta varten
			fwrite($kahva, $url."\n"); //kirjoitetaan tiedostoon url
			fclose($kahva);//suljetaan tiedosto
			header("location: http://koti.mbnet.fi/juspi/urlnappari/laddare.php"); //palataan ilman post-dataa
		}
		else //jos tiedostoa ei löydy, herjataan
		{
			echo "Tiedostoa ei löydy";
		}
	} // jos url ei ole kelvollinen, herjataan
	else
	{
	echo "url ei kelvollinen";
	}

}
else
{
//jos POST-dataa ei ole määritelty avataan tiedosto taulukkoon ja käydään taulukko läpi yksitellen ja luodaan linkkilista jossa linkit on numeroitu
		$tiedostoarray = file("linkit.txt");
		for($i=0; $i<=count($tiedostoarray); $i++)
		{
			echo '<a href="'.$tiedostoarray[$i].'">'.($i+1).". linkki</a><br>";
		}
}
 ?>

Osaisiko joku auttaa ongelmieni ratkaisussa. Kiitos.

ajv [24.08.2005 00:45:36]

#

$kahva = fopen($tiedosto,"w");
Avaat tiedoston write-moodiin, joka tyhjentää tiedoston avauksen yhteydessä. Vaihda w-moodi a-moodin, eli append-moodiin.

Juuso [24.08.2005 00:51:30]

#

Kappas, olipas hölmö hirve. Nyt toimii mutta tulee vielä tuo skriptin osoite viimeiksi mutta ei se mitään haittaa :)

kayttaja-2791 [24.08.2005 00:55:09]

#

Ongelma 2, käyt forilla läpi yhden ylimääräisen silmukan. Tässä tapauksessa ensin arvolla 0, sitten arvolla 1 (jota ei ole olemassa). Eli muuta muotoon

for($i=0; $i < count($tiedostoarray); $i++)

Vastaus

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

Tietoa sivustosta