@Connorhd、助けてくれてありがとう!
まず、ユーザーを認証するために「app_authUser.php」にajaxリクエストを実行します。次に、[OK]の場合、サーバーからデータをロードするために「app_loadFeed.php」に対して別のajaxリクエストを実行します。
最初のajaxリクエストでは、postパラメーターにユーザーデータ(ログインとパスワード)を渡して、データベースでユーザーを認証します。phpファイル「app_authUser.php」で最初に呼び出すコマンドは、次のように「session_start()」です。
サーバー側の「app_authUser.php」のコード:
<?php
    session_start();
    // Just for test;
    $idSession = session_id(); 
    echo $idSession;
    /*
     Test user authenticate. If ok, then I assign idUser to $_SESSION['idUser'] variable.
    */
    if( $loginOk == true ){
        $_SESSION[ 'idUser' ] = $User->idUser;
    }
?>    
上記のコードでは、ユーザーが認証され、$ _SESSION['idUser']が正しく開始されています。2番目のajaxリクエストでは、変数$_SESSION['idUser']が設定されているかどうかをテストします。それがポイントです:それはもう設定されていません。繰り返しますが、最初は「session_start()」を呼び出します。
サーバー側の「app_loadFeed.php」のコード:
<?php
    session_start();
    // Just for test;
    $idSession = session_id(); 
    echo $idSession;
    if( isset( $_SESSION[ 'idUser' ] ) ){
        /* Load data from database to return to user.... */
        echo ...
    }
    else{
        echo '0';
    }
?>
Trigger.ioコンパイラからアプリを呼び出すと、上記のテストは常にfalseを返します。しかし、Safariからアプリを呼び出すと、常にtrueが返されます。
Trigger.ioコンパイラで実行されているアプリから呼び出しが行われると、関数 "session_id()"が両方のajaxリクエストで異なる値を返すことがわかりましたが、アプリがSarariで実行されている場合は同じ値です。
例:
Trigger.ioからのリクエスト:最初のリクエスト:echo $idSessionは"m7dbsv7qqem92os39lv5ao2ta1"を返します2番目のリクエスト:echo$idSessionは"h49pble06n7ao9pum06kt4dph0"を返します
 
Safariからのリクエスト:
最初のリクエスト:echo $idSessionは"2cbhin1185fm5ehvbb15k6n0b1"を返します2番目のリクエスト:echo$idSessionは"2cbhin1185fm5ehvbb15k6n0b1"を返します
 
つまり、最初の例ではセッションが同じではありません。なぜこれが起こるのですか?
アプリでforge.request.ajaxを使用していません。これが私のjavascriptのajaxコードです:
<script>
function openAjax()
{
    try
    {
        var ajax = new XMLHttpRequest();
    }
    catch(e)
    {
        try
        {
            var ajax = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch(ee)
        {
            try
            {
                var ajax = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch(eee)
            {
                var ajax = false;
                alert("Seu navegador não suporta AJAX!")
            }
        }
    }   
    return ajax;
}
// This is the function called at second time, just after I authenticate my user and have session opened.
function loadFeed(){
    var url = CT_URLBase + 'app_loadFeed.php'; // CT_URLBase = 'http://192.168.1.100/' in my local environment.
    var parameters = '';
    var ajax = openAjax();
    ajax.open('POST', url, true);
    ajax.setRequestHeader('Content-type', 'application/x-www-form-urlencoded; charset=iso-8859-1');
    ajax.onreadystatechange = function(){
        if (ajax.readyState == 4){
            if (ajax.status == 200){
                var retorno = ajax.responseText;
                if( retorno != '0' ){
                    /* Return OK!!! */
                }
                else{
                    /* Error: return is 0 (zero), that means session is not started.
                }
            }
        }
    }
    ajax.send(parameters);
}    
</script>
私が最も誤解しているのは、同じコードがSafariでは完全に機能しますが、Trigger.ioでは機能しないということです。
ちなみに、私はあなたのウェブサイトconnorhd.co.ukにアクセスしました!よくやった!「おもしろいもの」を見つけるのに最適な場所です!おめでとう!
手伝ってくれてどうもありがとう!!!
マルシオ・クルーム