Autor Zpráva
Velda
Profil
Zdravím,
$url = 'http://pivusovo.ic.cz/new.php';
$menohrac = "menohrac=Velda";

  $header[0] = "Accept: text/xml,application/xml,application/xhtml+xml,";
  $header[0] .= "text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";
  $header[] = "Content-Type: application/x-www-form-urlencoded";
  $header[] = "Cache-Control: max-age=0";
  $header[] = "Connection: keep-alive";
  $header[] = "Keep-Alive: 300";
  $header[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7";
  $header[] = "Accept-Language: en-us,en;q=0.5";
  $header[] = "Pragma: ";

curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
curl_setopt($curl, CURLOPT_ENCODING, 'gzip,deflate');
curl_setopt($curl, CURLOPT_AUTOREFERER, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
curl_setopt($curl, CURLOPT_POST, 1 );
curl_setopt($curl, CURLOPT_POSTFIELDS, $menohrac );


tady jsou ty důležitý části kódu, ale ty proměnný z postu ne a ne získat, děkuju za jakoukoli pomoc
nightfish
Profil
chybí curl_init() a curl_exec()
Velda
Profil
to tam samozřejmě je také, html výstup to vrací..., problém je jak říkám jen s tím post
nightfish
Profil
zkuste plugin Live HTTP Headers do Firefoxu
třeba prozradí co tam curl posílá

jinak předpokládám, že ve skriptu new.php k proměnné přistupujete přes $_POST['menohrac']
Velda
Profil
ano, přesně tak; ten plugin mi asi k ničemu nebude, zachytává komunikaci server-prohlížeč, ale tady je problém u server-server
nightfish
Profil
Velda:
máte pravdu, plugin je vám v tomto případě opravdu k ničemu
u curl když všecho ostatní selže, tak zapínám CURLOPT_VERBOSE, z výpisu se dá leccos poznat

EDIT: a vlastně na straně přijímací skriptu, máte-li k němu přístup, si můžete vypsat všechny hlavičky přes getallheaders
Velda
Profil
asi jsem natvrdlej, připsal jsem tam:
$fp = fopen ("log.txt", "w");

  curl_setopt($curl, CURLOPT_VERBOSE, true);
  curl_setopt($curl, CURLOPT_STDERR, $fp);

ale to hází chybu: Warning: curl_setopt(): supplied argument is not a valid File-Handle resource právě na řádku s tím STDERR

a to 2. mi vyplivlo:
Host: pivusovo.ic.cz User-Agent: RI Mob Proxy Accept-Encoding: nogz,nodeflt Referer: http://www.memfis-times.comoj.com Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 Content-Type: application/x-www-form-urlencoded Cache-Control: max-age=0 Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Accept-Language: en-us,en;q=0.5 icnote_dbgletters: /home/free/ic.cz/p/pivusovo/root/ pi icnote_s: ic08 icnote_rt: html icnote_dr: /home/free/ic.cz/p/pivusovo/root/ (null) icnote_dbg: debug Max-Forwards: 10 X-Forwarded-For: 216.108.235.38 X-Forwarded-Host: pivusovo.ic.cz X-Forwarded-Server: fs02.ic.cz Content-Length: 0
xmtr
Profil *
curl_setopt($curl, CURLOPT_POSTFIELDS, array('nazov_premennej'=>$menohrac) );
Velda
Profil
curl_setopt($curl, CURLOPT_POSTFIELDS, array('menohrac'=>'Velda') );
pokud to myslíš takhle, tak to už jak jsem se zmiňoval mi též nefunguje :(
Velda
Profil
<?php
$url = 'http://pivusovo.ic.cz/new.php';
$menohrac = "Velda";
$fp = fopen ("log.txt", "w");

function disguise_curl($url)
{
  $curl = curl_init();

  $header[0] = "Accept: text/xml,application/xml,application/xhtml+xml,";
  $header[0] .= "text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";
  $header[] = "Content-Type: application/x-www-form-urlencoded";
  $header[] = "Cache-Control: max-age=0";
  $header[] = "Connection: keep-alive";
  $header[] = "Keep-Alive: 300";
  $header[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7";
  $header[] = "Accept-Language: en-us,en;q=0.5";
  $header[] = "Pragma: ";

  curl_setopt($curl, CURLOPT_URL, $url);
  curl_setopt($curl, CURLOPT_USERAGENT, 'RI Mob Proxy');
  curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
  curl_setopt($curl, CURLOPT_REFERER, 'http://www.memfis-times.comoj.com');
  curl_setopt($curl, CURLOPT_ENCODING, 'gzip,deflate');
  curl_setopt($curl, CURLOPT_AUTOREFERER, true);
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($curl, CURLOPT_TIMEOUT, 10);
  curl_setopt($curl, CURLOPT_POST, 1 );
  curl_setopt($curl, CURLOPT_POSTFIELDS, array('menohrac'=>'Velda') );
  curl_setopt($curl, CURLOPT_VERBOSE, true);
  curl_setopt($curl, CURLOPT_STDERR, $fp);

  $html = curl_exec($curl);
  curl_close($curl);

  return $html;
}
$text = disguise_curl($url);
fclose($fp);
echo $text;
?>

toto je celej kód, ale vbc mi nejde do hlavy, proč nefunguje zapsání do logu, ale pokud něco v tom logu už je, tak to se eště stihnout smazat stihne...
nightfish
Profil
Velda:
proč nefunguje zapsání do logu
protože vnitřek funkce nemá ponětí o tom, co znamená proměnná $fp
leda byste dal na začátek funkce
global $fp;

to stejné by se v [#1] mohlo dít s proměnnou $menohrac
doporučuji zapnout error_reporting(E_ALL)
Velda
Profil
jee díky, už mi šlape obojí, děkuji :)
Velda
Profil
omlouvám se, ale dokázal jsem bezvadně rychle narazit na další problém, na jehož vyřešení nemám dost důvtipu...
přidal jsem:
$ckfile = fopen ("cookie.txt", "w+");
global $ckfile;

  curl_setopt($curl, CURLOPT_COOKIEJAR, $ckfile);


pro tentokrát mi to hlásí: Warning: curl_setopt() [function.curl-setopt]: open_basedir restriction in effect. File() is not within the allowed path(s): (/home/:/usr/lib/php:/tmp) na řádku s COOKIEJAR, což je pro mě další nová hláška
Velda
Profil
jj, nemějte starost, už mi to docvaklo (za pomoci na icq...) :D :)
nightfish
Profil
jen tedy pro náhodné kolemjdoucí, kteří by třeba řešili stejný problém, dodám, že jako hodnota CURLOPT_COOKIEJAR se nastavuje název souboru, ne "handle"

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:

0