Ergebnis 1 bis 3 von 3

Thema: CURL und das RequestToken

  1. #1
    Contao-Nutzer
    Registriert seit
    24.10.2016.
    Beiträge
    22

    Standard CURL und das RequestToken

    Hallo zusammen.

    Ich erstelle gerade für einen Kunden eine Homepage, welche Adressen und Vereine und so weiter in der DB stehen hat.

    Nun versuche ich Abfragen via CURL von anderen Servern zu verwalten. Das Problem ist nur, wenn ich selber teste, wird mir andauern der Fehler des "Invalid Request Tokens" angezeigt.

    Server A (mit der DB) hat folgende Datei
    PHP-Code:
    <?php
    define
    ('TL_MODE''FE');
    require(
    'system/initialize.php');

        
    $methode $_POST['methode'];
        
    $param1 $_POST['param1'];
        
    $param2 $_POST['param2'];
        
    $_POST['REQUEST_TOKEN'] = REQUEST_TOKEN;

        
    $db = \Database::getInstance();
        
    // Adressabfrage nach Kategorie
        
    if($methode == "getAdressList"){
            
    $kat $db->prepare('SELECT alias FROM tl_mx_adressen_kategorie WHERE id=?')->execute($param1)->fetchAllAssoc();
            
    $response $db->prepare('SELECT id, title, plz, ort, telefon, telefax, email, homepage_link, text, kommune, koordinaten FROM tl_mx_adressen WHERE type=?')->execute($kat[0])->fetchAllAssoc();
                
            
    header('Content-Type: application/json; charset=UTF-8');
            echo 
    json_encode($response);
            
            exit;        
        }
    ?>
    Der Test-Server (Server B) auf einer anderen Domain versucht nun dies Aufzurufen
    PHP-Code:
    <?php
    $_POST
    ['methode'] = 'getAdressList'
    $_POST['param1'] = '1'

    $postFields $_POST;

    $ch curl_init();
    curl_setopt($chCURLOPT_URL"url-von-Server-A/json.php");
    curl_setopt($chCURLOPT_HEADER0);
    curl_setopt($chCURLOPT_POSTFIELDS$postFields);
    curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
    $response curl_exec($ch);
    if(
    curl_errno($ch)) echo 'error:' curl_error($ch);

    echo 
    "<pre>";
    //print_r($postFields);
    echo "</pre>";

    $ergebnis json_decode($response);
    curl_close($ch);

    echo 
    "<pre>";
    //print_r($response);
    echo "</pre>";

    ?>

    Weiß jemand Rat?
    Das sind 2 verschiedene Contaos. Wenn ich auf Server B das Request Token im POST mitgebe bringt das ja nichts, weil Server A damit nichts anfangen kann

  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.114
    Partner-ID
    10107

    Standard

    Sofern du das nicht in den System Einstellungen deaktiviert hast verlangt Contao nach einem gültigen Request Token für alle POST Requests. Du musst also zuerst einen Request machen, wo du dir ein Request Token holst und dann erst deinen POST Request inkl. Request Token machen.

    Du kannst auch das Request Token in den Systemeinstellungen deaktivieren, was aber ein Sicherheitsrisiko darstellt.

  3. #3
    Contao-Nutzer
    Registriert seit
    24.10.2016.
    Beiträge
    22

    Standard

    Hatte ich mir schon gedacht, dass es so umständlich ist.

    Ich habe das ganze jetzt auf GET umgeschrieben. Sieht zwar nicht schön aus, aber es erfüllt seinen Zweck.

    Ist ja auch nur ein Aufruf, um Daten Live auf eine sich noch in der Entwicklung befindlichen App zu laden.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •