2

私は完全に機能するこのコードを持っています。しかし、それを提出した後、私は外部のウェブサイトにリダイレクトされ、そこで結果を見ることができます。代わりに、結果を同じWebサイトに表示したいと思います。私はあらゆる種類の提案を受け入れます!

4

1 に答える 1

2

最初の行は次のようになります。

echo '<form action="' . $_SERVER[PHP_SELF] . '" method="post">

次に、エコーする最後の行の上に、次のように配置します。

$response = curl_exec($ch);

また、ロケーションラインを次のように変更します。

$location = 'http://results.vtu.ac.in/vitavi.php';

- - -編集 - - -

応答を解析するためのコードを追加しました。最終的なコードは次のようになります。

<?php

echo '<form action="' . $_SERVER[PHP_SELF] . '" method="post">
<input type="text" name="rid">
<input type="submit" name="submit" value="submit">
</form>';

if(isset($_POST['submit'])&&(!empty($_POST['rid'])))
{
    $location = 'http://results.vtu.ac.in/vitavi.php';

    $userAgent = 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)';

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_VERBOSE, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_USERAGENT, $userAgent);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_URL, $location );

    $post_array = array(
        "rid" => $_POST['rid'],
        "submit" => "submit"
    );
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post_array); 
    $response = curl_exec($ch);

    $start = '<TD width="513">';
    $end = '<br>';

    $response = strstr($response, $start);
    $end = stripos($response, $end);
    $response = substr($response, strlen($start), $end - strlen($start));

    echo $response."<br/>";
}  

?>
于 2012-12-16T08:19:45.040 に答える