Seite 1 von 1

Kleines include Problem

Verfasst: Di 10.Jan, 2006 13:47
von Indextrader
Deine phpBB Version: Vanilla phpBB 2.0.19
MODs: Nein
Dein Wissensstand: Einsteiger
Link zu Deinem Forum: [url]http://[/url]

PHP Version:
MySQL Version:


Was hast Du gemacht, bevor das Problem aufgetreten ist?



Was hast Du bereits versucht um das Problem zu lösen?




Fehlerbeschreibung und Nachricht

Hi ihr lieben.
Nun..lange hatte ihr Ruhe vor mir ^6 aber jetzt habe ich ein kleines include Problemchen.

Folgender Code ist fürs includieren zuständig

if(strpos($PHP_SELF,"/admin/")){
include("../includes/adminmail.inc.php");
}else{
include("./includes/adminmail.inc.php");
}


allerdings nicht in den Adminbereich, dort tauchen sofort die Fehlermeldungen auf.
Dürfte ein reines Pfadproblem sein, allerdings komme ich da nicht weiter.

Ich hoffe einer von euch kann mir da helfen

LG Uwe

Verfasst: Di 10.Jan, 2006 13:56
von oxpus
Wo willst Du denn diese Datei includieren?
Ist es eine phpBB-Datei? Dnan steht Dir $phpbb_root_path als Linkvorsatz zur Verfügung und der Part kann so aussehen:

Code: Alles auswählen

include($phpbb_root_path."includes/adminmail.inc.php");

Verfasst: Di 10.Jan, 2006 14:34
von Indextrader
Hi Oxpus.

Includiert werden soll nach phpBB/auktion/admin/admin.php
die config.inc.php liegt unter phpBB/auktion/includes.

Lokal klappt das Ganze ohne ein Problem auf dem externen Server aber nicht.

Wenn ich nachfolgendes richtig lese

if(strpos($PHP_SELF,"/admin/")){
include("../includes/adminmail.inc.php");
}else{
include("./includes/adminmail.inc.php");
}

soll von../includes/adminmail.inc.php includiert werden, wenn das Ausgangs PHP unter /admin liegt, sonst von "./includes/adminmail.inc.php

Hier scheint aber was nicht zu klappen, denn die Fehlermeldung kommt von
Warning: main(./includes/adminmail.inc.php):
Ändere ich an diesem Teil include("../includes/adminmail.inc.php"); was passiert nichts im Board, ändere ich dagegen hier was

else{
include("./includes/adminmail.inc.php");
}

verschwindet die Fehlermeldung auf der Adminseite, dafür taucht sie parallel auf der Auktionsseite auf.

Ich habe dir mal die beiden phps gezipt angehangen.

EDIT

Ich habe nun


if(strpos($PHP_SELF,"/admin/")){
include("../includes/adminmail.inc.php");
}else{
include("./includes/adminmail.inc.php");
}



und alle Fehlermldungen sind weg, allerdings kann ich mich nicht in den Adminbereich einloggen und registrieren kann man sich auch nicht.
Lokal ist das alles kein Problem, das muss irgendwie an den Pfaden zum
/auktion/include Ordner liegen



Man man man was ein Mist

Vielen Dank für deine Mühe

Verfasst: Di 10.Jan, 2006 18:36
von oxpus
Deine Bedingung war schon richtig, eigentlich, besser wäre aber sicherlich diese hier:

Code: Alles auswählen

if(strpos($PHP_SELF,"/admin/")){
include("./../includes/adminmail.inc.php");
}else{
include("./includes/adminmail.inc.php");
}

Verfasst: Di 10.Jan, 2006 18:53
von Indextrader
Ich versuche es nochmal mit deinem Code.

Ich befürchte fast, das ist wieder so ein blödes Rechteproblem, wie ich es auch bei den Währungen hatte.

Wenn ich mich nämlich z.B registrieren möchte, folgt danach ein weisses Bild, ebenso wenn ich z.B auf mein Konto gehe.

Vielleicht kannst du dich noch daran erinnern, das ich das bei der currency.php vor Monaten auch hatte, da hast du irgendwas am Code geändert und die currencyexchange_class.php in den include Ordner verbannt.

Man ist das blöde, das man nicht ohne weiteres immer alles freigeben kann.

Hast du da eventuell eine Idee, wie ich das hinbekommen könnte....*liebguck*

EDIT

Mit deinem Code erhalte ich wieder die Fehlermeldungen, irgendwie scheint es mir als, wenn der 1. Teil des Codes (fett)(wieso auch immer) nicht ausgeführt wird

if(strpos($PHP_SELF,"/admin/")){
include("./../includes/adminmail.inc.php");

}else{
include("./includes/adminmail.inc.php");
}

So sieht es jetzt aus, eigentlich dürfte da doch nicht ./includes stehen, da dies doch im 2. Teil angesprochen wird, aus dem /admin/ eigentlich aber der 1. Teil angesprochen werden müsste?

Warning: main(./includes/adminmail.inc.php): failed to open stream: No such file or directory in /home/indonesi/public_html/auktion/includes/config.inc.php on line 40


http://www.indonesia-forum.org/auktion/admin/admin.php

Verfasst: Di 10.Jan, 2006 19:13
von Bootenks
ich glaube du gehst von dem Irrtum aus das strpos (true zurückliefert) aber dieses macht die Funktion nicht... versuche es mal so *bin mir aber nicht sicher*

Code: Alles auswählen

if(strpos($PHP_SELF,"/admin/") === false){
include("./includes/adminmail.inc.php");
}else{
include("./../includes/adminmail.inc.php");
} 

Verfasst: Di 10.Jan, 2006 19:28
von Indextrader
Danke für deine Hilfe Bootenks

Nehme ich deinen Code ändert sich nichts, Fehlermeldungen bleiben bestehen.

if(strpos($PHP_SELF,"/admin/") === false){
include("./includes/adminmail.inc.php");
}else{
include("./../includes/adminmail.inc.php");
}

Drehe ich ihn wie folgt um

if(strpos($PHP_SELF,"/admin/") === false){
include("./../includes/adminmail.inc.php");
}else{
include("./includes/adminmail.inc.php");
}

habe ich die Fehlermeldungen beim auktion/admin weg, dafür sind sie aber auf der auktion/index

Das ändert demnach auch nichts

LG Uwe

Verfasst: Di 10.Jan, 2006 19:33
von Bootenks
geb mal $PATH_SELF aus und schrieb den letzten teil hier rein ohne dass du zu viel (zwecks sicherheit) angibst


