Linkkien tulostus toimii, mutta kun yrittää tallentaa, ei se tallenna.
Oikeudet ovat 777 sillä tekstitiedostolla.
Yritin itse 3h tuota katsoa mutta ei vain näe mitään virhettä.
Linkkilistassa on osa itsekoodattua tekstiä, osa on otettu oppaista ja muokkailtu itse.
Sanokaas nyt mikä pikkuvirhe tuolla on, kun ei vain tallenna.
linkkilista.php <?php /* Linkkilista v. 1.0 */ /* Copyright praKKA 07 */ /* Koodi osittain Mureakuhasta! */ /* Ethän kopioi koodia! */ // Muuttujat $linkit = "linkkilista.txt"; //Linkkien listaus $tt = fopen($linkit, "r"); while (!feof($tt)) { $rivi = fgets($tt, 1024); echo "$rivi"; } fclose($tt); // Lomake echo "<form action='index.php?sivu=uusilinkki' method='post'> "; echo "Sivun nimi <input type='text' name='nimi'> <br />"; echo "Sivun linkki <input type='text' size='25' name='linkki' value=http://> <br />"; echo "<input type='submit' value='Lähetä'>"; echo "</form>"; ?>
uusilinkki.php <?php $linkit = "linkkilista.txt"; //Muuttujia $linkki = $_POST['linkki']; $nimi = $_POST['nimi']; if(($linkki != "") & ($nimi != "")){ $open = fopen($linkit, "rw"); fwrite($open, "<a href='$linkki'>$nimi</a> <br>\n"); fclose($open); print "Linkin tallentaminen onnistui!<br />Sivu latautuu uudestaan 10sec kuluttua.<meta http-equiv='refresh' content='10;url=index.php?sivu=linkkilista'>"; } else { echo "Jotain puuttui tai meni muuten vain vikaan!"; } ?>
Kokeile askel kerrallaan mihin se homma kaatuu niin pääset virheen jäljille. Eli tyyliin:
<?php if(($linkki != "") & ($nimi != "")) { if ($open = fopen($linkit, "rw") { if (fwrite($open, "<a href='$linkki'>$nimi</a> <br>\n")) { print "Linkin tallentaminen onnistui!<br />Sivu latautuu uudestaan 10sec kuluttua.<meta http-equiv='refresh' content='10;url=index.php?sivu=linkkilista'>"; } else { print "Tiedostoon kirjoitus epäonnistui."; } fclose($open); } else { print "Tiedoston avaus epäonnistui"; } } else { echo "Jotain puuttui tai meni muuten vain vikaan!"; } ?>
Uskoisin että virhe on nyt tuossa vertailussa:
if(($linkki != "") & ($nimi != "")){
Joka pitäisi olla:
if(($linkki != "") && ($nimi != "")){
Virhe ei ole tossa vertailussa koska se ei toiminut ennenkään sitä.
Toi if ei toiminut, joten hoidin homman die:llä. Sillä sain haaviin:
"Kirjoittaminen tiedostoon epäonnistui!"
Mites ton voi korjata, kun kerran se on 777-varustettu.
E: JESS! Riitti kun muutti on tiedoston avausoikeuden "a+":ksi.
Kiitos avusta, enpä edes tajunnut ruveta haarukoimaan mokomaa :)
prakka kirjoitti:
/* Koodi osittain Mureakuhasta! */
/* Ethän kopioi koodia! */
Eikö tuossa oo pieni ristiriita? :P
Aihe on jo aika vanha, joten et voi enää vastata siihen.