Nevite nekdo, jak by se dala vyresit nasledujici vec. Mam jednu stranku, do ktere potrebuju vlozit aktualni kurzovni listek. Ten jsem nekde objevil, ale problem je, ze php skript, ktery ten kurzovni listek generuje, funguje spravne jen tehdy, kdyz jsou mu metodou post predana nejaka data (konkretne je to kod meny). Pokud ty parametry odeslu pres get, tak se mi vrati misto aktualniho kurzu "krasne" upozorneni, ze skript neobdrzel ocekavane parametry.
A chcu se teda zeptat, jestli nekdo nevite, jak by se dal primo za chodu meho php skriptu zavolat php skript s tema kurzama tak, ze bych z jeho vystupu ziskal kurz a ten vlozil do html kodu.
Napsal bych sem adresu toho skriptu, ale mam ji ulozenou v poste a postovni server zrovna nejak nereaguje.
Budu rad za kazdou radu, protoze ja uz se s tim trapim par dni a neudelal jsem ani nejmensi pokrok.
Ty ziskane kurzy pak pouzivam jako parametry pro java applet, tak me jeste napada, ze by si applet ty kurzy mohl nacist sam. Ze by je nemusel zjistovat muj php, ale ze by applet simuloval odesilani formulare pomoci post a pak by zobrazil vysledek, ktery mu prisel. Ale tady taky vubec nevim jak na to. To me napadlo az behem psani tohoto prispevku.
Tak jeste jednou opakuju, ze budu rad za kazdou radu. Diky
Takže ty chceš vyvolat odeslání formuláře post, aby si nemusel ni mačkát?
Melo by to jit pomoci javascriptu..
No tak nejak. Ale ne pres java skript atd. Potrebuju, aby se to stalo behem behu php skriptu, at uzivatelni prijde primo stranka i s kurzem.
Kdyz to reknu jinak, tak potrebuju, aby se ten "formular" odesilal ze serveru, kde mam php, ne aby se volal na strane klienta. Tam jedine pres ten applet.
"Formular" pisu v uvozovkach, protoze ja chci pokazdne odeslat ta sama data. Akorat je musim odeslat pres post, ne pres get.
Tak to nejde.. odeslat post data pres php by slo pres fsockopen(), ale ta je zakazana..
Aha. A nevis aspon, jak by se to resilo s fsockopen()? Pro me je to docela dulezite, kdyztak bych si ty stranky hodil na nejaky placeny hosting, ktery by tohle podporoval.
No to neni zrovna jednoduchy.. Musis vlastne komplet rucne otevrit spojeni na server a rucne mu predat postdata.. Jak presne nevim, ale najdes to ve specifikaci HTTP protokolu..
Ja uz se na to divam. Mockrat diky. Akorat mam jeste problem najit nekde prehledne popsany HTTP protokol, ale to uz je jen otazkou casu. Diky, moc jsi mi pomohl. O fsockopen() jsem se nejak nikdy nezajimal, takze jsem vubec nevedel, co umi. Ted uz si s tim snad poradim
<HTML>kdybys hledal na foru "fsockopen" a precetl si co o tom psal master nasel bys muj priklad:
$query = "ahoj=test&bubu=test2";
$fp = fsockopen ("www.domena.cz", 80, $errno, $errstr, 5);
if (!$fp) {
echo "$errstr ($errno)\n";
return 0;
}
else {
fputs($fp, "POST /script.php HTTP/1.0\r\n");
fputs($fp, "Referer: www.domena.cz\r\n");
fputs($fp, "Content-Length: ".strlen($query)."\r\n");
fputs($fp, "Content-Type: application/x-www-form-urlencoded; text/html; charset=iso-8859-2\r\n");
fputs($fp, "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\r\n");
fputs($fp, "Host: www.domena.cz\r\n\r\n");
fputs($fp, "$query\r\n\r\n");
while (!feof($fp)) $dat = fread($fp,60000);
fclose ($fp);
ale kdyz jsi liny co se da delat</HTML>
Ano, to je vesmes ono, ja jsem akorat linej momentalne hledat neco, co zrovna nepotrebuju.. User agenta i Referera muzes klidne vypustit, neni to nezbytny.. Pokud z nejakeho duvodu bude toto provedeni trvat dlouho, tak muzes zkusit snizit posledni parametr funkce fsockopen() (timeout), lze zadat i desetinne cislo, muzes i pouzit protokol http 1.1 misto 1.0..
Ještě jsem nezkoušel, jak je to tady nakonfigurovaný, ale když přijímáš data z POST, hledej je v $_POST['promenna'], data z GET hledej v $_GET['promenna'], z COOKIES zase v $_COOKIES['promenna'] a tak dál a tak dál...
No a podívej se na <http://interval.cz/clanek.asp?article=930> (Kurňa, jde tady dělat klikací odkazy?, jak?), třeba ti to k něčemu bude, teď sem dělal něco podobnýho, chce to jen trochu upravit... (Doufám, že to tu byude fungovat:-))
<HTML>zajimave ...
odpovedet na otazku ktera je rovnou v nadpisu:
Odeslani dat metodou POST
metodou:
když přijímáš data z POST, hledej je v $_POST
:)</HTML>
<body onload="document.formular.submit();">
misto formluar dej nazev formuláře :)
<HTML><i><body onload="document.formular.submit();">
misto formluar dej nazev formuláře :)</i>
ach jo :-/
vis kde zkonci vystup? ja bych to rekl ale nehodi se to...</HTML>