Problem mit AJAX-API aus dem Wiki

Hier finden sich Fragen und Ergänzung zur Dokumentation. // All questions and discussions about the documentation.
Benutzeravatar
ma2604121
Beiträge: 349
Registriert: 24.01.2011, 23:42:18

Re: Problem mit AJAX-API aus dem Wiki

Beitrag von ma2604121 » 30.08.2011, 17:42:10

Was der Support so vorschlägt:
(...) bitte teilen Sie uns die Systemvorraumsetzungen für dieses Skript einmal mit. Vielleicht kann auch das memory_limit eine Ursache sein.
Beide Online-Versionen haben ein memory-limit von 64M, lokal habe ich eines von 128M. Also wohl auch nicht die Fehlerquelle.
(...) haben Sie die Kodierung der Dateien kontrolliert? In manchen Fällen können UTF-8 Inhalte einer Datenbank mit einem ANSI kodierten Skript kollidieren und zu dem Fehler führen.
Dateien sind UTF-8 kodiert, Zugriff auf DB erfolgt UTF-8 kodiert. Also wahrscheinlich ebenfalls unproblematisch.

Benutzeravatar
ma2604121
Beiträge: 349
Registriert: 24.01.2011, 23:42:18

Re: Problem mit AJAX-API aus dem Wiki

Beitrag von ma2604121 » 30.08.2011, 17:55:09

(...)/html/apf/index.php ist zum Beispüiel auch nich ANSI-codiert und nicht UFT-8 ohne BOM.
Hoppla...?
Was ist denn UTF-8 ohne bzw. mit BOM?

Benutzeravatar
ma2604121
Beiträge: 349
Registriert: 24.01.2011, 23:42:18

Re: Problem mit AJAX-API aus dem Wiki

Beitrag von ma2604121 » 30.08.2011, 18:00:37

Wenn ich die Dateien UTF-8 mit BOM mache, erhalte ich die Fehlermeldung:

Code: Alles auswählen

Message: 	session_start(): Cannot send session cookie - headers already sent by (output started at /var/www/web990/html/apf/index.php:1) 
Scheint mir auch keine Lösung zu sein.

Benutzeravatar
ma2604121
Beiträge: 349
Registriert: 24.01.2011, 23:42:18

Re: Problem mit AJAX-API aus dem Wiki

Beitrag von ma2604121 » 30.08.2011, 18:51:23

Ich habe nun mal nachgefragt, ob man mir Zugriff auf die error_log, /var/log/message, /var/log/httpd/error_logs, /var/log/httpd/error_log und falls vorhanden auf Fehlerlogs meines Benutzers gewährt bzw. man mir diese zur Auswertung zur Verfügung stellen kann. Wenn das nicht geht bzw. sich daraus nichts ergibt, sehe ich fast keine andere Möglichkeit, als den Wehoster zu wechseln.

Benutzeravatar
ma2604121
Beiträge: 349
Registriert: 24.01.2011, 23:42:18

Re: Problem mit AJAX-API aus dem Wiki

Beitrag von ma2604121 » 30.08.2011, 19:15:06

Da hätte ich dann doch noch eine Ungereimtheit gefunden:
*2011_08_30__php.log*
[2011-08-30 16:59:24] [EXCEPTION] [198dd821bd7a2945c652e7d145186eef] Command-parameter not found! (Number: 0, File: /var/www/web___/html/apf/apps/ajax/AjaxAPIAction.php, Line: 25)
[2011-08-30 16:59:32] [EXCEPTION] [198dd821bd7a2945c652e7d145186eef] Command-parameter not found! (Number: 0, File: /var/www/web___/html/apf/apps/ajax/AjaxAPIAction.php, Line: 25)
[2011-08-30 16:59:35] [EXCEPTION] [f1fd07f40a6bdbbd205c3c48b5306a30] [Frontcontroller::addAction()] No config section for action key "A" available in configuration file "DEFAULT_actionconfig.ini" in namespace "ajax" and context "rl"! (Number: 256, File: /var/www/web___/html/apf/apps/core/frontcontroller/Frontcontroller.php, Line: 649)
[2011-08-30 16:59:45] [EXCEPTION] [198dd821bd7a2945c652e7d145186eef] Command-parameter not found! (Number: 0, File: /var/www/web___/html/apf/apps/ajax/AjaxAPIAction.php, Line: 25)
[2011-08-30 16:59:47] [EXCEPTION] [957e3342397bca19d01f6002c48d2fd1] [Frontcontroller::addAction()] No config section for action key "AjaxAP" available in configuration file "DEFAULT_actionconfig.ini" in namespace "ajax" and context "rl"! (Number: 256, File: /var/www/web___/html/apf/apps/core/frontcontroller/Frontcontroller.php, Line: 649)
[2011-08-30 16:59:53] [EXCEPTION] [198dd821bd7a2945c652e7d145186eef] Command-parameter not found! (Number: 0, File: /var/www/web___/html/apf/apps/ajax/AjaxAPIAction.php, Line: 25)

*access_log*
217.83.30.108 - - [30/Aug/2011:16:59:14 +0200] "GET /apf/index.php?ajax-action:AjaxAPI=cmd:TrailAutocomplete&term=test HTTP/1.1" 500 605 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:7.0) Gecko/20100101 Firefox/7.0" http://www.runnerslog.de
217.83.30.108 - - [30/Aug/2011:16:59:21 +0200] "GET /apf/index.php?ajax-action:AjaxAPI=cmd:TrailAutocomplete HTTP/1.1" 500 605 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:7.0) Gecko/20100101 Firefox/7.0" http://www.runnerslog.de
217.83.30.108 - - [30/Aug/2011:16:59:24 +0200] "GET /apf/index.php?ajax-action:AjaxAPI=cmd HTTP/1.1" 500 605 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:7.0) Gecko/20100101 Firefox/7.0" http://www.runnerslog.de
217.83.30.108 - - [30/Aug/2011:16:59:28 +0200] "GET /apf/index.php?ajax-action HTTP/1.1" 200 4226 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:7.0) Gecko/20100101 Firefox/7.0" http://www.runnerslog.de
217.83.30.108 - - [30/Aug/2011:16:59:32 +0200] "GET /apf/index.php?ajax-action:AjaxAPI=cmd HTTP/1.1" 500 605 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:7.0) Gecko/20100101 Firefox/7.0" http://www.runnerslog.de
217.83.30.108 - - [30/Aug/2011:16:59:35 +0200] "GET /apf/index.php?ajax-action:A HTTP/1.1" 200 4535 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:7.0) Gecko/20100101 Firefox/7.0" http://www.runnerslog.de
217.83.30.108 - - [30/Aug/2011:16:59:45 +0200] "GET /apf/index.php?ajax-action:AjaxAPI HTTP/1.1" 500 605 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:7.0) Gecko/20100101 Firefox/7.0" http://www.runnerslog.de
217.83.30.108 - - [30/Aug/2011:16:59:47 +0200] "GET /apf/index.php?ajax-action:AjaxAP HTTP/1.1" 200 4540 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:7.0) Gecko/20100101 Firefox/7.0" http://www.runnerslog.de
217.83.30.108 - - [30/Aug/2011:16:59:53 +0200] "GET /apf/index.php?ajax-action:AjaxAPI HTTP/1.1" 500 605 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:7.0) Gecko/20100101 Firefox/7.0" http://www.runnerslog.de

Aufgrund der Lesbarkeit hätte ich das gerne als .txt oder .pdf angehängt, aber ich erhalte immer die Meldung, dass die Formate nicht zulässig sind.

Benutzeravatar
dave
Beiträge: 903
Registriert: 04.02.2011, 19:03:57
Wohnort: Berlin
Kontaktdaten:

Re: Problem mit AJAX-API aus dem Wiki

Beitrag von dave » 30.08.2011, 20:13:54

Ich habe mir nun auch mal einen Überblick verschafft, die URL gabs ja von dir ;)

Magst du mal deine AjaxAPIAction.php und die Config mit Namespace posten?

Benutzeravatar
ma2604121
Beiträge: 349
Registriert: 24.01.2011, 23:42:18

Re: Problem mit AJAX-API aus dem Wiki

Beitrag von ma2604121 » 30.08.2011, 20:19:00

AjaxAPIAction.php
Die habe ich mehr oder weniger direkt aus dem Wiki übernommen.

Code: Alles auswählen

