0

コンピューター サイエンス プロジェクトでは、タイム スケジュールを表示する Web サイトを構築する必要があります。つまり、基本的に私たちがしなければならないことは、このサイトにログインして、誘導されたページから情報を取得することです。私は多くの投稿を読み、cURL で多くのことを試しましたが、何も機能していないようです。フォームに入力する必要がありますが、「送信」ボタンがクリックされていないようです。これは私が持っているものです:

<?php
$url="http://rooster.sgnphp.nl/infoweb/index.php"; 
$post_data['user'] = '105353';
$post_data['paswoord'] = '105353';

foreach ( $post_data as $key => $value) 
{
    $post_items[] = $key . '=' . $value;
}
$postdata = implode ('&', $post_items);

$ch = curl_init($url);
curl_setopt ($ch, CURLOPT_URL, $url); 
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US;         rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6"); 
curl_setopt ($ch, CURLOPT_TIMEOUT, 60); 
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt ($ch, CURLOPT_COOKIEJAR, cookie.txt); 
curl_setopt ($ch, CURLOPT_COOKIEFILE, cookie.txt); 
curl_setopt ($ch, CURLOPT_REFERER, $url); 
curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata); 
curl_setopt ($ch, CURLOPT_POST, 1); 
$result = curl_exec ($ch); 
echo $result;

curl_close($ch);
?>

記入しようとしたフォームは次のようになります。

<form action="/infoweb/index.php" method="post">
<input type="hidden" name="csrf" value="cec30a2ed764e956ed01f137e2f0705a">
<table>
  <tbody><tr>
    <td>
      Gebruikersnaam:
    </td>
    <td>
      <input class="mooi" style="color: #FF8080;" type="text" name="user" value="105353" onfocus="if (this.value =='username') this.value=''; this.style.color='#000000';" onkeydown="this.style.color='#000000';">
    </td>
  </tr>
  <tr>
    <td>
      Wachtwoord:
    </td>
    <td>
      <input class="mooi" style="margin-bottom: 2px; color: #FF8080;" type="password"     name="paswoord" value="105353" onfocus="if (this.value =='wachtwoord') this.value=''; this.style.color='#000000';" onkeydown="this.style.color='#000000';">
    </td>
  </tr>
  <tr>
    <td>
      <input type="hidden" name="login" value="loginform"> &nbsp;
    </td>
    <td>
      <input type="submit" class="mooi" value="inloggen"><br>
    </td>
  </tr>
</tbody></table>
</form>

では、フォームに記入したのにタイム スケジュールが表示されないのは、(おそらく) 公式にログインしていないためです。誰か助けてもらえますか? プロジェクトの残りの部分に取り掛かることができるように、これを機能させる必要がありますが、何日もこれにこだわっています。

ありがとう

4

2 に答える 2

0

そのサイトでログイン スクリプトがどのように機能するかは、Curl の設定方法によって異なります。

一見すると、最初にページをカールしてセッションを開始し、Cookie を保存してから、「csrf」入力を削除してから、ユーザー名とパスワードを投稿する必要があると思います。

それ以降は、ログインが必要なリンクを Curl できるようになります。

「あなた」がサイトを構築した場合、これを行うスクリプトを作成できると思いますか?

于 2013-02-25T21:20:46.177 に答える
0

フォームには非表示の入力があることに注意してください。

<input type="hidden" name="login" value="loginform">

この値も送信する必要があります。

$post_data['login'] = 'loginform';
于 2013-02-25T21:23:50.207 に答える