Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Koodin jako 2 eri sivulle

Sivun loppuun

TETRIS [09.05.2003 19:09:54]

#

Kun mulla on seuraavanlainen koodi linkkilistaa varten :

<html>
<head>
<title>Linkkilista</title>
</head>
<body>
<?php
print "<h1>Linkkilista</h1>";
$tulostus = file("linkit.txt");
$rivit = count($tulostus);
if ($rivit == 0 )
{
print "Linkkilistassa ei ole yhtään linkkiä.<br><br>";
}
elseif ($rivit == 1)
{
print "Linkkilistassa on 1 linkki.<br><br>";
}
else
{
print "Linkkilistassa on $rivit linkkiä.<br><br>";
}
if ($rivit != 0)
{
$rivit2 = $rivit - 1;
$i = 0;
while ($i <= $rivit2)
{
$tulosta = explode("|", $tulostus[$i]);
print "<b><a href=\"$tulosta[0]\">$tulosta[1]</a></b><br>$tulosta[2]<br><br>";
$i++;
}
}
print "<br><br>
<b>Lisää oma linkkisi:</b><br><br>
<form method=\"post\" action=\"$PHP_SELF\">
Sivun URL: <input type=\"text\" name=\"url\" size=\"20\" value=\"http://\"><br>
Sivun nimi: <input type=\"text\" name=\"nimi\" size=\"20\" value=\"\"><br>
Sivun kuvaus: <input type=\"text\" name=\"kuvaus\" size=\"20\" value=\"\"><br>
<input type=\"submit\" value=\"Lähetä\">
</form> ";
if (isset($url))
{
$tiedosto = "linkit.txt";
$fp = fopen($tiedosto, 'a');
$data = "$url|$nimi|$kuvaus\n";
fwrite ($fp, $data);
print "Linkki lisätty.";
}
?>
</body>
</html>

ja sitten toi linkkien lisäys koodi pitäis saa tiedostoon lisaa.php että vaan sitä kautta voisi lisätä linkkejä (ja sitten linkin lisäys koodi pitäisi luonnollisesti poistaa tolta sivulta jolla linkit näytetään).

trinit [09.05.2003 21:03:26]

#

lainaus:

linkkien lisäys koodi pitäis saa tiedostoon lisaa.php

Ei kai tämä mikään vitsi ole? Siirät vain "if (isset($url))" if-lauseen sisällä olevat rivit lisaa.php tiedostoon ilman viimeistä print() lauseketta. lisaa.php sivun viimeiseksi lausekkeeksi pistät sitten sivuohjauksen sille sivulle jossa linkit näytetään, esim:

.
.
header("Location: naytalinkit.php");
?>

Tämän jälkeen muutat formin ACTION-kohdan muotoon

action = "lisaa.php"

Ei olisi ollut kovin vaikeaa keksiä tämä itsekin ;)

TETRIS [09.05.2003 22:22:24]

#

en saannut toimimaan. Mikä neuvoksi mulla on siis nyt seuraavat koodit :

***lisaa.php
<?php
if (isset($url))
{
$tiedosto = "linkit.txt";
$fp = fopen($tiedosto, 'a');
$data = "$url|$nimi|$kuvaus\n";
fwrite ($fp, $data);
.
.
header("Location: linkit.php");
?>

sitten toinen tiedosto :

***linkit.php
<html>
<head>
<title>Linkkilista</title>
</head>
<body>
<?php
print "<h1>Linkkilista</h1>";
$tulostus = file("linkit.txt");
$rivit = count($tulostus);
if ($rivit == 0 )
{
print "Linkkilistassa ei ole yhtään linkkiä.<br><br>";
}
elseif ($rivit == 1)
{
print "Linkkilistassa on 1 linkki.<br><br>";
}
else
{
print "Linkkilistassa on $rivit linkkiä.<br><br>";
}
if ($rivit != 0)
{
$rivit2 = $rivit - 1;
$i = 0;
while ($i <= $rivit2)
{
$tulosta = explode("|", $tulostus[$i]);
print "<b><a href=\"$tulosta[0]\">$tulosta[1]</a></b><br>$tulosta[2]<br><br>";
$i++;
}
}
print "<br><br>
<b>Lisää oma linkkisi:</b><br><br>
<form method=\"post\" action=\"lisaa.php\">
Sivun URL: <input type=\"text\" name=\"url\" size=\"20\" value=\"http://\"><br>
Sivun nimi: <input type=\"text\" name=\"nimi\" size=\"20\" value=\"\"><br>
Sivun kuvaus: <input type=\"text\" name=\"kuvaus\" size=\"20\" value=\"\"><br>
<input type=\"submit\" value=\"Lähetä\">
</form> ";
print "Linkki lisätty.";
}
?>
</body>
</html>

TETRIS [09.05.2003 22:29:01]

#

tosta ei sitten puutu tota vikaa <html> tagia. Taitaa olla putkassa bugi? koska muokkaus ainakin sen näyttää (ellei sitten tässä ole sanojen rajoitusta?)

mikaelh [10.05.2003 16:46:02]

#

Koodi-tagissa on jotain ihmeellistä, jonka takia ennen sitä lopettavaa tagia pitää olla vielä yksi rivinvaihto.

Antti Laaksonen [10.05.2003 18:33:00]

#

