Ich habe meine Dateien von einer lokalen Umgebung auf meine vps umgestellt und jetzt funktioniert meine Facebook-Benachrichtigung nicht, obwohl ich mir ziemlich sicher bin, dass ich alle Pfade korrekt aktualisiert habe. Ich habe versucht, den Require-Pfad auf zahlreiche Arten zu schreiben. Ich mache eine "$ .post" von jquery auf eine PHP-Seite, auf der die Facebook-Benachrichtigung gesendet wird und bekomme diesen Fehler:
%Vor% Ich habe schon einmal Probleme wie diese gesehen, und der beste Weg, dies zu handhaben, ist, Ihren wahren Dateipfad als eine Variable einzustellen & amp; fügen Sie das Ihren Einbeziehen / Anforderungen hinzu. Da das gesamte dirname(__FILE__)
Setup in verschiedenen Umgebungen, insbesondere bei solchen, die symbolische Links verwenden, merkwürdig agieren kann. Es ist die beste Lösung, explizit anzugeben, wo Dateien eingestellt werden sollen.
Nehmen wir an, das ist Ihr Codebasis-Pfad; wie in ihrem Beispiel:
%Vor%Legen Sie das als eine Variable fest, die alle Ihre Seiten in der folgenden Weise laden:
%Vor%Und jetzt, wenn Sie das Dateisystem für Ihre App aufrufen, tun Sie dies:
%Vor% Bei einem solchen Setup können Sie Ihre App zwischen verschiedenen Umgebungen portieren, indem Sie einfach $BASE_PATH
an Ihre lokale Umgebung anpassen. Dies könnte ein Pfad für ein MAMP (Mac OS X LAMP) Setup sein:
Wie ungerade __FILE__
in symbolischen Umgebungen agieren kann, lesen Sie hier :
Seit PHP 4.0.2 enthält _ FILE _ immer einen absoluten Pfad mit Symlinks wurden aufgelöst, während in älteren Versionen relative Pfade enthalten waren unter bestimmten Umständen.
Sie verwenden require_once und haben einen Fehler "Klasse 'Facebook' nicht gefunden" . Wenn Sie require_once für eine Datei versuchen, die nicht existiert, würde dies zu einem anderen Fehler führen: "Schwerwiegender Fehler: require (): Fehler beim Öffnen erforderlich 'php-sdk / facebook.php'" . Also ist der Pfad wahrscheinlich in Ordnung. Überprüfen Sie, ob Sie php-sdk korrekt hochgeladen haben. Die facebook.php könnte leer sein.
Ihr Fehler ist:
%Vor%Die wertvolle Information hier ist:
Facebook
unbekannt ist, was bedeutet, dass require_once
diesen Fehler nicht löschte Nun müssen Sie schauen, warum die Klasse Facebook
in Zeile 9 unbekannt ist.
facebook.php
vor Zeile 9 eingefügt haben, enthält es wahrscheinlich nicht die richtige Klasse. (Klassennamen sind Groß- und Kleinschreibung!) facebook.php
nach Zeile 9 einfügen, müssen Sie es nur früher aufrufen. PS: Die ersten 10-15 Zeilen von accepted.php
könnten uns genügend Informationen liefern, um das genaue Problem hier zu lokalisieren.
Der Fehler "Klasse nicht gefunden" bezieht sich nicht auf die Problemladedatei. Sie verwenden eine Anforderung, wenn die Datei nicht existiert, wird ein erforderlicher Fehler ausgelöst, und dies ist nicht der Fall.
Wahrscheinlich heißt die Klasse innerhalb von facebook.php nicht Facebook, wahrscheinlich ist sie mit einem anderen Namen oder mit einem anderen Fall wie "facebook"
%Vor%Ist es möglich, dass:
<?
anstelle von <?php
in Ihrer facebook.php Datei Aus irgendeinem Grund stoße ich auf Umstände, bei denen php die Datei, die ich brauche, nicht mit konventionellen Mitteln findet. Ich habe einen Code gefunden, der zum Durchsuchen eines Verzeichnisses und zum Abrufen einer Liste von Dateien verwendet wurde, was in einem url-Generierungsskript, das ich geschrieben habe, von Vorteil war. Überstunden habe ich dieses einfache Skript für viele Aufgaben verwendet, z. B. Dateien finden, wenn normal require/include
fehlschlägt. zur Not funktioniert dieser Hack für mich.
Geben Sie einfach den Dateinamen $somefile
und den Verzeichnisnamen $log_directory
ein, wenn sich Ihr Verzeichnis im Basispfad befindet, geben Sie es einfach ohne Schrägstriche ein. Wenn es unter dem Basispfad ist, tippe es wie folgt /path/to/folder
hoffe das hilft.
%Vor%Der von Ihnen angegebene Pfad ist falsch:
%Vor%Diese Notwendigkeit dort hat eine Datei hat vollständigen Pfadnamen: /dir/to/your/actual/include/path/php-sdk/facebook.php
Und später brauchst du Datei in include_path falsch, dirname (__ FILE__) ODER __DIR__ ist das Verzeichnis der Datei wo require_once () aufgerufen wird, also suchst du facebook.php im php-sdk Unterverzeichnis unter deinem aktuellen php Skript .
Um Ihr Problem zu beheben, haben Sie 2 Plan
Besser, finde deinen tatsächlichen include_path und setze php-sdk Dateien in, include_path kann von php.ini finden, oder führe php -m von shell oder phpinfo () aus, auf diese Weise, deine erste require_once ( ) wird funktionieren.
Stellen Sie sicher, dass das php-sdk-Verzeichnis facebook.php im selben übergeordneten Verzeichnis mit Ihrem aufrufenden PHP-Skript enthält. Dies ist keine übliche Verwendung, aber Ihr zweites require_once () funktioniert.
Ich empfehle Ihnen, mehr über php include_path configure und __FILE__ magic constant zu lernen.
Angenommen, der Ordner php-sdk
befindet sich im Stammverzeichnis Ihres Website-Verzeichnisses.
Dies setzt voraus, dass sich die facebook.php-Datei in einem Ordner befindet, der sich im aktuellen Ordner der PHP-Datei befindet, die aufgerufen wird.
Ist das der Fall? Ich vermute nicht, da du einen Fehler hast!
Befindest du dich in einem Ordner oberhalb der Wurzel?
--- ROOT
--- ROOT & gt; FOO - dein Skript hier?
--- ROOT & gt; php-sdk --facebook hier drin
Wenn ja ...
%Vor%würde funktionieren.
Tags und Links jquery php facebook require-once