Onde obter informações sobre campos de matriz em $ _REQUEST?

Eu apenas comecei a aprender PHP e a fazer coisas com o WordPress e estou um pouco confuso sobre informações no Codex. Foi dito que o Codex obteve todas as informações que eu precisava, mas fiquei preso com isso.

Quais os campos da matriz em $_REQUEST no WordPress? Não pode encontrá-lo no Codex.

Por exemplo: as pessoas usam $my_contact = $_REQUEST['contact'];
Como eles sabem que $_REQUEST tem campo 'contact' ?

Existe algum stream de trabalho para encontrar informações sobre variables ​​que não estão descritas no Codex? Devo imprimir toda a matriz para ver quais campos estão dentro?

O Google não me ajuda … sobre $ _REQUEST.

Solutions Collecting From Web of "Onde obter informações sobre campos de matriz em $ _REQUEST?"

Este é principalmente PHP puro, mas ele tem torção do WordPress.

O PHP possui várias variables superglobal , que contêm informações relevantes para a solicitação atual. Fora daqueles:

  • $_GET contém informações de URL (pedido HTTP GET)
  • $_POST informações do envio de formulário (solicitação HTTP POST)
  • $_COOKIES sobre cookies set
  • e $_REQUEST é uma combinação do acima (de acordo com docs $_COOKIES pode ser comumente configurado para ignorar para obter uma melhor segurança)

No entanto WP impõe sua própria lógica – durante o processo de carregamento wp_magic_quotes() processa variables ​​para emular configuração de citações mágicas e impõe $_REQUEST para conter combinação de $_GET e $_POST , independentemente da configuração do PHP.

Então, no ambiente WordPress, irá conter dados de solicitação GET e / ou POST. O que exatamente os dados dependerá da página em que você está e o que está acontecendo nela.

Apenas uma nota sobre $_REQUEST : sempre que você vê isso em um código, você sabe que está escrito por um iniciante. Como o @Rarst explicou que é uma combinação de múltiplas fonts. Mas por que alguém deveria querer processar dados que deveriam ser enviados por POST somente se eles realmente forem enviados por GET?

Não aceita dados de um stream de input que você não declarou anteriormente. Use $_GET se desejar GET e $_POST se desejar POST. Nada mais.

Para acessar os dados POSTed sem a intervenção do WordPress, use a input do stream de input php://input .
Então, em vez de …

 // already changed by WordPress when you get it $data = $_POST; 

… usar …

 // Doesn't work with 'enctype="multipart/form-data"' $data = file_get_contents( 'php://input' ); 

E não se esqueça da validação de dados .

Você mencionou a impressão da matriz, então você pode saber como fazer isso já. Você pode ver todos os elementos de uma matriz em PHP executando print_r($_REQUEST); . Isso lhe daria a informação exata de cada página com access de $ _REQUEST.

Embora a ressalva aqui seja que cada página pode ter chaves diferentes definidas. Além disso, pode ser benéfico escrever isso em um arquivo de registro temporário, dependendo se você estiver em produção. Você não gostaria que seus visitantes vejassem esse resultado.

Eu precisava apenas para o teste. Fez como você recomendou, escreveu todos os arquivos em um arquivo, usou hook ‘comment_post’ para garantir que $ _REQUEST tenha dados logo após a publicação de um comentário.

 function rj_comment() { // sprint_r as print_r function sprint_r($var) { ob_start(); print_r($var); $output=ob_get_contents(); ob_end_clean(); return $output; } global $_REQUEST; $stringData = sprint_r($_REQUEST); $myFile = "c:/s_request_fiels.txt"; #file name $fh = fopen($myFile, 'w') or die("can't open file"); fwrite($fh, $stringData); fclose($fh); }; add_action ('comment_post','rj_comment');