У меня есть шлюз онлайн, который требует, чтобы HTML-форма была отправлена со скрытыми полями. Я должен сделать это с помощью Сценария PHP без любых HTML-форм (у меня есть данные для скрытых полей в DB),
Чтобы сделать эти данные отправки через, ДОБЕРИТЕСЬ:
header('Location: http://www.provider.com/process.jsp?id=12345&name=John');
И сделать эти данные отправки по почте?
Вы не можете сделать это с помощью PHP.
Как говорили другие, вы можете использовать cURL - но тогда PHP-код становится клиентом, а не браузером.
Если вы должны использовать POST, то единственным способом сделать это будет создание заполненной формы с помощью PHP и использование хука window.onload для вызова javascript для отправки формы.
C.
Вы должны открыть сокет к сайту с помощью fsockopen
и имитировать HTTP-Post-Request.
Google покажет вам много фрагментов, как имитировать запрос.
Боюсь, что для этой задачи вам понадобится CURL. Хороший простой способ сделать это здесь: http://davidwalsh.name/execute-http-post-php-curl
Hope that helps
Для этого потребуется расширение cURL PHP.
$ch = curl_init('http://www.provider.com/process.jsp');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "id=12345&name=John");
curl_setopt($ch, CURLOPT_RETURNTRANSFER , 1); // RETURN THE CONTENTS OF THE CALL
$resp = curl_exec($ch);
Используйте для этого curl. Google по запросу "curl php post", и вы найдете это: http://www.askapache.com/htaccess/sending-post-form-data-with-php-curl.html .
Обратите внимание, что вы также можете использовать массив для параметра CURLOPT_POSTFIELDS. Из документации php.net:
Полные данные для публикации в операции HTTP «POST». Чтобы опубликовать файл, добавьте к имени файла @ и используйте полный путь. Это может быть передано как строка с URL-кодом, например 'para1 = val1 & para2 = val2 & ...', или как массив с именем поля в качестве ключа и данными поля в качестве значения. Если значение является массивом, заголовок Content-Type будет установлен на multipart / form-data.