» Poradna » Web a internet

PHP Zápis do soubou

 |   |  Microsoft Windows 10 Chrome 54.0.2840.71

Dobrý den, začínám s PHP a mam vytvořený jednoduchý formulář v HTML a přes něj posílám data do stránky s PHP prvky a zapisuji data do jiného souboru.. Odesílání mi funguje, ale stává se mi, že se odeslaná data zapíší několikrát. Nevíte, kde by mohl být problém? Díky moc

Mohlo by vás také zajímat

Odpovědi na otázku

 |   |  Microsoft Windows 7 Firefox 47.0

Dej tvůj zdroják třeba na pastebin a dej sem odkaz, ať se na to můžeme podívat.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 54.0.2840.99
 | Microsoft Windows 10 Firefox 49.0

Není problém s několikanásobným stiskem tlačítka pro odeslání? (někdo netrpělivý to udělá snadno). Ten problém jsem nedávno zkoušela řešit disablováním tlačítka "odeslat" po prvním stisku, ale na webkitu založené prohlížeče s tím mají problém (formulář se pak neodešle vůbec), takže to nakonec dopadlo jeho skrytím a nahrazením textem ve smyslu "formulář se zpracovává" a klasickým "loading" gifem (http://giphy.com/gifs/mashable-3oEjI6SIIHB... )v javascriptu na pár řádků.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Microsoft Windows 10 Firefox 49.0

Popřípadě můžeš do formuláře zařadit hidden pole s nějakým unikátním ID, které se zapíše do souboru také a pokud zjistíš že už v souboru je, nezapíšeš.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 54.0.2840.99
 | Microsoft Windows 10 Firefox 49.0

Opravdu to asi bude vícenásobným odesláním. Protože tady nějak problém nevidím. Jinak podobné věci je spíš zvykem posílat metodou POST než GET.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Microsoft Windows 10 Firefox 49.0

Jen pro úplnost: Metoda GET je ideální, pokud posíláš adresu, která by se mohla ještě v budoucnu hodit i uživateli a tobě nevadí, když ji navštíví víckrát (metodou get můžeš třeba přenášet jazyk webu vybraný kliknutím na "vlaječku", věci jako údaje z konfigurátoru vzhledu zboží v obchodě, kdy se uživatel může někomu pochlubit s tím co si vybral a tak.)Pro jakékoliv osobní údaje a jako výstup na stránku která něco ukládá / upravuje data je naopak většinou metoda GET nevhodná. Protože je to nejen všechno v URL, ale servery často požadavky GET logují (POST v defaultním nastavení snad nikdy). Tady je to na hraně, ale průšvih ve chvíli kdy bys GETem posílal heslo si jistě dovedeš představit :)

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 54.0.2840.99

Dobre :) Děkuji moc za radu, zacinam s PHP, takze si kazde rady vazim :)

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Microsoft Windows 7 Firefox 50.0

A máš nastavená správná práva? Aby si měl povolený zápis ve složce a souborech. Klasika 0777.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Microsoft Windows 10 Firefox 49.0

Já tedy nevím, adminku Linuxových serverů jsem dělala jenom asi 8 let, ale že by se do souboru zapisovalo dvakrát kvůli špatným právům, to jsem ještě neviděla :D

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Microsoft Windows 10 Firefox 49.0

Teď teprv koukám, prve mi to nedošlo, protože jsem tvou odpověď jen přeletěla jako nesmysl, ale...Jsi naprostý blázen? 7 pro soubor, který se nemá spouštět? (7 je rwx - read, write, execute. Pro soubor kam se jen ukládají data se nastavuje zásadně 6)A proč ta poslední 7? Poslední čislo určuje práva "pro všechny", čtení a zápis uživateli, případně skupině bohatě stačí. Tady by to mělo být 660 (čtení + zápis uživatele a skupiny) nebo možná ještě 664 pokud je to žádoucí (čtení + zápis uživatele a skupiny, čtení pro všechny)

Souhlasím  |  Nesouhlasím  |  Odpovědět

Související témata: Jednoduchý formulář