Autor Zpráva
wise
Profil
Zdravím,

stáhnul jsem si skript ohledně posílání http požadavku postem.

<?php
//extract data from the post
extract($_POST);

//set POST variables
$url = 'http://www.page.com';
$fields = array(
						'dsss'=>urlencode("sdasd")
				);

//url-ify the data for the POST
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string,'&');

//open connection
$ch = curl_init();

//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string);

//execute post
$result = curl_exec($ch);

//close connection
curl_close($ch);
?>


Když ale po spuštění souboru s tímto kódem, tak
se stane, že mě to přesměruje na danou stránku
a vyplní se inputy hodnotama, které jsem zadal v poli $fields.

Ale žádný post se nepošle.

Má představa o funkčnosti curl v tomto případě je taková,
že např. kliknu na tlačítko a v pozadí mi to odešle post na danou
stránku, která tento požadavek přijme a zpracuje.

Nebo jak tedy funguje curl? Popř. jak se dá provést to,
co jsem zmínil výše?

Děkuji za odpověďi a rady.
FT
Profil *
Prostuduj si PHP manual ;)

tady je příklad který funguje přesně jak si představuješ

$ch = curl_init($url);

//POKUD CHCES VRATIT INFO HLAVICKU
curl_setopt ($ch, CURLOPT_HEADER, 0);

//NASTAVIS ZE CHCES ODESLAT DATA
curl_setopt($ch,CURLOPT_POST,1);

//VLOZIS JAKE DATA SE ODESILAJI METODOU POST
$var = "jmeno=xxx&heslo=xxx";
curl_setopt($ch,CURLOPT_POSTFIELDS,$vars);

//POKUD CHCES PRACOVAT S VYSLEDNOU STRANKU NASTAV NA 1
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

//DO PROMENE NACTES VYSLEDNOU STRANKU A UKONCIS CURL
$vystup = curl_exec ($ch);
curl_close ($ch);

//DALE UZ PRACUJES POUZE S PROMENOU
echo $vystup;
wise
Profil
Takže v proměnný výstup budu mít stránku, která je už zpracovaná? (nezkoušel jsem ještě)

např.
pokud by bylo
if(isset($_POST['jmeno']))
   echo "yep";



tak dostanu do $vystup stránku s yep?

Díky moc :)
kvoky
Profil
wise:
Jo, to bude fungovat. Ale je potřeba si uvědomit, že odeslání post požadavku se neděje "někde na pozadí" ale na serveru. Takže když vstoupíš přes curl na nějakou stránku, která loguje ipiny, tak se zapíše ip adresa tvýho hostingu na kterým ti ten script běží a ne tvoje jako uživatele.
wise
Profil
jj to mi hlavu nedělá :) A co spouštění pomocí ajaxu?
AM_
Profil
wise:
A co spouštění pomocí ajaxu?
co je předmětem otázky? jak otevřít stránku AJAXem? protože s cURL má AJAX pramálo společného.
wise
Profil
Měl jsem namysli, že když to vemu konkrétně, po kliknutí na tlačítko se ajaxem zavolá soubor, ve kterém je curl post.

Je to možné taky?
AM_
Profil
Pochopitelně, z hlediska PHP je úplně jedno, jestli si o něj žádá přímo prohlížeč, nebo JavaScript - PHP to vlastně ani nemá šanci spolehlivě rozeznat.
wise
Profil
díky moc pánové :)
wise
Profil
btw. jen jsem použil tento skript:

  
           $init = curl_init();
           $url = "http://www.page.com";
           $text = array("ahoj" => "člověče");
           
            curl_setopt( $init, CURLOPT_URL, $url );
            curl_setopt( $init, CURLOPT_RETURNTRANSFER, TRUE );
            curl_setopt( $init, CURLOPT_POST, 1 );
            curl_setopt( $init, CURLOPT_POSTFIELDS, $text );
            
            $exec = curl_exec( $init ); 
            echo $exec

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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