denn die FUnktion müsste so funzen ^^""" möglich wäre auch noch die Groß- Kleinschreibung von admin ...

Verfasst: Di 10.Jan, 2006 19:50
von Indextrader
admin habe ich kleingeschrieben, im Code wie auch im root.

Der Pfad ist http://www.indonesia-forum.org/auktion/

so sieht die config.inc.php aus

$auction_main_directory = "/home/indonesi/public_html/auktion/"; //Hauptverzeichnis der Auktion (ending slash!)


//* die folgenden Zeilen nur ändern, wenn Ihre Seiten-Struktur vom Standard abweicht


$SITE_NAME=$HTTP_SERVER_VARS["SERVER_NAME"];
$auction_main_path = $DOCUMENT_ROOT.$auction_main_directory;

$SITE_URL = "http://".$HTTP_SERVER_VARS["HTTP_HOST"].$auction_main_directory;

$include_path = $auction_main_path."includes/";

$image_upload_path = $auction_main_path."uploaded/";
$uploaded_path = "uploaded/";
$MAX_UPLOAD_SIZE = 100000;
$password_file = $include_path."passwd.inc.php";

$logFileName = $auction_main_path."cron.log";


if(strpos($PHP_SELF,"/admin/") === false){
include("./includes/adminmail.inc.php");
}else{
include("./../includes/adminmail.inc.php");
}



$expireAuction = 60*60*24*30;
$sessionLifeTime = 60*60*24*2;
$cronScriptHTMLOutput = true;


if(strpos($PHP_SELF,"/admin/") === false){
include("./../includes/currency.inc.php");
}else{
include("./includes/currency.inc.php");
}

include($password_file);

mysql_connect($DbHost,$DbUser,$DbPassword);
mysql_select_db($DbDatabase);

if(strpos($PHP_SELF,"/admin/") === false){
include("./../includes/sessions.inc.php");
}else{
include("./includes/sessions.inc.php");
}


$err_font = "<FONT FACE=\"Verdana,Arial,Helvetica\" SIZE=\"2\" COLOR=red>";
$std_font = "<FONT FACE=\"Verdana,Arial,Helvetica\" SIZE=\"2\">";
$sml_font = "<FONT FACE=\"Verdana,Arial,Helvetica\" SIZE=\"1\">";
$tlt_font = "<FONT FACE=\"Verdana,Arial,Helvetica\" SIZE=\"4\">";
$tlt2_font = "<FONT FACE=\"Verdana,Arial,Helvetica\" SIZE=\"3\">";
$usr_font = "<FONT FACE=\"Verdana,Arial,Helvetica\" SIZE=\"4\" COLOR=\"#F6AF17\">";
$nav_font = "<FONT FACE=\"Verdana,Arial,Helvetica\" SIZE=\"2\" COLOR=\"#FFFFFF\">";

if(strpos($PHP_SELF,"/admin/") === false){
include("./../includes/increments.inc.php");
}else{
include("./includes/increments.inc.php");
}


?>

Verfasst: Di 10.Jan, 2006 20:01
von Bootenks
ok mhm dann vesuch mal anstatt der strpos die Funktion durch das hier zu ersetzen:

Code: Alles auswählen

include("./". ((strstr ($PHP_SELF,"/admin") === false) ? "" : "../") . "includes/increments.inc.php");

Verfasst: Di 10.Jan, 2006 20:11
von Indextrader
Du meinst das komplett ersetzen

if(strpos($PHP_SELF,"/admin/") === false){
include("./../includes/increments.inc.php");
}else{
include("./includes/increments.inc.php");
}

mit dem ?

include("./". ((strstr ($PHP_SELF,"/admin") === false) ? "" : "../") . "includes/increments.inc.php");

Verfasst: Di 10.Jan, 2006 20:24
von Bootenks
wie sieht denn der Inhalt der $PHP_SELF aus wenn du diese in admin ausgibst

Verfasst: Di 10.Jan, 2006 20:41
von Indextrader
[quote="Bootenks - Di 10.Jan, 2006 20:24";p="51963"]wie sieht denn der Inhalt der $PHP_SELF aus wenn du diese in admin ausgibst[/quote]

öööhhmmm....das verstehe ich nicht ganz.
Meinst du die admin.php

Verfasst: Di 10.Jan, 2006 20:46
von Bootenks
ich meine wenn du die Datei in admin Bereich öffnest erhälst du doch den Fehler... Nun würde ich gern wissen was er da für ein $PHP_SELF, sprich du musst in deine admin.php ein echo $PHP_SELF basteln, Pfad angibt...

Verfasst: Mi 11.Jan, 2006 03:21
von Indextrader
oje, sorry Bootenks aber ich weiss nicht wie bzw was ich da machen soll...*schäm*
Ich habe die admin.php ein posting vorher angehangen, könntest du mir das eventuell einbauen und die admin.php dann wieder anhängen...*liebguck*

Verfasst: Mi 11.Jan, 2006 15:37
von Indextrader
Oxpus und Bootenks vielen Dank für eure Hilfe.
Da mir die Installation zu problematisch ist, habe ich mir ein anderes Tool installiert, welches recht einfach und schnell online war.

Hat sich somit erledigt

LG Uwe

Verfasst: Mi 11.Jan, 2006 16:47
von oxpus
Öh, ja, abgesehen davon, daß Bootenks hier schneller und mehr machte als ich... Danke...