oxygen
17.12.2008 - 11:32
Привет.
Заездил гугл и засверлил клаву до дыр. Никак не выходит разрулить такую задачу:
Нужно отправить форму через CURL
HTML |
<form action="get_file.php" method="post" enctype="multipart/form-data">
<input name="name" type="text" /> <input name="email" type="text" /> <input name="foto" type="file" />
<input name="sub" type="submit" value="отправить" />
</form>
|
Причем так чтобы в get_file.php сформировались массивы $_POST и $_FILES
код get_file.php
PHP |
echo "<pre>"; print_r($_POST); echo "</pre>";
echo "<pre>"; print_r($_FILES); echo "</pre>"; |
Пробывал запустить вот такой код с использованием @ перед именем файла
PHP |
$file = $_SERVER['DOCUMENT_ROOT'].'/1.jpg'; $url = 'curl.localhost/get_file.php'; $formvars = array("cc"=>"us \n"); $formvars['name'] = "vasya"; $formvars['email'] = "mail@mail.ru"; $formvars['foto'] = "@$file"; // "@" causes cURL to send as file and not string (I believe)
// init curl handle $this->ch = curl_init($url); curl_setopt($this->ch, CURLOPT_COOKIEJAR, "my_cookies.txt"); //initiates cookie file if needed curl_setopt($this->ch, CURLOPT_COOKIEFILE, "my_cookies.txt"); // Uses cookies from previous session if exist curl_setopt($this->ch, CURLOPT_VERBOSE, 1); curl_setopt($this->ch, CURLOPT_HEADER, 1); curl_setopt($this->ch, CURLOPT_FOLLOWLOCATION,1); // follow redirects recursively curl_setopt($this->ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($this->ch, CURLOPT_POSTFIELDS, $formvars);
curl_exec ($this->ch); |
результат нулевой массивы $_POST и $_FILES не формируются. кто сталкивался с подобным или знает решение, поделитесь соображениями.
Спустя 3 часа, 41 минута, 49 секунд (17.12.2008 - 14:13) Guest написал(а):
PHP |
$passowrd= 'allala'; $name = ' test';
/curl_setopt($ch, CURLOPT_POSTFIELDS, "login?Login=".$name."&Password=".$password."action=login"); |
Спустя 1 минута, 18 секунд (17.12.2008 - 14:15) Dezigo написал(а):
guest - это я .))
всё понятно*)) стало*
Спустя 4 часа, 2 минуты, 9 секунд (17.12.2008 - 18:17) Guest написал(а):
народ, давайте без флуда. может кто нить по существу сказать?
Спустя 3 часа, 5 минут (17.12.2008 - 21:22) kirik написал(а):
oxygen, curl_setopt($this->ch, CURLOPT_POST, 1); перед curl_setopt($this->ch, CURLOPT_POSTFIELDS, $formvars); попробуй поставить
Спустя 1 год, 8 месяцев, 27 дней, 16 часов, 38 минут, 52 секунды (15.09.2010 - 13:01) Rivalryzerg написал(а):
oxygen, а отдельно POST запрос нормально проходит, без загрузки файла?
Также попробуй-то добавить CURLOPT_POST, как написал выше kirik.
_____________