Autor Zpráva
TrueFriend
Profil
Ahoj, neporadil by někdo, jak odeslat data z formuláře třetí straně?

Případ:
Mám formulář (index.php) a ten běžně pomocí funkcí POST odesílá data souboru (zobraz.php), ale co když bych rád uložil tento vygenerovaný soubor (zobraz.php) ???

Moje řešení:
Zkusil jsem to udělat tak, že jsem vytvořil nový soubor (filtr.php) na který jsou nasměrována data z FORMuláře, a tento soubor má za úkol uložit soubor ZOBRAZ.PHP.

Problém:
Doufal jsem, že pokud data z formuláře protečou přes jeden soubor, který s ním bude pracovat tak, že ho uloží, že uloží vygenerovanou stránku. Ale neděje se tak. Soubor (filtr.php) sice uloží soubor (zobraz.php), ale neuloží ho vygenerovaný podle formuláře, ale uloží jen holý soubor.

Čeho chci dosáhnout:
Aby bylo možné na straně serveru uložit výsledný soubor, kam byla odeslána data z formuláře, ale ve výsledném tvaru:
Uživatel z formuláře je Martin

nikoliv v základním tvaru:
Uživatel z formuláře je <? echo $jmeno;?>


Přikládám soubory:

index.php
<FORM ACTION='filtr.php' METHOD=POST name="aaa">
<TABLE>
<TR><TH align=right>Uživatel:</TH><TD><INPUT TYPE=text NAME='jmeno' VALUE='Martin'></TD></TR>
</TABLE>
<INPUT TYPE=submit NAME="Input" VALUE=' VSTUP '>
</FORM>


filtr.php
<?php
$mujcil = file_get_contents("zobraz.php");
$fa = fopen("soubor.txt", "w");
fwrite($fa, "$mujcil");
fclose($fa);
?>


zobraz.php
Uživatel z formuláře je: <? echo $jmeno;?>
djlj
Profil
A jak do zobraz.php dostáváš proměnnou $jmeno?
Anonymní
Profil *
nejsom si isty ale co takto skusit dlhsi tag, <?php echo $jmeno;?>
mozno mu php.ini nedovoluje pouzit kratsi a jednoducho to tam bachne ako text
TrueFriend
Profil
djlj
Proměnnou se tam snažím dostat:
input-form-jmeno = index.php ----> filtr.php (měl by na sobě nést hodnoty získané ze souboru index.php) ten pak uloží do souboru soubor.txt obsah souboru zobraz.php, místo aby to dělal takhle:
input-form-jmeno = index.php ----> zobraz.php kde zobrazí jen dada co získal.

Mě jde o to, aby data co se získaly v index.php uložily bez zobrazení do souboru přes jiný soubor...
Anonymní
Profil *
no povedal by som ze ti tu chyba cast kde z globalnej _POST citas data
TrueFriend
Profil
asi jo... nepomohl by někdo?
Anonymní
Profil *
mozno to bude zniet sialene ale skus:

filtr.php
<?php
$string = file_get_contents("zobraz.php");
$mujcil = eval("$string");
$fa = fopen("soubor.txt", "w");
fwrite($fa, "$mujcil");
fclose($fa);
?>

zobraz.php
echo 'Uživatel z formuláře je: $_POST["jmeno"]';

ked uz to teda riesis takto
Anonymní
Profil *
ale napadlo ma lepsie riesenie, iked je to robene na jeden riadok

filtr.php
<?php
$string = file_get_contents("zobraz.php");
$mujcil = sprintf($string, $_POST['jmeno']);
$fa = fopen("soubor.txt", "w");
fwrite($fa, "$mujcil");
fclose($fa);
?>

zobraz.php
'Uživatel z formuláře je: %s'
TrueFriend
Profil
Takhle ten script sice funguje, ale je potřeba, aby soubor zobraz.php dostal ty proměnné ve stavu proměnných.
Něco jakoby soubor filtr.php sám odelal formulářová data podruhé. Aby soubor zobraz.php nezpracoval jiný druh proměnné, ale jen metodu POST. A také je uložit v takovém stavu do soubor.txt.

Zde jsem poupravil script, aby uměl i více proměnných:
filtr.php:
<?php
$string = file_get_contents("zobraz.php");
$mujcil = sprintf($string, $_POST['jmeno'], $_POST['heslo']);
$fa = fopen("soubor.txt", "w");
fwrite($fa, "$mujcil");
fclose($fa);
?>

zobraz.php:
Uživatel z formuláře je: %s
Heslo které jste použil je: %s


Nejde nějak udělat, aby soubor filtr.php přijal POST data z index.php, potom by interně načetl zobraz.php na který by aplikoval ty data z POST, ten výsledek stránky zobraz.php by načetlo interně PHP (do sebe) nebo do nějakého odkládacího souboru (třeba TEMP) a ten by pak mohl uložit jako soubor.txt

Tohle mě jen napadlo, problém je, že jsem se ke zpracovávání TEMP ještě neměl jak dostat.

...výsedek je, aby se v souboru zobraz.php dali data poté přečíst místo %s příkazem echo $jmeno; echo $heslo; ....

Díky
djlj
Profil
Nejde nějak udělat, aby soubor filtr.php přijal POST data z index.php, potom by interně načetl zobraz.php na který by aplikoval ty data z POST
Ano, jde. Ale ne pomocí file_get_contents.
TrueFriend
Profil
aha, takže pomocí file_post_contents ?
Promiňte že jsem v tomhle lama, právě proto sem píšu, abych se v tom mohl zlepšit...
djlj
Profil
TrueFriend
Ne. Třeba include.
djlj
Profil
Ono snad existuje něco jako file_post_contents? :)
TrueFriend
Profil
file_post_contents sice neexistuje, ale napadlo mne to, když jsem si přečetl, že to jde, ale bez odpovědi čím by to mohlo jít, když ne tou funkcí file_get_contents. A vzhledem k tomu, že se tu řeší problém ohledně funkce POST a funkce GET je podobná, akorát funguje jinak, tak mne to napadlo.

Zkusím tedy include...
TrueFriend
Profil
tak jsem se pokoušel dnešní noc strávit kombinováním všech možných parametrů INCLUDE a nefunguje mi to.
Od vyhazování chyby T_STRING počínaje, až po XXX dalších chyb...

Poradil by někdo prosím?? Nebo zkusil udělat tu část scriptu, která by to uměla? filtr.php
TrueFriend
Profil
Kámoš mi poradil, žeby se to dalo řešit pomocí session, ale s tím jsem ještě nepracoval, tak neznám možnosti.
Pokud to jde tedy pomocí session, mohl by se o to někdo pokusit? Rád bych se session při té příležitosti naučil.
Toto téma je uzamčeno. Odpověď nelze zaslat.