ФОРМА проблемы Запрос POST От PHP, использующего Базовую аутентификацию HTTP

Другие дали довольно хорошие ответы, насколько "стандарты" идут, но я просто хотел добавить это... Действительно ли возможно, что "Пользователь" (или "Пользователи") не являются на самом деле полным описанием данных, сохраненных в таблице? Не то, чтобы необходимо стать слишком сумасшедшими с именами таблиц и спецификой, но возможно что-то как "Widget_Users" (где "Виджет" является названием приложения или веб-сайта) было бы более соответствующим.

10
задан David Christiansen 29 July 2009 в 08:24
поделиться

2 ответа

Использование:

$header = "POST /someendpoint HTTP/1.1\r\n".
        "Host:example.com\n".
        "Content-Type: application/x-www-form-urlencoded\r\n".
        "User-Agent: PHP-Code\r\n".
        "Content-Length: " . strlen($req) . "\r\n".
        "Authorization: Basic ".base64_encode($username.':'.$password)."\r\n".
        "Connection: close\r\n\r\n";

Должно работать - вы уверены, что это обычная система аутентификации? Возможно, стоит просмотреть необработанные данные заголовка, используя что-то вроде CharlesProxy , чтобы убедиться, что это аутентификация (и тогда вы также сможете скопировать строку авторизации!).

4
ответ дан 4 December 2019 в 04:53
поделиться

Вот функция, которую я использую для выполнения запросов POST. Надеюсь, он сможет делать то, что вы хотите:

function http_post($server, $port, $url, $vars) {

// get urlencoded vesion of $vars array 
$urlencoded = ""; 

foreach ($vars as $Index => $Value) 
    $urlencoded .= urlencode($Index ) . "=" . urlencode($Value) . "&"; 

$urlencoded = substr($urlencoded,0,-1);  

$headers = "POST $url HTTP/1.0\r\n" 
. "Content-Type: application/x-www-form-urlencoded\r\n" 
. "Content-Length: ". strlen($urlencoded) . "\r\n\r\n"; 

$fp = fsockopen($server, $port, $errno, $errstr, 10); 
if (!$fp) return "ERROR: fsockopen failed.\r\nError no: $errno - $errstr"; 

fputs($fp, $headers); 
fputs($fp, $urlencoded); 

$ret = ""; 
while (!feof($fp)) $ret .= fgets($fp, 1024); 

fclose($fp); 
return $ret; }

А вот пример того, как я использую его для пересылки переменных POST в API

$response = http_post("www.nochex.com", 80, "/nochex.dll/apc/apc", $_POST); 
-3
ответ дан 4 December 2019 в 04:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: