Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Daniel Vítek:

Mám tohleto http://www.itnetwork.cz/index.php?…
Jak mám udělat aby se další věc připsala na další řádek ? Není na to třeba nějaký znak ?

 
Odpovědět 29.6.2012 19:28
Avatar
Don
Člen
Avatar
Don:

Pokud jsem to správně pochopil tak \n

 
Nahoru Odpovědět 29.6.2012 20:12
Avatar
Kit
Redaktor
Avatar
Odpovídá na Daniel Vítek
Kit:

Použij raději funkci
http://www.php.net/…contents.php
s parametrem FILE_APPEND. Bude to bezpečnější. Na konec záznamu přidej znak "\n".

Nahoru Odpovědět 29.6.2012 20:14
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Avatar
Kit
Redaktor
Avatar
Kit:

Však je to tam v příkladech.

file_put_contents($file,$string."\n",FILE_APPEND | LOCK_EX);

Nemusíš ten soubor otvírat ani zavírat. Vše se udělá automaticky. Prostě se na konec souboru přidá řetězec $string.

Nahoru Odpovědět 29.6.2012 21:01
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Kit
David Čápka:

To je hezká fce. V tom PHP aby se prase vyznalo, musím zde sepsat nějaký rejstřík a to i pro sebe.

Nahoru Odpovědět 29.6.2012 21:21
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Čápka
Kit:

Na co rejstřík, když máme http://www.php.net :-)

Ta funkce je užitečná i tím, že si ten soubor po dobu zápisu zamkne. Záznamy se tak nemohou promíchat se zápisem z jiného procesu. Zároveň je jisté, že to zamknutí je skutečně jen na dobu nezbytně nutnou a ani o chvilku déle.

Nedávno jsem si takto logoval ve formátu JSON a pracovalo se s tím pak přímo skvěle.

Nahoru Odpovědět 29.6.2012 21:41
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Kit
David Čápka:

No v manuálu je hodně funkcí, třeba 10 co dělají tu samou věc. A hledat v tom, která z nich je nejlepší...

Nahoru Odpovědět 29.6.2012 21:46
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Čápka
Kit:

Zajímavé. O duplicitách moc nevím. Většinou jsou v těch funkcích alespoň drobné odchylky a některé starší jsou deprecated.

Nahoru Odpovědět 29.6.2012 21:53
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Kit
David Čápka:

Neměl jsem na mysli přesné duplicity (i když těch tam je také dost). Hlavně ty drobné odchylky, že parametrem fce A dosáhnu lepšího výsledku, než u fce B a podobně. Pak samozřejmě ty deprecated, to je taky hrůza.

Kdyby se to strukturovalo do tříd, tak by takovéhle problémy nebyly. Pořád naivně věřím, že k tomu někdy dojde. Příjemně mě překvapilo např. toto: http://php.net/…datetime.php

Nahoru Odpovědět 29.6.2012 22:06
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Čápka
Kit:

Hmm, už ty konstanty vypadají dost drsně. Tuto třídu jsem neznal.

Nahoru Odpovědět 29.6.2012 22:41
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Kit
David Čápka:

Mě se to líbí, konstanty jsou jen pro jednodušší formátování do známých formátů, funguje to stejně jako ty příšerné datetostr a podobné, jen je to zabalené ve třídě. Ve verzi 5.3 přídali např. metodu add, podívej se v příkladech, jak zrcadlí procedurální a objektový přístup, tenhle směr vývoje je docela nadějný: http://www.php.net/…time.add.php

Nahoru Odpovědět 29.6.2012 22:53
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Kit
Redaktor
Avatar
Kit:

Mně také. Ty objektové příklady mi ukázaly, že se z nich vlastně staly primitivní interpretry stringového parametru. To je velmi zajímavý přístup. Když si představím, že by každý objekt interpretoval jako příkaz nějakou podmnožinu nějakého jazyka... To už je skoro jako SQL.

Nahoru Odpovědět 29.6.2012 23:18
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Čápka
Kit:

Když se podíváš na příklad
http://www.php.net/…datetime.php#…
tak si možná vzpomeneš, jak jsme se bavili o tom, jak extrémně přetěžuji objekty. Zdá se, že nejsem sám.

Nahoru Odpovědět 30.6.2012 7:00
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Kit
David Čápka:

Jako že je tam diff místo toho, aby odečetl nějaký getter?

