Как получить и сохранить имя пользователя CURL с помощью PHP

#php #json #curl

#php #json #curl

Вопрос:

У меня есть команда:

  curl -k -u **username:password** --request POST -H "Content-Type:application/json" -d "{"name":"John","age":"31","test":"New York"}" http://siteteste.com/receive.php
  

Я хочу получить имя пользователя и пароль на стороне сервера с помощью PHP.
Я использую метод POST.

Мой PHP:

 <?php
  // Only allow POST requests

    ***// I want the username and password here with PHP POST.***

   ***$user = $_POST[""]; //  Not working :(***

   if (strtoupper($_SERVER['REQUEST_METHOD']) != 'POST') {
      throw new Exception('Only POST requests are allowed');
    }

    // Make sure Content-Type is application/json 
   $content_type = isset($_SERVER['CONTENT_TYPE']) ? $_SERVER['CONTENT_TYPE'] : '';
    if (stripos($content_type, 'application/json') === false) {
     throw new Exception('Content-Type must be application/json');
     }

     // Read the input stream
      $body = file_get_contents("php://input");

     // Decode the JSON object
     $object = json_decode($body, true);

        // Throw an exception if decoding failed
           if (!is_array($object)) {
             throw new Exception('Failed to decode JSON object');
           }

         // Display the object
          $getit = $object['test'];

          print $getit;
  

Как я могу это сделать?

Я пытаюсь, но не получается.

Я ищу StackOverflow и другие сайты, но не нашел информации о

Ответ №1:

Ваше тело закодировано в json.

Вы получите свои данные здесь:

 $body = file_get_contents("php://input");

// Decode the JSON object
$object = json_decode($body, true);

var_dump($object); // <-- do this to view your data.
  

-u Опция, которую вы используете, используется для аутентификации. Например, для http-аутентификации.

Если вы хотите добавить данные, вам нужно изменить свой -d параметр. Например, здесь я добавил пользователя:

-d "{"name":"John","age":"31","test":"New York","user":"test-user"}"

Или в другом случае вы действительно хотите использовать http-аутентификацию с использованием данных:

  • $_SERVER['PHP_AUTH_USER']
  • $_SERVER['PHP_AUTH_PW']