<?php
import('tools::http', 'HeaderManager');
class AjaxAPIAction extends AbstractFrontcontrollerAction{
    public function  run() {
    HeaderManager::send('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
    HeaderManager::send('LastModified: ' . gmdate('D, d M Y H:i:s') . 'GMT');
    HeaderManager::send('Cache-Control no-cache, must-revalidate');
    HeaderManager::send('Pramga: no-cache');
    $cmd = $this->getInput()->getAttribute('cmd');
    if($cmd === null){
        throw new InvalidArgumentException('Command-parameter not found!');
    }
    $cmd = preg_replace('/[^A-Za-z0-9_\-]+/', '', $cmd);
    $Parameters = $this->getInput()->getAttributes();
    unset($Parameters['cmd']);
    try {
        $command = $this->getAndInitServiceObject('ajax::commands', $cmd . 'AjaxAPICommand', $Parameters, 'NORMAL');
    }
    catch (IncludeException $e) {
        throw new InvalidArgumentException('Command not found!');
    }
    $command->execute();
    exit(0);
    }
}
?>
Die Config aus /apps/config/ajax/rl/DEFAULT_actionconfig.ini

Code: Alles auswählen

[AjaxAPI]
FC.ActionNamespace = "ajax"
FC.ActionFile = "AjaxAPIAction"
FC.ActionClass = "AjaxAPIAction"
FC.InputParams = ""

Benutzeravatar
Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: Problem mit AJAX-API aus dem Wiki

Beitrag von Screeze » 30.08.2011, 21:13:32

Die Fehler von 16:59 sind mein verdienst, da ich mit deinen URLs etwas rumprobiert habe ob der Fehler an einem bestimmten Zeichen in der URL liegen könnte, leider ohne Erfolg.
Die Fehler einfach ignorieren, die waren provoziert.

Benutzeravatar
ma2604121
Beiträge: 349
Registriert: 24.01.2011, 23:42:18

Re: Problem mit AJAX-API aus dem Wiki

Beitrag von ma2604121 » 30.08.2011, 22:18:38

leider können wir Ihnen diesbezüglich nicht weiterhelfen.
leider gibt es kein personalisiertes error_log in Shared Hosting Umgebungen. Es bleibt nur die akribische Untersuchung aller Inhalte durch Sie. Skriptsupport können wir nicht bieten. Eine einfache Ajax Abfrage über jQuery ist auch über unsere Server möglich, laut unserer Kunden.
Tja... Da ist guter Rat teuer. Aber wenn sich keine andere Lösung abzeichnet, dürfte nur ein Wechsel des Webhosters in Frage kommen.

Oder ich versuche die AJAX-Komponenten direkt aufzurufen - also ohne die AjaxAPI.

Benutzeravatar
dave
Beiträge: 903
Registriert: 04.02.2011, 19:03:57
Wohnort: Berlin
Kontaktdaten:

Re: Problem mit AJAX-API aus dem Wiki

Beitrag von dave » 30.08.2011, 22:24:43

Also da bei mir die Ajax-Api, so wie sie im Wiki steht, auch nicht so wirklich funktionierte, poste ich meine mal hier :)

Code: Alles auswählen

<?php

import('tools::http', 'HeaderManager');

class AjaxAPIAction extends AbstractFrontcontrollerAction {

    public function run() {
        // first we send some cache headers so the browser won't cache any request of this action!
        HeaderManager::send('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
        HeaderManager::send('Last-Modified: ' . gmdate('D, d M Y H:i:s') . 'GMT');
        HeaderManager::send('Cache-Control: no-cache, must-revalidate');
        HeaderManager::send('Pragma: no-cache');

        // we load the command-parameter and throw an exception if it was not found.
        $cmd = $this->getInput()->getAttribute('cmd');
        if ($cmd === null) {
            throw new InvalidArgumentException('Command-parameter not found!');
        }

        // Secure the command input with whitelist in order to prevent any manipulation of the path the command will be searched in.
        $cmd = preg_replace('/[^A-Za-z0-9_\-]+/', '', $cmd);

        // We load all parameters of the action into an array und remove the command-parameter
        $Parameters = $this->getInput()->getAttributes();
        unset($Parameters['cmd']);

        // get and execute command
        $command = $this->getAndInitServiceObject('sites::design1::pres::biz::commands', $cmd . 'AjaxAPICommand', $Parameters, 'NORMAL');
        /*try {
            $command = $this->__getAndInitServiceObject('ajaxapi::commands', 'HelloAjaxAPICommand', $Parameters, 'NORMAL');
        } catch (IncludeException $e) {
            throw new InvalidArgumentException('Command not found!');
        }*/
        $command->execute();

        exit(0); // We exit because we don't wont the normal website to be rendered!
    }

} 
Wie du siehst habe ich die Exception-Behandlung komplett auskommentiert. Vllt. klappts damit ja bei dir. Aber bitte den Namespace zu deinem Commands-Ordner anpassen ;)

Benutzeravatar
ma2604121
Beiträge: 349
Registriert: 24.01.2011, 23:42:18

Re: Problem mit AJAX-API aus dem Wiki

Beitrag von ma2604121 » 30.08.2011, 22:34:26

Bleibt alles beim Alten:
Lokal läuft es, auf dem Server nicht.

APFelsahne
Beiträge: 222
Registriert: 18.03.2010, 13:13:07
Wohnort: Ludwigshafen am Rhein
Kontaktdaten:

Re: Problem mit AJAX-API aus dem Wiki

Beitrag von APFelsahne » 30.08.2011, 22:37:44

mal n versuch ins blaue, ersetz die datei durch eine neue, die du von grund auf nochmal schreibst mit dem selben inhalt. wichtig dabei, kein copy&paste.
vielleicht ist ein nicht sichtbares zeichen falsch codiert und verursacht probleme.
Grüße, Florian
BildAPF-Extension wsCatalyst

Benutzeravatar
Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: Problem mit AJAX-API aus dem Wiki

Beitrag von Screeze » 30.08.2011, 22:46:57

Das Problem ist kein Ajax Request, die Url lässt sich ja auch nicht manuell aufrufen. Die Idee von APFelsahne wäre meine letzte Idee. Im Übrigen halte ich den Support von diesem Hoster für unfähig, wo bist du denn da? Ich würde an deiner Stelle wechseln...

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast