2016-04-15 7 views
1

私は1つのウェブサイトでそのログインをカールしようとしていますが、問題は私がエラー500 - 内部サーバーエラーが発生し続けていることです。エラー500、PHP curlで

コード:

<?php 
$path = $_SERVER["DOCUMENT_ROOT"]."/teste/ctemp"; 

//login form action url 
$url="https://example/security_check"; 
$postinfo = "username=xxx&password=xxxx"; 
$website="https://example/account"; 
$base="https://example/"; 

$cookie_file_path = $path."/cookie.txt"; 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_HEADER, false); 
curl_setopt($ch, CURLOPT_NOBODY, false); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 

curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file_path); 
//set the cookie the site has for certain features, this is optional 
curl_setopt($ch, CURLOPT_COOKIE, "cookiename=0"); 
curl_setopt($ch, CURLOPT_USERAGENT, 
    "Mozilla/5.0 (Windows; U; Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_REFERER, $_SERVER['REQUEST_URI']); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $postinfo); 


curl_exec($ch); 

//page with the content I want to grab 
curl_setopt($ch, CURLOPT_URL, $website); 
//do stuff with the info with DomDocument() etc 
$html = curl_exec($ch); 
curl_close($ch); 
$html = preg_replace("/<head>/i", "<head><base href='$base' />", $html, 1); 

echo $html; 

のウェブサイトはhttps://example/で、認証フォームは成功でログイン後、ページは一例/アカウント
にリダイレクトされ、ポストのユーザー名とパスワードを使用してhttps://example/security_checkにsubmitedれる何か問題はあります私のコードで?

+0

それぞれの行に 'var_dump( 'try 1').... var_dump( 'try n')'を設定すると、どこが壊れているのかがわかります。より速い練習です。私はあなたを助けて欲しい。 –

+0

コードは、私が試した別のウェブサイトでは本当にうまくいっていますが、問題はカールしようとしているこの1つだけです。私はいくつかの調査を行い、ログインページに保存されているクッキーのためです。郵便で直接書式を書いてください、これのためのヒント? –

+0

私に完全なコードを送ったり、私にリンクを送るべきなら、それをテストする必要があります。 –

答えて

0

してください、$url変数が存在しない、あなたのコードをレビュー:

curl_setopt($ch, CURLOPT_URL, $url); 

あなたはそれを修正する必要があります。

+0

ああ、申し訳ありませんが、私がコードを編集していたときに、私はvar名を変更し、別の行で変更するのを忘れました。しかし元のコードで$ urlformは$ urlなので、まだ500の内部エラーで問題があります –