PHP odkaz fwrite

Programovacie jazyky, rady, poradňa...
rajce112
Light Expert
Light Expert
Príspevky: 53
Registrovaný: 21 jún 2012, 13:13

PHP odkaz fwrite

Príspevok od používateľa rajce112 »

Zdravím potreboval by som pomôcť. Potreboval by som na web spraviť úplne primitívny systém bez databáze kde sa budú písať nejaké komentáre. Stačí nejaký FORM tam dám Meno a Komentár. a php fwrite fopen

ale problém je taký potrebujem aby mi hneď ako kliknem na formulár ODOSLAŤ tak mi tam ten komentár hneď zobrazí... a zapíše do txt file napriklad
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: PHP odkaz fwrite

Príspevok od používateľa BX »

Najjednoduchšie čo môžeš urobiť je odpoveď uložiť a refreshnúť stránku. Formu dáš do action nejaké "save_comment.php", tam komentár uložíš a na koniec skriptu dáš header('Location: stranka_s_komentarmi');
rajce112
Light Expert
Light Expert
Príspevky: 53
Registrovaný: 21 jún 2012, 13:13

Re: PHP odkaz fwrite

Príspevok od používateľa rajce112 »

Zdravím no už mi to funguje už potrebujem len poslednú vec. Zobrazenie tých komentárov mám štýlom

Kód: Vybrať všetko

div id="komentare">
<b>Odkazy</b>
<pre>
<?php include("komenty.txt"); ?>
</pre>
</div>

a potrebujem aby som mohol obmedziť hranice toho vypísania lebo teraz pišem dlhy koment a je cez celú stranku
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: PHP odkaz fwrite

Príspevok od používateľa BX »

Najrozumnejšie je kontrolovať maximálnu dĺžku komentu pri odosielaní.
Ak by si tam chcel niečo ako tlačítko "zobraziť celý", tak by si to veru takto zobrazovať nemohol. Prípadne mohol, pri vhodnej štruktúre súboru komenty.txt. Tú ale nepoznáme, takže ťažko radiť.
Každopádne to ale určite nerob cez include, prečo to robíš cez include?
rajce112
Light Expert
Light Expert
Príspevky: 53
Registrovaný: 21 jún 2012, 13:13

Re: PHP odkaz fwrite

Príspevok od používateľa rajce112 »

Tak mi môžeš prosim poradiť ako to dať inač ?
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: PHP odkaz fwrite

Príspevok od používateľa BX »

Ťažko, keď neviem ani čo chceš, ani neviem, ako tie komenty ukladáš (ako vyzerá súbor komenty.txt)
Pokiaľ ide o to include, použi radšej funkciu file_get_contents a z vkladaných komentov minimálne odstráň tagy (napr. funkciou strip_tags), inak ti tam budem môcť vložiť veci, ktoré tam určite nechceš.
rajce112
Light Expert
Light Expert
Príspevky: 53
Registrovaný: 21 jún 2012, 13:13

Re: PHP odkaz fwrite

Príspevok od používateľa rajce112 »

Proste potrebujem aby mi udaje ktore su uložene v textovom subore (uložia sa tam po zadaní komentára do formulára html) zobrazili na stránke napr v nejakom dive a aby som si cez width height obmedzil velkost okna v ktorom sa budu zobrazovať . no a ak už bude komentarov tolko že presiahnu div tak sa zobrazi ta posuvacia lišta a budu nižšie ak to posuniem
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: PHP odkaz fwrite

Príspevok od používateľa BX »

Divu s komentármi pridaj do css

Kód: Vybrať všetko

overflow-y: auto;
Napr takto:

Kód: Vybrať všetko

<div style="width:300px; height:200px; overflow-y: auto"> vela textu </div>
Ak chceš aj skrolovanie do strany aj hore-dolu, použi len overflow: auto; Ak chceš scrollbar viditeľný vždy (keď nebude treba, bude neaktívny), použi overflow: scroll;
rajce112
Light Expert
Light Expert
Príspevky: 53
Registrovaný: 21 jún 2012, 13:13

Re: PHP odkaz fwrite

Príspevok od používateľa rajce112 »

