Potrzebuje wypelnic na stronie serwisu, do ktorego kodow nie mam dostepu, formularz, ktory ma pare pol typu INPUT oraz 5 pol pod obrazki.
Kod wyglada mniej wiecej tak:
$dane['zdjecie1'] = '@/sciezka/do/pliku.jpg'; $dane['zdjecie2'] = '@/sciezka/do/pliku2.jpg'; $ch = curl_init(); curl_setopt($ch,CURLOPT_URL, "http://www.jednadomena.cos/"); curl_setopt($ch,CURLOPT_POST,1); curl_setopt($ch,CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.202 Safari/535.1"); curl_setopt($ch,CURLOPT_HEADER, 1); curl_setopt($ch,CURLOPT_COOKIEFILE,ROOT_TMPPATH.'/cookies.txt'); curl_setopt($ch,CURLOPT_COOKIEJAR, ROOT_TMPPATH.'/cookies.txt'); curl_setopt($ch,CURLOPT_POSTFIELDS,$dane); curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch,CURLOPT_REFERER, 'http://www.jakasdomena.cos/"); $result = curl_exec($ch); curl_close($ch);
To ladnie dzialalo do zeszlego miesiaca. Rezultat jest taki:
1) Jezeli serwer to APACHE to wszystko jest OK i prosty kod na stronie <? print_r($_FILES); ?> zwroci ci trzeba. Testowalem to u siebie.
2) Jezeli serwer to LIGHTTPD to nie bedzie dzialalo. Serwer zwroci blad HTTP 1/1: 417 ;( pomaga dodanie do powyzszego:
3) Jezeli serwer to cos z litespeed, to formularz wyslany dotrze tylko czesciowo. To co ma pojsc przez $_POST bedzie OK, to co bedzie wyslane przez $_FILES to nie przejdzie
Wlasnie w moim wypadku wystepuje przypadek nr 3. Jak podkreslam wczesniej to dzialalo. Nie wiem co sie stalo ze teraz nie dziala. $result wraca strone bez zadnych bledow. Skrypt uruchamiam w trybie CLI. Sciezki oczywiscie istnieja, pliki tez i maja prawa jak trzeba.
Co do wersji:
cURL support => enabled
cURL Information => 7.21.0
Age => 3
Features
AsynchDNS => No
Debug => No
GSS-Negotiate => Yes
IDN => Yes
IPv6 => Yes
Largefile => Yes
NTLM => Yes
SPNEGO => No
SSL => Yes
SSPI => No
krb4 => No
libz => Yes
CharConv => No
Protocols => dict, file, ftp, ftps, http, https, imap, imaps, ldap, ldaps, pop3, pop3s, rtsp, scp, sftp, smtp, smtps, telnet, tftp
Host => x86_64-pc-linux-gnu
SSL Version => OpenSSL/0.9.8o
ZLib Version => 1.2.3.4
libSSH Version => libssh2/1.2.6
a PHP to 5.3.3
Co wiec tu jest zle ze do 3) nie wysyla zdjec ?