1

StackOverflowの皆さん、こんにちは。

私はcURLについてもう少し学びたいと思っており、次のフォームを考え出しました。

<?php 
            //controleer of het formulier gesubmit is. Als dat zo is stuur de data door naar de link 

            if(isSet($_POST['submit'])) 
                { 
                    $ch = curl_init("http://jecom.nl/jecom/curl/receive.php");  
                    //definieer de link 

                    curl_setopt($ch, CURLOPT_POST, true); 
                     //zet het type op post 

                    curl_setopt($ch, CURLOPT_POSTFIELDS, "sender=" .$sender."&receiver=".$receiver."");  
                    //stuur de gegevens uit het formulier door naar de link 

                    curl_exec($ch);  
                    //Zet de output op het scherm 

                    if (curl_errno($ch))  
                        { 
                               print curl_error($ch); 
                               //Als er een fout is geef deze dan 
                        } 
                    else 
                        { 
                            curl_close($ch);  
                            //Sluit de link met de website 
                        } 

                } 
            else 
                { 
            ?> 
    <form method="POST" action="<? echo $_SERVER['PHP_SELF'];  ?>" name="login"> 
        <table width="100%"> 
            <tr align="center"> 
                <td width="50%" align="right"><font color="navy">Sender</font></td> 
                <td width="50%" align="left"><input type="text" name="sender" size="50"></td> 
            </tr> 

            <tr align="center"> 
                <td width="50%" align="right" width="100"><font color="navy">Receiver</font></td> 
                <td width="50%" align="left"><input type="text" size="50" name="receiver"></td> 
            </tr> 
                            <tr align="center"> 
                <td width="50%" align="right" width="100"><font color="navy">Amount</font></td> 
                <td width="50%" align="left"><input type="text" size="50" name="amount"></td> 
            </tr> 
            <tr> 
                <td>&nbsp;</td> 
            </tr> 
            <tr align="center"> 
                <td colspan="2" align="center"><input name="submit" type="submit" value="Inloggen"></td> 
            </tr> 

        </table> 
        </form> 
        <? } ?>

そして、これは私の受信終了スクリプトです:

    <?php
// recipient.php
$sender = ($_POST["sender"]);
$receiver = ($_POST["receiver"]);
$amount = ($_POST["amount"]);

print "Greetings, visitor from  {$_SERVER['REMOTE_ADDR']}";

echo ($_POST['sender']);


?>

それは私のエコーを示していません。cURLは両方のサーバーで有効になっていると思いますが。

4

1 に答える 1

1

コードを少し編集して CURLOPT_RETURNTRANSFER を追加しました。これにより、curl_exec() 関数からの応答としてリモート サーバーの出力を受け取ることができます。私が行ったもう 1 つのことは、適切な $_POST 配列インデックスで $sender 変数と $receiver 変数を変更することです。最後の変更は、配列を受け取るように CURLOPT_POSTFIELDS ディレクティブを変更したことです。

コードは正常に実行され、応答は期待どおりです。これを新しいファイルに貼り付けてブラウザにロードし、自分で試してみてください。

  <?php

            if($_POST) {
                $ch = curl_init("http://jecom.nl/jecom/curl/receive.php");
                curl_setopt($ch, CURLOPT_POST, true);
                curl_setopt($ch, CURLOPT_POSTFIELDS, array('sender' => $_POST['sender'], 'receiver'=> $_POST['receiver']));
                curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

                $result = curl_exec($ch); // HERE YOU GET THE RESULT OF THE REQUEST AS A STRING

                if (curl_errno($ch))
                {
                    print curl_error($ch);
                } else {
                    curl_close($ch);
                }
                var_dump($result);
            }
    ?>

<form method="POST" action="<?php echo $_SERVER['PHP_SELF'];  ?>" name="login">
    <table width="100%">
        <tr align="center">
            <td width="50%" align="right"><font color="navy">Sender</font></td>
            <td width="50%" align="left"><input type="text" name="sender" size="50"></td>
        </tr>

        <tr align="center">
            <td width="50%" align="right" width="100"><font color="navy">Receiver</font></td>
            <td width="50%" align="left"><input type="text" size="50" name="receiver"></td>
        </tr>
        <tr align="center">
            <td width="50%" align="right" width="100"><font color="navy">Amount</font></td>
            <td width="50%" align="left"><input type="text" size="50" name="amount"></td>
        </tr>
        <tr>
            <td>&nbsp;</td>
        </tr>
        <tr align="center">
            <td colspan="2" align="center"><input name="submit" type="submit" value="Inloggen"></td>
        </tr>

    </table>
</form>

送信時に応答も得ました:

string(41) "こんにちは、84.229.122.167me からの訪問者"

于 2013-01-02T21:54:06.493 に答える