Jj vdaka ide to no ešte si spomínal obmedzenie znakov ale mna by zaujimalo da sa obmedzit počet znakov v riadku ? napr dlhy text ale rozdeli na riadky
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: PHP odkaz fwrite

Príspevok od používateľa BX »

To vie vyriešiť div style="width...
rajce112
Light Expert
Light Expert
Príspevky: 53
Registrovaný: 21 jún 2012, 13:13

Re: PHP odkaz fwrite

Príspevok od používateľa rajce112 »

jj a ešte poslednu vec ako spravit to aby som si oddelil Meno a Odkaz od Dalsieho Mena a odkazu medzerou ?

Kód: Vybrať všetko

$subor = "komenty.txt";
$meno = $_POST['meno'];
$odkaz = $_POST['odkaz'];
$fp = fopen($subor, "a");
$data = "Meno: " .$meno. "<br> Odkaz: " .$odkaz. "<br>";
if($fp){
fwrite($fp,$data);

fclose($fp); 
}
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: PHP odkaz fwrite

Príspevok od používateľa BX »

No tak ale toto už je trochu moc. Snáď nie je ťažké naformátovať si data tak, ako chceš.
Len si si istý, že to chceš oddelovať medzerou? Ako potom budeš z toho veďieť, kde končí odkaz a začína meno? Nijako.
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: PHP odkaz fwrite

Príspevok od používateľa audiotrack »

ono to nebude oddelené medzerou, ale reťazcom "<br> Meno: " :)
ale súhlasím, je to na hovno
Everhard
Light Expert
Light Expert
Príspevky: 79
Registrovaný: 25 dec 2010, 14:41

Re: PHP odkaz fwrite

Príspevok od používateľa Everhard »

rajce112 napísal:Jj vdaka ide to no ešte si spomínal obmedzenie znakov ale mna by zaujimalo da sa obmedzit počet znakov v riadku ? napr dlhy text ale rozdeli na riadky
pre TXT si vymysli napriklad strukturu, kde znak | ti bude oddelovat jednotlive parametre komentara ako datum,meno,text,ip. a || ti bude oddelovat jednotlive komentare.

nove komentare ukladaj cez fopen(), fputs():

Kód: Vybrať všetko

$subor  = "text.txt";   // SÚBOR, KAM SA BUDE DOPÍSAŤ/PREPÍSAŤ
$text = "Bla bla bla.\n";   // TEXT, KTORÝ CHCEŠ DOPÍSAŤ/PREPÍSAŤ
// DOPISAT K SUBORU (NA KONIEC)
$file = fopen($subor, "a");
fputs($file, $text);
fclose($file);
pred ulozenim do TXT osetri tagy, apostrofy a podobne, aby ti tam niekto nevytvoril komentare ako <h1>bububu</h1>. zakaz znak | (resp ho odober zo vstupov), zakaz zariadkovanie, alebo si ten znak zariadkovania zmen na nejaky svoj retazec, a pri vypise to premenis na zariadkovanie.
tiez si pozri funkciu wordwrap() na skratenie maximalnej dlzky slova. tiez skrat vsetky vstupy na tvoju pozaduvanu maximalnu dlzku.

pri vypise neincluduj subor. ale nacitaj si cely subor cez fopen() do stringu:

Kód: Vybrať všetko

$subor = "text.txt";
$file = fopen($subor, "r");
$vypis = fread($file, filesize($subor));
fclose($file);
echo "$vypis\n";
vypisuj po riadkoch, pouzi funkciu explode(), ktory ti rozdeli subor v stringu do polia, oddelovac pouzijes ||.
(array_reverse() na to pole ak chces vypisanie odkonca)
potom cyklom vypises to pole, a v cykle este porozdelujes jednotlive komentare po oddelovaci |.

poznamka. celkom dobre je vediet, ked sa ides hrat s TXT : "Types of Text Line Breaks - Line breaks in text are generally represented in three ways as either \r\n or as \n or \r. The first type of line break (\r\n) is usually created on a windows computer, the second (\n) on Linux and the third kind of line break (\r) on an Apple computer." // http://www.textfixer.com/tutorials/java ... breaks.php
Napísať odpoveď