Другие дали довольно хорошие ответы, насколько "стандарты" идут, но я просто хотел добавить это... Действительно ли возможно, что "Пользователь" (или "Пользователи") не являются на самом деле полным описанием данных, сохраненных в таблице? Не то, чтобы необходимо стать слишком сумасшедшими с именами таблиц и спецификой, но возможно что-то как "Widget_Users" (где "Виджет" является названием приложения или веб-сайта) было бы более соответствующим.
Использование:
$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 , чтобы убедиться, что это аутентификация (и тогда вы также сможете скопировать строку авторизации!).
Вот функция, которую я использую для выполнения запросов 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);