2017-09-29 17 views
-3

私のサーバでうまく動作する次のjquery AJAXコードがあります。JQuery AJAXリクエストをcURLまたはネイティブPHPに変換する

   $.ajax({ 
       type: "POST", 
       url: "myserverthing.php", 
       data: {time: timestamp, 
         prog: progName, 
         qual: qualifier, 
         level: lvl, 
         msg: message 
       } 
      }); 

私はそれをcURLまたはネイティブPHPに変換する必要があります。

すべての変数が存在し、文字列であり、特殊文字を含む可能性のある値を含むものとします。

サーバーからの応答はありません。

OK、あなたのやり方を試してみましょう。

 $url = "myserverthing.php"; 
    $fields = array(
        'time'=>urlencode($time), 
        'prog'=>urlencode($progName), 
        'qual'=>urlencode($qual), 
        'level'=>urlencode($type), 
        'msg'=>urlencode($message) 
        ); 

    //url-ify the data for the POST 
    $fields_string = ""; 

    foreach($fields as $key=>$value) { 
     $fields_string .= $key.'='.$value.'&'; 
    } 
    rtrim($fields_string,'&'); 

    //open connection 
    $ch = curl_init(); 

    //set the url, number of POST vars, POST data 
    curl_setopt($ch,CURLOPT_URL, $url); 
    curl_setopt($ch,CURLOPT_POST, 1); 
    curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0); 
    curl_setopt($ch, CURLOPT_HEADER, 0); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

    //execute post 
    curl_exec($ch); 

そして、何が起こるかは、「何も」、サーバーが要求を「見る」ようには見えないではありません:

は、これまでのところ、いくつかの道に沿っていくつかの重要な研究の後、私が思い付いたことはこれです。

しかし、AJAXリクエストを行うと、サーバーコードの最初の行はそのまま実行されません。

最初のコード行は、REQUESTのprint_rの出力をファイルに書き込みます。この出力は、AJAXアクセスが行われたときに書き込まれますが、cURLアクセスでは書き込まれません。

もう一度考えますか?

よろしく、 ジム

+1

を助けるためにここにいます。 : - )***あなたが問題を抱えている場合は** [**もっと研究をしています**](https://meta.stackoverflow.com/q/261592/1011527)**あなたが試したことを投稿してください** **動作していないことの明確な説明**を提供し、[最小、完全、および検証可能な例](http://stackoverflow.com/help/mcve)を提供します。 [質問する](http://stackoverflow.com/help/how-to-ask)の良い質問をお読みください。 [ツアーに参加する](http://stackoverflow.com/tour)と[this](https://meta.stackoverflow.com/q/347937/1011527)を必ずお読みください。 –

+2

SOは無料のコーディングサービスではありません。 cURLマニュアルを開き、いくつかのことを試して、より正確な問題に戻ってください。 –

答えて

0

OK私たちは常に新しいコーダーを支援し、サポートするために喜んでいるが、***あなたが最初に自分自身を助けるために必要

<?php 


$ch = curl_init(); 

curl_setopt($ch, CURLOPT_URL,"http://linktofile.php"); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, 
      "value1=data1&value2=data2"); 

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

$server_output = curl_exec($ch); 

curl_close ($ch); 
//The output store in $server_output 

?> 
+0

KidKupy、URLを並べ替えると多くの感謝をしました。私はajaxのためにやったのと同じフォーマットを使いましたが、うまくいきました。 – user1047857

+0

ajax - ../../../lib/myserverthing.phpしかし、私はlocalhost/lib/myserverthing.phpが必要だったようです。両者の間のURLの一般化に関する考え方。 – user1047857

関連する問題