2011-07-25 20 views
0

フォーラムにログインしてユーザーにメッセージを送信しようとしましたが、効果はありません。curl POST(CURLOPT_POSTFIELDS)

<?php 
ini_set('display_errors',1); 
error_reporting(E_ALL); 

$ch = curl_init(); 
curl_setopt ($ch, CURLOPT_URL, 'http://exemple.com/login.php'); 
curl_setopt ($ch, CURLOPT_POST, 1); 
curl_setopt ($ch, CURLOPT_POSTFIELDS, 'username=USER&password=1234567'); 
curl_setopt ($ch, CURLOPT_COOKIEJAR, 'cookie.txt'); 
$login = curl_exec ($ch); 

curl_setopt ($ch, CURLOPT_URL, 'http://exemple.com/privatemessage.php?receiver=7067'); 
curl_setopt ($ch, CURLOPT_POST, 1); 
curl_setopt ($ch, CURLOPT_POSTFIELDS, 'msg=Test'); 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
$post = curl_exec ($ch); 

curl_close ($ch); 

print_r($login) . "\n"; 
?> 

何が問題なのですか。

$login = curl_exec ($ch); 
if ($login === FALSE) { 
    die(curl_error($ch)); 
} 

と第二カールの実行のために類似した:それはあなたの時間のための

おかげで...ここで

はHTMLの一部

  <br/></br><br/></br> 
      <div class="rowElem"> 
       <label>Username</label> 
       <input type="text" name="username" id="username" class="input" value="" size="20" tabindex="10" /> 

      </div> 
      <div class="rowElem"> 
       <label>Password</label> 
       <input type="password" name="password" id="password" class="input" value="" size="20" tabindex="20" /> 
      </div> 
      <div class="rowElem"> 
       <label></label> 
       <input type="submit" value="Login" class="button-primary"/> 
      </div> 
+0

実行するとどうなりますか?エラーメッセージが表示されますか?それが動作していないことをどのように知っていますか? –

+0

多くのことがあります。私はあなたが正しくログインしていないと推測しています。おそらく、サイトがリファラーをチェックしているか、他のフォームフィールドが渡されていないと設定されています(例えば、送信ボタンの値のように) – James

+0

COOKIEJARはApache(またはこれを実行している人)によって書き込み可能ですか?私もこれについて間違っているかもしれませんが、私はあなたが2番目のリクエストでクッキーファイルを指定する必要があると思います。 –

答えて

0

てみ..ですカールを使用して、最初の時間です。外部サービスへの呼び出しが成功したとは決して考えるべきではありません。 die()は開発中のものを削除するのに便利です。製品の場合は、より包括的なエラーハンドラに置き換えることができます。

+0

残念ながら..私はエラーがない –