Tabs mit CakePHP outputed?

8

Ich habe in Windows XP mit xampp lokal eine Webanwendung mit cakephp entwickelt und alles hat gut funktioniert. Heute habe ich es auf einem CentOS und einem Ubuntu Server installiert und mit beiden hatte ich ein Problem. Was passiert ist, dass ein Tab-Space zusammen mit meinen Informationen ausgegeben wird. Nehmen wir an, ich mache einen Ajax-Aufruf, der OK zurückgeben soll, was zurückgegeben wird, ist " OK" , genauer (0x09)OK

Ich weiß nicht wirklich woher dieser Tab kommt. Ich habe meinen Code auf das Maximum reduziert und trotzdem bekomme ich es.

Controller

%Vor%

Anzeigen

%Vor%

Auch wenn ich die Ansichtsdatei und die Ausgabe-Info nicht direkt im Layout verwende, ist die Registerkarte immer noch da:

Controller

%Vor%

testlayout.ctp

%Vor%

Dies geschieht bei allen Aktionen, unabhängig vom Layout.

Hat jemand das durchgemacht und weiß, was passiert? Alle meine Dateien sind in UTF-8 ohne BOM codiert und sie funktionieren einwandfrei unter XAMPP unter Windows.

- Bearbeiten:

Okay, einige sagten, es ist ein Konfigurationsproblem, ich weiß es wirklich nicht. Bei dem Versuch, herauszufinden, woher der "Tab" kommt, habe ich angefangen, Echos auf die Core-Dateien zu schreiben und vorwärts und vorwärts zu gehen, bis ich endlich dahin komme, wo der Tab ist. Ab index.php aus dem Kuchen-Webroot, wenn ich echo 'a' vor der Methode dispatch() platziere, ist meine Ausgabe a(0x09)OK . So kommt der Tab tatsächlich von Kuchen.

Nun, hier ist das Problem, wenn ich mir die Ergebnisse einiger Tests anschaue, bin ich schließlich stecken geblieben und es hat mich zu nichts geführt.

Momentan bin ich bei (CakeRoot)/lib/Cake/Routing/Dispatcher.php . Hier haben wir die folgende Methode:

%Vor%

Ich bin genau in diesem Teil:

%Vor%

Hier sind nun die Tests, wenn ich ein echo direkt vor das if setze, wie folgt:

%Vor%

Meine Ausgabe ist a(0x09)OK . Allerdings, wenn ich mein Echo direkt in das If wie folgt setzen:

%Vor%

Meine Ausgabe wird (0x09)aOK sein. Das einzige, was mir in den Sinn kommt, ist, dass class_exists() die Registerkarte echoed. Aber das macht einfach keinen Sinn. Zu Testzwecken habe ich folgendes gemacht:

%Vor%

Immer noch wird die Registerkarte ausgegeben. Schlimmer noch, wenn ich ein if == TRUE so mache, egal ob das Echo "a" vor dem if oder rechts innerhalb des if liegt, dann ist der Ausgang immer a(0x09)OK .

Was zur Hölle geht hier vor?

    
Leonardo Arroyo 12.03.2013, 19:39
quelle

1 Antwort

1
  

Also kommt der Tab tatsächlich von Kuchen.

Dies ist eine falsche Schlussfolgerung.

Sie haben es fast

Paraphrasieren Sie Ihren Code:

%Vor%

Ausgaben: before(0x09)after

Hier gibt es kein großes Geheimnis. Auf diese Weise verwendet class_exists Klassen automatisch - dh schließt sie ein und alle unmittelbaren Klassenabhängigkeiten ( da sie auch das Laden der Klasse aufrufen. Daher gibt es eine sehr kurze Liste von Orten, aus denen es kommen kann:

  • Controller / $class Controller.php
  • Plugin / Foo / Controller / FooAppController.php (wenn es ein Plugin-Controller ist)
  • Controller / AppController.php (falls vorhanden)

Eine dieser Dateien hat führende oder nachfolgende Leerzeichen - suchen Sie sie einfach und entfernen Sie sie.

Verwenden Sie die zu Ihrer Verfügung stehenden Werkzeuge

Sie müssen nicht erraten, welche Datei das Problem ist, es gibt viele, viele Tools, die Ihnen sagen, welche Datei der Täter ist. Ein solches Tool ist im Debug-Kit-Plugin , z. B .:

%Vor%     
AD7six 13.03.2013 19:50
quelle

Tags und Links