Ku mulla on seuraavanlainen linkin lisäys koodi:
<form method="post" action="a_linkki.php"> Sivun URL : <input type="text" name="url" size="50" value="http://" style="background-color: #2850A0; font-family: Verdana; color: #c0c0c0; font-size: 12px; border: 1 solid #000000"><br> Sivun nimi : <input type="text" name="nimi" size="31" value="" style="background-color: #2850A0; font-family: Verdana; color: #c0c0c0; font-size: 12px; border: 1 solid #000000"><br> Sivun kuvaus : <input type="text" name="kuvaus" size="45" value="" style="background-color: #2850A0; font-family: Verdana; color: #c0c0c0; font-size: 12px; border: 1 solid #000000"><br> <input type="submit" value="Lisää" style="background-color: #2850A0; font-family: Verdana; color: #c0c0c0; font-size: 12px; border: 1 solid #000000"> </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"; } ?>
niin ja jos tiedostossa on linkki http://testi1 ja lisää sinne linkin http://testi2 se tulee tällee oudosti :
http://testi1|Testi|testi testihttp://testi2|Testi2|testi 2 testi 2
eli se ei tee tyhjää riviä ton testi1 linkin jälkeen. Siis mitä tohon pitäis lisätä että se toimis tyyliin :
http://testi1|Testi|testi testi http://testi2|Testi2|testi2 testi2
koitappa näin:
$data = $_POST['url']."|".$_POST['nimi']."|".$_POST['kuvaus']."\n";
niin ja riippuu ihan miten tuon aiot tulostaa.. ehkä myös
tuonne "
\n" <- tuo.
Onnistuu se näinkin:
Kannattaa muuten käyttää erottimena jotain harvinaisempaa merkkiä kuin |, koska ilmeisesti kyseessähän on scripti jonka avulla kuka vaan saa lähetettyä tietoa. | merkin käyttö pitää vähintääkin blockata.
Ja kun lennossa antaa lisätä linkkejä, kannattaa tutustua myös strip_tags-funktioon. Nyt tuohon pystyy lisäämään helposti kivaa php-koodia jolla voi tehdä kivaa tuhoa, tai mukavaa javascriptiä joka avaa sata popup-ikkunaa aikuisviihdesivustoille.
Eh! ei toikaan toiminu. Edelleenkään se ei lisää sitä uudelle riville.... niin ja se lisäys scripti on kyllä adminissa eli tuskin ylläpito sekoaa täysin ja tekee sellasta :)
Et ainakaan sulje lopuksi tiedostoa?
fclose($tiedosto);
$data = "${_POST["url"]}|${_POST["nimi"]}|${_POST["kuvaus"]}\n";
tämmöiseksi
$data = "${_POST["url"]}|${_POST["nimi"]}|${_POST["kuvaus"]}<br>\n";
jos nyt oikein katselin tuota.. niin luulisi toimivan..tierä sitten.
Kokeile tyhjätä tiedosto ihan kokonaan tai lisää viimeisen rivin jälkeen manuaalisesti rivinvaihto. Itselläni tuo kikka auttoi kun viekussani oli samankaltaisia ongelmia. Ja kannattaa vaihtaa \n tilalle \r\n niin tiedosto rivittyy *nix, windows ja mac-ympäristöissä oikein.
minulla ainakin toimii tuo helppo
\n juttu..
joo hyvä toi rivinvaihto toimi. Se kyllä edelleen tallentaa väärin, mutta nyt tulostaa sen oikein :)
samii: Tuon skriptin tarkoituksena ei ollut kirjoittaa suoraan niitä tiedostoja HTML-tiedostoon, vaan tallentaa ne johonkin tiedostoon, josta skripti sitten lukee ne ja vasta silloin tekee sen HTML-sivun.
Eli ei mitään järkeä tuota <br>:ää laittaa tuonne.
Ja myöskään sen tiedoston sulkeminen ei vaikuttaisi mitenkään, sillä PHP joka tapauskessa sulkisi sen skriptin suorituksen päätyttyä.
Tuo Tetriksen ensimmäinen skripti on varmaan ollut ihan toimiva, mutta Tetris ei ole vain tajunnut, että Windows käyttää rivinvaihtona \r\n yhdistelmää. Esim. Muistio näyttää pelkän \n merkin mustana laatikkona.
lainaus:
samii: Tuon skriptin tarkoituksena ei ollut kirjoittaa suoraan niitä tiedostoja HTML-tiedostoon, vaan tallentaa ne johonkin tiedostoon, josta skripti sitten lukee ne ja vasta silloin tekee sen HTML-sivun.
Eli ei mitään järkeä tuota <br>:ää laittaa tuonne.
Ai juu joo. :) Tuo oli muuten toimivan näköinen minkä tuo TETRIS laittoi niin pitihän jotain "vikaa" siinä sitten olla..:P.Voisin myös lukea vielä tarkemmin. Ja itselläni muistio ei näytä, että olisi tiedostossa:
Rivi1
Rivi2
kun käyttää tuota \n, vaan yhteen pötköön, mutta sitten muut kyllä näyttävät tuolla tavalla.. :D heh.
Aihe on jo aika vanha, joten et voi enää vastata siihen.