Intereting Posts
codeigniter – использование помощника в контроллере не работает Почему эти Heredoc и Nowdoc вызывают ошибки? Нет запятой после последнего элемента в массиве? Laravel5.1: проверять поле времени (время начала должно быть больше конечного времени) Здесь он работает из WHILE. Внутри это не работает, почему? SQL-инъекции в ADOdb и общая безопасность веб-сайта Загрузка файла PHP, файлы, исчезающие из / tmp перед move_uploaded_files Почему мои переменные выходят из сферы действия? PHP PHP – альтернатива Filter_var? Требуется очистить буфер в Node.js? Если да, то как? Если нет, то в чем проблема? Twig: добавление элемента в массив из встроенного шаблона Как я могу заставить YAML игнорировать необработанный HTML в том же файле Чтение данных из fsockopen с использованием fgets / fread hangs Как переписать URL-адрес, используя htaccess, когда добавить пользовательское имя качалки в URL-адрес читать метаданные свойства объекта Doctrine

CURL + Передача переменных $ _POST / array

У меня есть следующая ситуация:

if(isset($_POST['thisvalue'])) { $username = $_POST['username']; $passwd = $_POST['passwd']; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'http://www.domain.com/scripts/curl/index_general.php' ); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true ); curl_setopt($ch, CURLOPT_POST, true ); curl_setopt($ch, CURLOPT_REFERER, 'http://www.domain.com.au' ); curl_setopt($ch, CURLOPT_POSTFIELDS, "body goes here" ); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/plain')); $result = curl_exec($ch); curl_close($ch); echo $result; 

Я могу «http://www.domain.com/scripts/curl/index_general.php» вернуть значение.

Мне нужно знать лучший способ завершить линию: curl_setopt ($ ch, CURLOPT_POSTFIELDS, «тело идет здесь»);

Как отправить имя пользователя / пароль. У меня будет другое время, когда мне нужно отправить больше данных, поэтому я предполагаю (и из моего чтения, что массив лучше всего) …

В настоящее время мои данные передаются из JQUERY / HTML … как мне затем преобразовать эти данные в массив и CURL в целевой домен?

спасибо

На мой взгляд, лучший способ (безопасный) метод для передачи имени пользователя и пароля как HTTP HEADER AUTHENTICATION WITH CURL.

 if(isset($_POST['thisvalue'])) { $username = $_POST['username']; $passwd = $_POST['passwd']; $data = array('serialno' => '12345'); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'http://www.domain.com/scripts/curl/index_general.php'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true ); curl_setopt($ch, CURLOPT_POST, true ); curl_setopt($ch, CURLOPT_USERPWD,'username:password'); // set your username and password curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); curl_setopt($ch, CURLOPT_REFERER,'http://www.domain.com.au'); curl_setopt($ch, CURLOPT_POSTFIELDS,$data); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/plain')); $result = curl_exec($ch); curl_close($ch); echo $result; } 

В index_general.php

вы можете получить доступ к имени пользователя и паролю http как

 $_SERVER['PHP_AUTH_USER'] and $_SERVER['PHP_AUTH_PW'] 

Попробуй это:

 curl_setopt($ch, CURLOPT_POSTFIELDS, array('username' => $_POST['username'], 'passwd' => $_POST['passwd'])); 

Если вы хотите получить быстрый ответ на заголовок «CURL + Passing $ _POST variables / array», и вам не нужно беспокоиться о конфиденциальных данных, вы можете попробовать следующее:

 $post_fields = ''; foreach ( $_POST as $a => $b ) { $post_fields .= $a.'='.$b.'&'; } $post_fields = substr( $post_fields, 0, -1 ); curl_setopt( $ch, CURLOPT_POSTFIELDS, $post_fields ); 

Тогда вам не нужно вручную перечислять любые возможные поля POST.