Nahoru Odpovědět 30.6.2012 7:19
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Čápka
Kit:

Ano. Dělám to podobně.

Nahoru Odpovědět 30.6.2012 7:22
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na Kit
Daniel Vítek:

Takže když si budu chtít udělat třeba tu diskuzi znovu s tímhle tak to udělám takto :

<form action="pridej.php" method="post">
Jméno :<input type="text" name="jmeno"><br>
Text : <inpu type="text" name="text"><br>

pridej.php

file_put_contents($diskuze,$_POST[jmeno] . "\n" . text . "\n",FILE_APPEND | LOCK_EX);

????

 
Nahoru Odpovědět 30.6.2012 9:39
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na Daniel Vítek
Daniel Vítek:

ještě jsem zapoměl

$diskuze = diskuze.txt
 
Nahoru Odpovědět 30.6.2012 9:40
Avatar
Kit
Redaktor
Avatar
Odpovídá na Daniel Vítek
Kit:

Pochopil jsi to správně, ale realizoval špatně. Použitím syrového $_POST[jmeno] si koleduješ o malér, je nutné ho ošetřit. Nejlépe přes htmlspecialchars().

Nahoru Odpovědět 30.6.2012 9:48
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na Kit
Daniel Vítek:

já na to nechci dávat nějké include atp. mě jde o ten výstup...

 
Nahoru Odpovědět 30.6.2012 9:50
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na Daniel Vítek
Daniel Vítek:

btw. v tom výstupu se to \n zobrazí ??

 
Nahoru Odpovědět 30.6.2012 9:51
Avatar
Kit
Redaktor
Avatar
Odpovídá na Daniel Vítek
Kit:

Asi jsi ještě neslyšel o XSS, že? A jak chceš potom zobrazit znaky ampersand, uvozovky, < apod?

Nahoru Odpovědět 30.6.2012 10:13
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na Kit
Daniel Vítek:

pochybuji že zrovna můj web by chtěl někdo hacknout ;) btw.dělám zálohy.. (jestli to pomůže)

 
Nahoru Odpovědět 30.6.2012 10:30
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Daniel Vítek
David Čápka:

XSS je zkratka pro Cross-site scripting. Představ si, že ti tam nějaký vtipálek vloží tento text:

</body>

Jakmile vypíšeš jeho komentář, zavře ti to stránku a dále se nic nevypíše. Proto vše před vypsáním musíš ošetřit funkcí htmlspecialchars().

Nahoru Odpovědět 30.6.2012 10:50
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na David Čápka
Daniel Vítek:

jenže já to nechci vypisovat na stránku,chci to použít pro zápis do .htpasswd - jednoduchá "registrace"

 
Nahoru Odpovědět 30.6.2012 10:54
Avatar
Kit
Redaktor
Avatar
Odpovídá na Daniel Vítek
Kit:

Tak v tom případě tam htmlspecialchars() nebude, protože to bude už ošetřeno hashovací funkcí.

Rozmysli si dobře, jestli to budeš chtít takto dělat. Není to právě spolehlivé řešení, databáze by byla lepší. .htpasswd z ní případně můžeš po změně generovat, ale většinou to není potřebné.

Nahoru Odpovědět 30.6.2012 15:46
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na Kit
Daniel Vítek:

Já chci pouze zaheslovat jednu stránku,aby tam nemohl každý,ale abych o něm aspoň něco věděl...
Už to mám hotový,jen nevím jak to odřádkovat...

 
Nahoru Odpovědět 30.6.2012 20:05
Avatar
Kit
Redaktor
Avatar
Odpovídá na Daniel Vítek
Kit:

Však odpověď jsi dostal: Přidat "\n". Pokud potřebuješ odřádkovat jako v DOSu, přidej "\r\n".

Nahoru Odpovědět 30.6.2012 20:13
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na Kit
Daniel Vítek:

rn jsem zkoušel,nefunguje

 
Nahoru Odpovědět 30.6.2012 20:15
Avatar
Kit
Redaktor
Avatar
Odpovídá na Daniel Vítek
Kit:

Funguje. Musíš to dát do uvozovek - ne do apostrofů.

Nahoru Odpovědět 30.6.2012 20:16
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na Kit
Daniel Vítek:

Ahá,já to tam čet,ale nějak jsem to při psaní vypustil.... :D pak to zkusím...napíšu ;)

 
Nahoru Odpovědět 30.6.2012 20:18
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 33 zpráv z 33.