Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » PHP » include will nicht

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
20.02.2007, 15:53 Uhr
xXx
Devil


Hmm also ... ich hab ein Verzeichnis mit folgender Struktur:

Code:
- phpGB
    - language
        - german
        - english
    - images
    - test
        - data

So ... in phpGB liegt jetzt phpGB.php, welche wie folgt inkludiert:

PHP 4:
if (!@include('language/'.$config['LANG'].'/lang_'.$config['LANG'].'.php') && $config['DEBUG'] == true) {
        echo('phpGB :: Language-file could not be included (language/'.$config['LANG'].'/lang_'.$config['LANG'].'.php)<br/>');
}
Wobei $config['LANG'] auf "german" steht, und das Verzeichnis und auch die Datei darin hab ich erstellt.
Hmm eigentlich sollte das so ja Funktionieren ... nun inkludiere ich allerdings phpGB.php noch in index.php die in phpGB/test liegt. Jetzt gibt es eine Fehlermeldung, das er die Datei in language nicht finden kann. Dachte dann erst, dass ich einfach nen Verzeichnis hochspringe, aber das hat auch nichts gebracht. Dann bin ich auf die Idee gekommen, vllt einfach den "include_path" vorübergehend entsprechend zu setzen, aber auch das brachte nicht den erhofften erfolg!

Hat also einer eine Idee wie ich es machen soll?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
20.02.2007, 16:19 Uhr
Reyx
IT-fetischistischer Wurstsalat mit rostigem Berghorn
(Operator)


Lass mal das @ vor dem include() weg und schau, was dir PHP als Fehler gibt.
Der müsste dir dann genau sagen, wo er nach der Datei sucht, die angeblich nicht da ist.

Wenn du dann noch bestätigen kannst, dass er die Datei versucht einzubinden, die auch tatsächlich existiert, mach mal 'n chmod auf 0777.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
20.02.2007, 16:25 Uhr
xXx
Devil


Hmm ja die Datei existiert, hatte das schon mal gemacht und der meinte dann, dass der im Inkludier-Verzeichnis des Servers gucken muss. Aber normal sollte er doch auch in dem Verzeichnis phpGB oder zumindest test gucken ...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
20.02.2007, 20:07 Uhr
J-jayz-Z
Perl Crack ala Carte
(Operator)


Mach mal am Anfang ein error_reporting(E_ALL); und schau dir an, was er ausgibt
--
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="66756e2d736f66742e6465"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
20.02.2007, 21:30 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Hi,
logisch irgendwo - du inkludierst in

phpGB/test/index.php die Datei ../phpGB.php die die Datei ./include/german/lang_german.php inkludiert.

Fällt dir was auf?

. = phpGB/test!

also in deiner cpp ein


PHP 4:
chdir("../");




an den Anfang setzen, oder allgemein feste config-Pfade für die includes verwenden (so machen das die "pros" oder eben was meist aber probleme bereitet, den include-pfad von php mit ini_set mit "../" ergänzen - kann aber nebeneffekte erzeugen.

daher sinnvollerweise sowas wie


/test/index.php:

<?php

define(ROOT, "../");

include(ROOT."phpGB.php");

//...




/phpGB.php:

<?php

// globale include-datei, evtl prüfen ob ROOT gesetzt:
if(!defined("ROOT"))
  define("ROOT", dirname(realpath($PHP_SELF)));

include(ROOT."language/....");



--
class God : public ChuckNorris { };

Dieser Post wurde am 20.02.2007 um 21:31 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
21.02.2007, 19:58 Uhr
xXx
Devil


Hmm ... hab es jetzt leicht anders reingemacht ...

PHP 4:
error_reporting(E_ALL);
$phpgb_path = '../';
include($phpgb_path . 'phpGB_config.php');
include($phpgb_path . ($config['DATA_TYPE'] == 'xml' ? 'phpGB_File.php' : 'phpGB_Sql.php'));
if (!include($phpgb_path . 'language/'.$config['LANG'].'/lang_'.$config['LANG'].'.php') && $config['DEBUG'] == true) {
    echo('phpGB :: Language-file could not be included (' . $phpgb_path . 'language/'.$config['LANG'].'/lang_'.$config['LANG'].'.php)<br/>');
}
Wobei $phpgb_path dann aber noch durch die defines am Ende ersetzt wird ... ist jetzt allerdings ja nur unnütz ... Die ganzen anderen Includes, die direkt auf der Verzeichnisebene phpGB liegen, die findet der ja ... aber warum?!

ich erhalte allerdings immer noch bei der lang_german.php die Fehlermeldung, wenn ich allerdings mal den Pfad im Browser eingeb, springt der in die richtige Datei ... deswegen kapier ich das nicht

Zitat:
Warning: main(1): failed to open stream: No such file or directory in /home/virtual/site19/fst/var/www/html/phpGB/phpGB.php on line 7

Warning: main(): Failed opening '1' for inclusion (include_path='.:/php/includes:/usr/share/php') in /home/virtual/site19/fst/var/www/html/phpGB/phpGB.php on line 7
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
22.02.2007, 15:23 Uhr
xXx
Devil


Noch jemand ne Idee? Hab das jetzt auch auf define umgestellt und auch die Inkludierreihenfolge angepasst. Lang wird in phpGBFile gebraucht ... d.h. muss es davor ... aber das ändert alles nichts an meinem Problem
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
22.02.2007, 16:29 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


"Failed opening '1' for inclusion ..."

da stimmt halt was mit deienm datnepfad nicht was du nimmst. er versucht eine Datei namens 1 einzubinden.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
22.02.2007, 19:41 Uhr
Reyx
IT-fetischistischer Wurstsalat mit rostigem Berghorn
(Operator)


Übrigens einer der Gründe, warum ich für essentielle Programmbestandteile niemals include() sondern require() verwenden würde ... Sonst läuft der Spaß mit 'ner Warning einfach weiter, obwohl Kernkomponenten fehlen oder nicht funktionieren ...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
22.02.2007, 19:57 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


kommt drauf an - kernkomponenten binde ich auch mit include ein,

mit
if(!include(...)
die("custom error meldung");

eben -
report_errors ist auf nem produktivsystem für mich immer aus!
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ PHP ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: