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 *
*překlep v nadpisu: "Funkční přes Apache - na disku, ale nefunkčí po uploadu na Webzdarma.cz"
Alphard
Profil
Co vás vede k tomu, že používáte $_SERVER, ale $_POST ignorujete? Klíč pro hledání je register globals.
besy
Profil *
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
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)
besy
Profil *
<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 *
má skript povolen zápis do složky sdeleni?
snake.aas
Profil *
ještě... oddělej zavináče a uvidíš jaké chyby ti to vypíše
besy
Profil *
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
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 *
<?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
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 *
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
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"> 

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: