Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Linkkijärjestelmässä ongelmia

Juice [14.07.2004 19:11:42]

#

Kyhäsin tässä tänään about puoli tuntia tällaista linkkijärjestelmää enkä keksi, että mikä on vikana, kun kaikki linkit tallentuvat tekniikka.txt:iin, eivätkä aihepiirien mukaisiin tekstitiedostoihin, kuten pitäisi.

***adminarea.php
<form action="linkit.php" method="post">
Osoite:<br>
<input type="text" name="url" style="border: 1px solid black"><br>
Linkkiteksti:<br>
<input type="text" name="linkkiteksti" style="border: 1px solid black"><br>
<input type="checkbox" name="suora">Suora koodi:<input type="text" name="koodi">
Osio:
<input type="radio" name="osio" value="muu">Muu
<input type="radio" name="osio" value="musa">Musiikki
<input type="radio" name="osio" value="mopo">Mopot
<input type="radio" name="osio" value="tekniikka">Tekniikka<br>
<input type="submit" value="lähetä" style="border: 1px solid black">
</form>
***linkit.php (katkottu epäolennaiset)
<?php
$osio = $_POST['osio'];
$koodi = $_POST['koodi'];
$suora = $_POST['suora'];
$url = $_POST['url'];
$linkkiteksti = $_POST['linkkiteksti'];

     	if($suora) {
	$tieto = $koodi;
	}

	else {

           // Linkki kootaan
          $linkki = "<a href=\"http://".$url."\">".$linkkiteksti."</a><br>";
		}


          if($linkki) {

                 // Kirjoitetaan linkki tiedoston alkuun.
               $tieto = "$linkki";
	}

	if ($osio = "tekniikka") {
		$filu = file("tekniikka.txt");
               $filu[0] = "\n".$tieto."\n";

               $liitos = implode("", $filu);
               $save = fopen("tekniikka.txt", "w");
		}
	elseif ($osio = "mopo") {
		$filu = file("mopo.txt");
               $filu[0] = "\n".$tieto."\n";

               $liitos = implode("", $filu);
               $save = fopen("mopo.txt", "w");
		}
	elseif ($osio = "musa") {
		$filu = file("musa.txt");
               $filu[0] = "\n".$tieto."\n";

               $liitos = implode("", $filu);
               $save = fopen("musa.txt", "w");
		}
	else
	{

               $filu = file("linkit.txt");
               $filu[0] = "\n".$tieto."\n";

               $liitos = implode("", $filu);
               $save = fopen("linkit.txt", "w");
		}





               fwrite($save, $liitos);
               fclose($save);
               echo $osio;
?>

Nyntti [14.07.2004 19:58:17]

#

<?php
// ....
 if ($osio = "tekniikka") {
// ....
?>

Silmään sattui ainakin, että olet käyttänyt ehdoissa vain yhtä =-merkkiä; vrt. $osio == "tekniikka".

Juice [14.07.2004 20:04:33]

#

Aloittelijoiden virheitä, katsos... Nyt toimii.

Nyntti [14.07.2004 20:23:23]

#

Älä yritä mitään liian vaikeaa, jos aloittelet.

Juice [14.07.2004 21:52:23]

#

Joo tiedetään, eikä tuo ole edes niin vaikea.

tsuriga [14.07.2004 22:16:40]

#

Eipä niin ja pitäähän sitä tehdä kaikenlaista, jotta oppii. Tuo koko if-elseif -säätö hoituisi suoraan $osio-muuttujaa käyttämällä filun avauksessa:

<?php
if (empty($osio)) $osio="linkit";

$filu = @file($osio."txt");
$filu[0] = "\n".$tieto."\n";
$liitos = implode("", $filu);
$save = fopen($osio.".txt", "w");
fwrite($save,$liitos);
fclose($save);
?>

Muuttujan ympärille ei ole tarkoitus laittaa hipsuja yleensäkään. Vaikeahkon näköiset on myös sisennykset. Vaikeahkon näköisesti hoidetaan myös tiedostoon kirjoitus.

Juice [15.07.2004 19:10:57]

#

No, sisennykset ovat vaikeat, koska se on mun vaikea tyylini+notepad+selainikkuna :P. Parantelin tota tänään about tunnin ja nykyään siinä on keksi-sisäänkirjautumiset ja kaksi tiedostoa ja se on vakaamman oloinen. Arvasin kyllä, että jonkinlainen tuollainen tapa on olemassa, mutta PHP:tä opiskellut olen vasta kaksi kuukautta... meneehän suomenkin täydelliseen opiskeluun koko elinikä :P

Vastaus

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

Tietoa sivustosta