Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 不允许post请求-405错误_Php_Html_Post_Get_Http Status Code 401 - Fatal编程技术网

Php 不允许post请求-405错误

Php 不允许post请求-405错误,php,html,post,get,http-status-code-401,Php,Html,Post,Get,Http Status Code 401,我找到了一个脚本并对其进行了修改,希望能重新输入登录页面的内容。然而,这个页面似乎不允许我登录 使用var\u dump($\u POST)和打印($\u POST)给我一个空白数组: array(0) { } Array ( ) 所以我不知道怎么做。该网站是 这是我正在运行的代码: <?php $username = 'USERNAME'; $password = 'PASSWORD'; $loginUrl = 'https://create.kahoot.it/login';

我找到了一个脚本并对其进行了修改,希望能重新输入登录页面的内容。然而,这个页面似乎不允许我登录

使用
var\u dump($\u POST)和<代码>打印($\u POST)给我一个空白数组:

array(0) {
}

Array
(
)
所以我不知道怎么做。该网站是

这是我正在运行的代码:

<?php
$username = 'USERNAME';
$password = 'PASSWORD';
$loginUrl = 'https://create.kahoot.it/login';


//init curl
$ch = curl_init();

//Set URL 
curl_setopt($ch, CURLOPT_URL, $loginUrl);
//HTTPS
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
// ENABLE HTTP POST
curl_setopt($ch, CURLOPT_POST, 1); 
//try to echo post variables
var_dump($_POST); 
print_r($_POST);
//Set the post parameters
curl_setopt($ch, CURLOPT_POSTFIELDS, 'user='.$username.'&pass='.$password);

//Handle cookies
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');

//Setting CURLOPT_RETURNTRANSFER variable to 1 will force cURL
// to return the results as a string return value
//from curl_exec() instead of the usual true/false.
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

//login
$store = curl_exec($ch);
//put page details in file
file_put_contents("test.txt",$store);

?>

--编辑--

  • 响应标题+身份验证页面内容

  • 通过将邮递员从POST更改为GET,它返回
    {“error”:“Authentication failed”,“exception”:“Authentication failed”,“error_description”:“类型为[class no.mobitroll.core.security.shiro.tokens.SessionToken]的身份验证令牌”无法通过任何配置的域进行身份验证。请确保至少有一个域可以验证这些令牌。“,“时间戳”:1499789957919,“持续时间”:0,“错误代码”:0}


首先使用此代码并调试您的问题

$info = curl_getinfo($ch);
print_r( $info );
如果您请求HTTPS,请检查

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);

405对于不允许的方法,可能存在错误。e、 g.在只允许POST的情况下拨打GET电话,反之亦然

无论在哪里,它都不会返回任何内容。我们开始了:在卷曲结束前打印($ch)<代码>([url]=>https://create.kahoot.it/login [content\u type]=>[http\u code]=>0[header\u size]=>0[request\u size]=>0[filetime]=>0[ssl\u verify\u result]=>0[redirect\u count]=>0[total\u time]=>0[namelookup\u time]=>0[connect\u time]=>0[pretransfer\u time]=>0[size\u upload]=>0
[size\u download]=>0[speed\u download]=>0[speed\u upload]=>0[download\u content\u length]=>-1[upload\u content\u length]=>-1[starttransfer\u time]=>0[redirect\u url]=>0[primary\u-ip]=>[certinfo]=>Array()[primary\u-port]=>0[local\u-ip]=>[local_port]=>0)
如果你真的看到了表单在做什么(通过你的网络选项卡),那么当你提交表单时,它会将POST请求发送给你,而不是上面的URL——那只是包含表单的登录页。表单不必发回给自己!405意味着不允许使用方法,并且考虑到那里的URL只是一个表单,他们不允许向其发布帖子是可以理解的。当然,不能保证更改URL会起作用,他们可能有反欺骗措施,但您只能尝试。我得到了一个永久移动的
301
,但我们正朝着正确的方向前进!我所有的详细信息仍然是空的,尽管通常301响应将包含指向资源移动到的位置的链接。e、 g.
HTTP/1.1 301永久移动位置:http://www.example.org/index.asp
。浏览器会自动响应并立即请求新的URL,但cURL不会这样做。您需要提取该位置(每次都以编程方式提取,或者手动提取,然后将脚本更改为硬编码新URL)并将其发布到该位置。请参阅,以了解如何从Curl获取标题,我已使其正常工作。我需要以
application/json
的形式发布,我还需要第三个字段。