2

スクリプト用のログイン システムを作成しようとしていますが、ある時点で行き詰っています。

私がする必要があるのは、彼が login.php (server1) で送信したユーザーのログイン詳細をバックエンド スクリプトのログイン システム verify.php(server2) に POST することです。verify.php は POST データを使用してログイン情報を検証し、実際に設定します。バックエンド システムの Cookie およびその他すべてのもの。

server2 で 3 番目の部分のスクリプトを使用しているため、あまり変更できません。server1 から server2 に直接 HTML FORM POST を実行すると (action=verify.php リンクを使用)、ログイン全体が機能します。

しかし、さまざまな理由とセキュリティ上の理由から、追加のコードを実行するだけでなく、curl またはその他の方法でログインを POST する必要があります。

ログイン情報が正しく、ログイン機能が server2 で機能したというステータスをログに表示できるため、ログイン システムは機能していますが、何らかの理由で (おそらく curl が原因で)、Cookie がユーザーの PC に設定/保存されていないため、ユーザーがserver2のURLにアクセスしても、私が設定した「ログインが必要です」というエラーメッセージがまだ表示されるため、そのlogin.phpファイルを介してautologgedinを取得していません。

これは私の login.php コード (server1) で、$hostname は server2 (verify.php) へのリンクです。

$data['username']=$username;
$data['pass']=$pass;

//open connection
    $ch = curl_init();

    //set the url, number of POST vars, POST data
    curl_setopt($ch,CURLOPT_URL, $hostname);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

    curl_setopt($ch,CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
    curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch,CURLOPT_PROXY, $proxy);
    curl_setopt($ch,CURLOPT_COOKIEJAR, "cookie.txt");
    curl_setopt($ch,CURLOPT_COOKIEFILE, "cookie.txt");
//curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
    //execute post
    $result = curl_exec($ch);

    print_r(curl_error($ch));
    print_r(curl_getinfo($ch));
    print_r(curl_errno($ch));

    //close connection
    curl_close($ch);

これがcurlレスポンスです

Trying to login with *user* and *pass* Var check username password
 SuccessArray ( [url] => *hostname* [content_type] => text/html [http_code] => 200 [header_size] => 712 [request_size] => 308 [filetime] => -1 [ssl_verify_result] => 0 [redirect_count] => 0 [total_time] => 0.245843 
[namelookup_time] => 0.010171 [connect_time] => 0.01039 [pretransfer_time] => 0.010398 [size_upload] => 257 [size_download] => 93 [speed_download] => 378 [speed_upload] => 1045 [download_content_length] => -1 [upload_content_length] => 257 [starttransfer_time] => 
0.042541 [redirect_time] => 0 [certinfo] => Array ( ) [redirect_url] => ) 0

PS: PHP 用のリモート ログイン システムではなく、HTML FORM アクションを直接使用するのではなく、ユーザー ログイン用のシステムです。

どんな助けでもいただければ幸いです

4

1 に答える 1