Autor | Zpráva | ||
---|---|---|---|
Ondřej Strnad Profil |
#1 · Zasláno: 28. 4. 2008, 13:49:35
Dobrý den!
Viděl jsem tu dříve nějaké téma, které se týkalo toho, jak mám z formuláře uložit nějaký text do .txt. Už ale nevím kde to bylo. I hledat jsem zkoušel. Můžete prosím napsat ten odkaz, anebo přímo napsat jak se to dělá? Děkuji, Ondřej Strnad. |
||
Venca V Profil |
#2 · Zasláno: 28. 4. 2008, 13:56:52 · Upravil/a: Venca V
Co zkusit google ?
|
||
Ondřej Strnad Profil |
#3 · Zasláno: 28. 4. 2008, 14:15:18 · Upravil/a: Ondřej Strnad
Nějak to nejde. Dal jsem do index.php tam tento kód:
<form> <input type="text" name="soubor"> </form> A do text.php toto: <?php $soubor = fopen("./text.txt", "w"); fwrite($soubor, "Sem se píše obsah"); fclose($soubor); ?> Pak jsem to dal na server a vzniklo z toho to, že se mi ten text ve formuláři přesune do adresy prohlížeče. A já chtěl, aby se to uložilo do text.txt. |
||
Venca V Profil |
#4 · Zasláno: 28. 4. 2008, 14:31:59 · Upravil/a: Venca V
A já chtěl, aby se to uložilo do text.txt.
Tak musíš tu hodnotu z formuláře nějak předat:-) <? if($_GET["odeslano"]) { $soubor = fopen("./text.txt", "w"); fwrite($soubor, $_GET["soubor"]); fclose($soubor); print "Soubor změněn."; } else {?> <form action="<?print $_SERVER["PHP_SELF"]?>"> <input type="text" name="soubor"> <input type="hidden" name="odeslano" value="1"> <input type="submit"> </form> <?}?> |
||
Ondřej Strnad Profil |
#5 · Zasláno: 28. 4. 2008, 14:42:28
Bohužel Vás zase musím zklamat. Píše mi to hned tři chyby:
Warning: fopen(./text.txt) [function.fopen]: failed to open stream: Permission denied in /home/free/ic.cz/p/phpstr/root/www/zk3/index.php on line 4 Warning: fwrite(): supplied argument is not a valid stream resource in /home/free/ic.cz/p/phpstr/root/www/zk3/index.php on line 5 Warning: fclose(): supplied argument is not a valid stream resource in /home/free/ic.cz/p/phpstr/root/www/zk3/index.php on line 6 Omlouvám se, ale jsem s tím začátečník. |
||
Venca V Profil |
#6 · Zasláno: 28. 4. 2008, 14:47:34
Musíš mít u toho souboru text.txt nastavená práva pro zápis, dělá se to buď php funkcí chmod() nebo v nějakém ftp klietovi příkazem změnit atributy. Např v Total Commanderu to je Soubory>Změna atributů...
|
||
DJ Miky Profil |
#7 · Zasláno: 28. 4. 2008, 14:47:43
Musíš nastavit souboru práva pro zápis (v FTP klientovi hledej Attributes, Chmod, Permissions nebo tak něco), třeba na 0666 (tzn. povolit Write /zápis/ u skupiny Public).
|
||
Ondřej Strnad Profil |
#8 · Zasláno: 28. 4. 2008, 15:02:10
Díky moc! Už to jde!
|
||
Časová prodleva: 1 rok
|
|||
bbb Profil * |
a co kdyz mam tech formularu na strance vice? tak kdyz do nej neco napisu automaticky se ten druhy smaze nebo podle nastaveni prepise a to nechci... resim v podstate profily aniz bych pouzil databazi...
Zde mam kod: <?php $soubor = fopen("index_soubory/hraci/lib/jmeno.txt", "r"); $prvni=fgets($soubor); //prvni radek fclose($soubor); echo "Jméno: $prvni <br>"; ?> <?php $soubor1 = fopen("index_soubory/hraci/lib/prijmeni.txt", "r"); $druhy=fgets($soubor1); //prvni radek fclose($soubor1); echo "Příjmení: $druhy <br>"; ?> <!-----------------------------------------------------------------> <? if($_GET["odeslano"]) { $soubor = fopen("index_soubory/hraci/lib/jmeno.txt", "w"); fwrite($soubor, $_GET["soubor"]); fclose($soubor); print "Údaj změněn. <a href='http://www.cehlcz.ic.cz/lib.php'>Pokračovat</a>"; } else {?> <form action="<?print $_SERVER["PHP_SELF"]?>"> Jméno:<input type="text" name="soubor"> <input type="hidden" name="odeslano" value="1"> <input type="submit" value="Změnit"> </form> <?}?> <? if($_GET["odeslano"]) { $soubor1 = fopen("index_soubory/hraci/lib/prijmeni.txt", "w"); fwrite($soubor1, $_GET["soubor1"]); fclose($soubor1); print "Údaj změněn."; } else {?> <form action="<?print $_SERVER["PHP_SELF"]?>"> Příjmení:<input type="text" name="soubor1"> <input type="hidden" name="odeslano" value="2"> <input type="submit" value="Změnit"> </form> <?}?> Zkousel sem prejmenovat promenou ale to nak nepomaha... :-( nevite nekdo co stim kdyz tech formularu je tam vic? nak to zakazat nebo proste ukoncit... co prikaz die?? nepomohl by tam jako umrtveni kodu aby to nak nepokracovalo? Diky za veskere rady |
||
AM_ Profil |
#10 · Zasláno: 20. 5. 2009, 11:06:06
Musíš to nacpat do jednoho formuláře, dva formuláře najednou na stránce nedělají dobrotu. Který se má uložit můžeš kontrolovat podle názvu submitu (např <input type="submit" name="ulozprofil" value="Uložit"> ti odešle GET s klíčem ulozprofil, takže odeslání pomocí tohoto tlačítka testuješ pomocí isset($_GET['ulozprofil']);
|
||
bbb Profil * |
#11 · Zasláno: 20. 5. 2009, 17:01:51
AM_
ty sem asi nemuzes napsat jen tak zdrojak jak by to melo vypadat vid? ja sem tak trochu na php amater... snazim se neco naucit ale nak to nestiham...skola je skola a zaroven se snazim neco naucit jeste mimo... za jakejkoliv zdrojak bych byl velmi rad... aktualne sem vycerpan a nedokazu si to predstavit... resit pres mysql databazi je jeste pro me velmi slozite a tak chci vyuzit toto... |
||
bbb Profil * |
#12 · Zasláno: 20. 5. 2009, 17:32:27
tak uz to mam... teoreticky to neni uplne slouceny... stim isset mi to nefunguje a na konci nesmi byt strednik.. hazelo mi to chybu... takhle je kod kdyby se chtel nekdo inspirovat jak na to... treba nekdo resi podobnou vec :-)
<? if ($_GET['jmeno']) { $soubor = fopen("index_soubory/hraci/lib/jmeno.txt", "w"); fwrite($soubor, $_GET["soubor"]); fclose($soubor); print "Údaj změněn. <a href='http://www.cehlcz.ic.cz/lib.php'>Pokračovat</a>"; } else {?> <form action="<?print $_SERVER["PHP_SELF"]?>"> Jméno:<input type="text" name="soubor"> <input type="hidden" name="jmeno" value="1"> <input type="submit" name="jmeno" value="Změnit"> </form> <?}?> <? if GET['prijmeni']) { $soubor1 = fopen("index_soubory/hraci/lib/prijmeni.txt", "w+"); fwrite($soubor1, $_GET["soubor1"]); fclose($soubor1); print "Údaj změněn."; } else {?> <form action="<?print $_SERVER1["PHP_SELF"]?>"> Příjmení:<input type="text" name="soubor1"> <input type="hidden" name="prijmeni" value="2"> <input type="submit" name="prijmeni" value="Změnit"> </form> <?}?> co se tyka tech formularu ktery to ctou tak ty zustavaji stejne... meni se jen to co sem dal kurzivou a tucne |
||
AM_ Profil |
#13 · Zasláno: 21. 5. 2009, 09:56:52
„<?“
ne. <?php Ten kód je trochu divný, to umožňuje měnit jméno jen jednoho hráče? že tam je jméno souboru napevno... „<form action="<?print $_SERVER1["PHP_SELF"]?>">“ SERVER místo SERVER1 Proč máš u jednoho fopen mód "w" a u druhého "w+"? A stejně jsi imho tebou popisovaný problém nevyřešil, vždyť stejně se ti při každém odeslání ten formulář resetuje, ne? |
||
bbb Profil * |
#14 · Zasláno: 21. 5. 2009, 18:22:06
vyresil... kazdej uzivatel ma svuj profil a funguje to bezvadne... nic se neprepisuje
|
||
Časová prodleva: 15 let
|
0