Autor | Zpráva | ||
---|---|---|---|
besy Profil * |
Zdravím,
nevíte proč mi nejde tohle na mých stránkách na webzdarma.cz, ale normálně na disku mi to funguje? <html><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <body> <style> textarea {width:245px; height:140px; border: 1px solid #838383; padding: 2px; } input {margin:2px; padding:2;} </style> <?php $loadcontent = "sdeleni/soubor.txt"; if($save_file) { $savecontent = stripslashes($savecontent); $fp = @fopen($loadcontent, "w"); if ($fp) { fwrite($fp, $savecontent); fclose($fp); } } $fp = @fopen($loadcontent, "r"); $loadcontent = fread($fp, filesize($loadcontent)); $loadcontent = htmlspecialchars($loadcontent); fclose($fp); ?> <form method=post action="<?=$_SERVER['PHP_SELF']?>"> <textarea name="savecontent"><?=$loadcontent?></textarea> <br> <input type="submit" name="save_file" value="Uložit"> </form> </body> </html> Díky za odpověď. |
||
besy Profil * |
#2 · Zasláno: 29. 1. 2011, 20:57:06
*překlep v nadpisu: "Funkční přes Apache - na disku, ale nefunkčí po uploadu na Webzdarma.cz"
|
||
Alphard Profil |
#3 · Zasláno: 29. 1. 2011, 21:00:11
Co vás vede k tomu, že používáte $_SERVER, ale $_POST ignorujete? Klíč pro hledání je register globals.
|
||
besy Profil * |
#4 · Zasláno: 29. 1. 2011, 21:08:39
Tohle je stáhlý skript s minimální úpravou, takže tvé reakci zatím nerozumím. Ale díky, až se to PHP víc naučím, snad mi tvá rada pomůže.
|
||
Alphard Profil |
#5 · Zasláno: 30. 1. 2011, 01:03:05
besy:
„až se to PHP víc naučím, snad mi tvá rada pomůže“ Psal jsem ji takhle proto, aby pomohla hned s učením. Hledáním toho, co jsem vám poradil, nešlo minout výsledky. Konkrétně Nejčastější potíže s PHP (FAQ) |
||
Časová prodleva: 12 dní
|
|||
besy Profil * |
#6 · Zasláno: 10. 2. 2011, 17:45:13
<form method=post action="<?=$_SERVER['PHP_SELF']?>"> <textarea name="savecontent"><?=$_POST['loadcontent']?></textarea> <br> <input type="submit" name="save_file" value="Uložit"> </form> Upravil jsem to s tím POST, ale stále to nefunguje. Teď to ani nenačte ten soubor. Omlouvám se, že Vám přidávám práci. Díky. |
||
snake.aas Profil * |
#7 · Zasláno: 10. 2. 2011, 19:15:27
má skript povolen zápis do složky sdeleni?
|
||
snake.aas Profil * |
#8 · Zasláno: 10. 2. 2011, 19:16:39
ještě... oddělej zavináče a uvidíš jaké chyby ti to vypíše
|
||
besy Profil * |
#9 · Zasláno: 10. 2. 2011, 19:26:22
Nevím, proč by neměl mít povoleno. Na Webzdarma to fungovalo v pořádku (úplně s tím původním kódem - jen to házelo chyby, když to bylo prázdné), teď jsem prešel k Wedosu a nejde to.
Když umažu @, tak po přepsani té textarey a uložení, se to vrátí k původnímu obsahu (beze změny) |
||
jenikkozak Profil |
#10 · Zasláno: 10. 2. 2011, 19:31:21 · Upravil/a: jenikkozak
besy:
Podmínka na řádku 12 nemůže být splněna. (Proto to ani nevypíše chybovou hlášku, vypsalo by to teoreticky upozornění, ale to bývá vypnuté.) Důvod, proč se ta podmínka nemůže splnit, je popsán v tom odkazu, který přidal Alphard. |
||
besy Profil * |
#11 · Zasláno: 10. 2. 2011, 19:50:44
<?php $loadcontent = "data.inc"; if($save_file) { $savecontent = stripslashes($savecontent); $fp = $_GET['loadcontent, "w"']; if ($fp) { $_POST['fp, savecontent']; fclose($fp); } } $fp = @fopen($loadcontent, "r"); $loadcontent = fread($fp, filesize($loadcontent)); $loadcontent = htmlspecialchars($loadcontent); fclose($fp); ?> <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> <textarea name="savecontent"><?php echo $_POST['loadcontent']; ?></textarea> <br> <input type="submit" name="save_file" value="Uložit"> </form> Už vážně nevím, co tam mám nahradit. Nemohli byste mi napsat rovnou ten zdrojový kód? Z příkladu se to nejlépe naučím. Díky. |
||
jenikkozak Profil |
#12 · Zasláno: 10. 2. 2011, 20:01:48 · Upravil/a: jenikkozak
Cituji tu nápovědu: „K hodnotě vstupního pole s názvem „nazev“ se dříve přistupovalo přes proměnnou $nazev. Z bezpečnostních důvodů je dnes tato možnost na většině serverů zakázaná.
K hodnotám zaslaným metodou POST lze přistupovat přes $_POST['nazev'], metodou GET přes $_GET['nazev']. K proměnným z cookies přes pole $_COOKIE. Případně lze využít pole $_REQUEST, ve kterém jsou všechny proměnné zaslané metodou GET, POST i v cookies. (...)“ Už chápeš? Vyhledej si všechny dvě proměnné, které ti vznikají odesláním formuláře, a nahraď je výpisem položky pole $_POST. (A to nahrazení udělej pořádně, ve výše uvedeném skriptu máš chyby.) |
||
besy Profil * |
#13 · Zasláno: 10. 2. 2011, 20:54:01
Ty dve promene jsou podle mě Loadcontent a save_file, tudiž bude kód:
<?php $loadcontent = "data.inc"; if($_POST['save_file']) { $savecontent = stripslashes($savecontent); $fp = @fopen($loadcontent, "w"); if ($fp) { fwrite($fp, $savecontent); fclose($fp); } } $fp = @fopen($loadcontent, "r"); $loadcontent = fread($fp, $_POST['loadcontent']); $loadcontent = htmlspecialchars($loadcontent); fclose($fp); ?> <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> <textarea name="savecontent"><?php echo $_POST['loadcontent']; ?></textarea> <br> <input type="submit" name="save_file" value="Uložit"> </form> Prosím, už si vážne nevím rady. Nenapíšeš přímo do toho kódu? |
||
Davex Profil |
#14 · Zasláno: 10. 2. 2011, 22:25:06
besy:
„Ty dve promene jsou podle mě Loadcontent a save_file“ Kdepak, orientuj se podle atributu name a dej si pozor na to, že proměnná vzniká po první deklaraci.
<textarea name="savecontent"> <input type="submit" name="save_file" value="Uložit"> |
||
Časová prodleva: 13 let
|
0