Black Friday je tu! Využij jedinečnou příležitost a získej až 80 % znalostí navíc zdarma! Více zde
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
BF extended 2022

Diskuze: Logování do souboru...

Aktivity
Avatar
Neaktivní uživatel:29.6.2012 19:28

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
Neaktivní uživatelský účet
Avatar
Don
Člen
Avatar
Don:29.6.2012 20:12

Pokud jsem to správně pochopil tak \n

 
Nahoru Odpovědět
29.6.2012 20:12
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
Kit:29.6.2012 20:14

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
Odpovídá na Kit
Neaktivní uživatel:29.6.2012 20:22

.....jak ? :D

Nahoru Odpovědět
29.6.2012 20:22
Neaktivní uživatelský účet
Avatar
Kit
Tvůrce
Avatar
Kit:29.6.2012 21:01

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:29.6.2012 21:21

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
One of the most common causes of failure is the habit of quitting when one is overtaken by temporary defeat.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Čápka
Kit:29.6.2012 21:41

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:29.6.2012 21:46

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
One of the most common causes of failure is the habit of quitting when one is overtaken by temporary defeat.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Čápka
Kit:29.6.2012 21:53

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:29.6.2012 22:06

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
One of the most common causes of failure is the habit of quitting when one is overtaken by temporary defeat.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Čápka
Kit:29.6.2012 22:41

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:29.6.2012 22:53

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
One of the most common causes of failure is the habit of quitting when one is overtaken by temporary defeat.
Avatar
Kit
Tvůrce
Avatar
Kit:29.6.2012 23:18

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
Tvůrce
Avatar
Odpovídá na David Čápka
Kit:30.6.2012 7:00

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:30.6.2012 7:19

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

Nahoru Odpovědět
30.6.2012 7:19
One of the most common causes of failure is the habit of quitting when one is overtaken by temporary defeat.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Čápka
Kit:30.6.2012 7:22

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
Odpovídá na Kit
Neaktivní uživatel:30.6.2012 9:39

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
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Neaktivní uživatel:30.6.2012 9:40

ještě jsem zapoměl

$diskuze = diskuze.txt
Nahoru Odpovědět
30.6.2012 9:40
Neaktivní uživatelský účet
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
Kit:30.6.2012 9:48

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
Odpovídá na Kit
Neaktivní uživatel:30.6.2012 9:50

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
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Neaktivní uživatel:30.6.2012 9:51

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

Nahoru Odpovědět
30.6.2012 9:51
Neaktivní uživatelský účet
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
Kit:30.6.2012 10:13

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
Nahoru Odpovědět
30.6.2012 10:29
Neaktivní uživatelský účet
Avatar
Odpovídá na Kit
Neaktivní uživatel:30.6.2012 10:30

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
Neaktivní uživatelský účet
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Neaktivní uživatel
David Čápka:30.6.2012 10:50

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
One of the most common causes of failure is the habit of quitting when one is overtaken by temporary defeat.
Avatar
Odpovídá na David Čápka
Neaktivní uživatel:30.6.2012 10:54

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
Neaktivní uživatelský účet
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
Kit:30.6.2012 15:46

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
Odpovídá na Kit
Neaktivní uživatel:30.6.2012 20:05

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
Neaktivní uživatelský účet
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
Kit:30.6.2012 20:13

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
Odpovídá na Kit
Neaktivní uživatel:30.6.2012 20:15

rn jsem zkoušel,nefunguje

Nahoru Odpovědět
30.6.2012 20:15
Neaktivní uživatelský účet
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
Kit:30.6.2012 20:16

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
Odpovídá na Kit
Neaktivní uživatel:30.6.2012 20:18

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
Neaktivní uživatelský účet
Avatar
Nahoru Odpovědět
3.7.2012 20:17
Neaktivní uživatelský účet
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.