PHP-kooditagissa esiintyy välillä tuollaisia ongelmia, usein silloin, kun koodi päättyy HTML-tagiin. Väritys tulee valmiin highlight_string-funktion kautta, en tiedä mikä voisi aiheuttaa vian. Jos noin käy omassa viestissä, kannattaa käyttää muokkausta ja vaihtaa koodiphp-tagit koodi-tageiksi: sillä tavalla toimii varmasti.

TETRIS [10.05.2003 18:58:09]

#

Selvä, mutta osaako kukaan auttaa tuossa koodissa?

mikaelh [10.05.2003 19:11:20]

#

Eh.. En ole kyllä pässimpään ohjeiden noudattajaa vähään aikaan nähnyt. :D
Ensinnäkin trinit tarkoitti viestinsä koodissa niillä kahdella pisteellä sitä aikaisempaa koodia.
Ja toiseksi sitä if-lausette EI pidä laittaa enää mukaan sinne lisaa.php tiedostoon, ellet sitten halua virittää sitä lomakettakin sinne...

Tässä olisi nyt versiot molemmista, niin että lomake on yhä linkit.php:ssa:

***linkit.php
<html>
<head>
<title>Linkkilista</title>
</head>
<body>
<?php
print "<h1>Linkkilista</h1>";
$tulostus = file("linkit.txt");
$rivit = count($tulostus);
if ($rivit == 0 )
{
print "Linkkilistassa ei ole yhtään linkkiä.<br><br>";
}
elseif ($rivit == 1)
{
print "Linkkilistassa on 1 linkki.<br><br>";
}
else
{
print "Linkkilistassa on $rivit linkkiä.<br><br>";
}
if ($rivit != 0)
{
$rivit2 = $rivit - 1;
$i = 0;
while ($i <= $rivit2)
{
$tulosta = explode("|", $tulostus[$i]);
print "<b><a href=\"$tulosta[0]\">$tulosta[1]</a></b><br>$tulosta[2]<br><br>";
$i++;
}
}
print "<br><br>
<b>Lisää oma linkkisi:</b><br><br>
<form method=\"post\" action=\"lisaa.php\">
Sivun URL: <input type=\"text\" name=\"url\" size=\"20\" value=\"http://\"><br>
Sivun nimi: <input type=\"text\" name=\"nimi\" size=\"20\" value=\"\"><br>
Sivun kuvaus: <input type=\"text\" name=\"kuvaus\" size=\"20\" value=\"\"><br>
<input type=\"submit\" value=\"Lähetä\">
</form> ";
?>
</body>
</html>
***lisaa.php
<?php
$tiedosto = "linkit.txt";
$fp = fopen($tiedosto, 'a');
$data = "$url|$nimi|$kuvaus\n";
fwrite ($fp, $data);
header("Location: linkit.php");
?>

Nyt tuo linkin lisäys siis vain tapahtuu lisaa.php:n kautta, eikä tuo viritelmä edes sano, että linkki on lisätty...
Voihan senkin tietysti laittaa siihen ja sen jälkeen html:llä linkki takaisin listaan.

Ja tämä viestinkirjoitustekstilaatikko tuntuu aika ahtaalta näin pitkää viestiä kirjoittaessa. Siihen voisi jonkinlaisen ratkaisun kehittää. Voisi olla vaikka sellainen, että laatikon koko olisi käyttäjän itse päätettävissä.

trinit [10.05.2003 22:33:50]

#

lainaus:

Eh.. En ole kyllä pässimpään ohjeiden noudattajaa vähään aikaan nähnyt. :D

Joo, ei sitä ihan noin kirjaimellisesti, TETRIS, pitänyt ottaa :)

Ja mikäli se lisäys ei vieläkään toimi, niin muuta mikaelh:n antamasta lisaa.php tiedoston koodista rivi

$data = "$url|$nimi|$kuvaus\n";

muotoon

$data = "$_POST['url']|$_POST['nimi']|$_POST['kuvaus']\n";

TETRIS [10.05.2003 22:57:25]

#

Koodi kyllä toimi, mutta käsititte aivan väärin eli siis kerran vielä alusta. Mulla olisi siis linkit.php jossa lukisi kaikki linkit jotka on tiedostossa linkit.txt ja sitten lisaa.php tiedostossa olisi se linkin lisäys formi ja se koodi mikä lisää linkin. Tajusitteko nyt?

mikaelh [10.05.2003 23:18:46]

#

No linkit.php:sta (jota en kyllä enää tähän laita) otat sen formin pois ja muutat lisaa.php:n tälläiseksi:

<html>
<head>
<title>Lisää linkki</title>
</head>
<body>
<b>Lisää oma linkkisi:</b><br><br>
<form method="post" action="lisaa.php">
Sivun URL: <input type="text" name="url" size="20" value="http://"><br>
Sivun nimi: <input type="text" name="nimi" size="20" value=""><br>
Sivun kuvaus: <input type="text" name="kuvaus" size="20" value=""><br>
<input type="submit" value="Lähetä">
</form>
<?php
if (isset($url))
{
$tiedosto = "linkit.txt";
$fp = fopen($tiedosto, 'a');
$data = "${_POST["url"]}|${_POST["nimi"]}|${_POST["kuvaus"]}\n";
fwrite ($fp, $data);
print "Linkki lisätty.<br>\n";
}
?>
<a href="linkki.php">Linkkilista</a>
</body>
</html>

Edit: Tuo hyperlinkiksi muunto näyttäisi lisäävän tuon yhden rivin loppuun ylimääräisen puolipisteen.


Sivun alkuun

Vastaus

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

Tietoa sivustosta