Kleines include Problem

PHP, Ajax, CSS, HTML, Javascript
Eben für die wirklich Harten, die alles selber machen.
Antworten
Indextrader
Beiträge: 372
Registriert: Sa 17.Sep, 2005 11:50

Kleines include Problem

Beitrag 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
Zuletzt geändert von Indextrader am Fr 13.Jan, 2006 19:17, insgesamt 1-mal geändert.
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag 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");
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Indextrader
Beiträge: 372
Registriert: Sa 17.Sep, 2005 11:50

Beitrag 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
Zuletzt geändert von Indextrader am Fr 13.Jan, 2006 19:18, insgesamt 2-mal geändert.
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag 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");
}
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Indextrader
Beiträge: 372
Registriert: Sa 17.Sep, 2005 11:50

Beitrag 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
Zuletzt geändert von Indextrader am Di 10.Jan, 2006 19:01, insgesamt 1-mal geändert.
Benutzeravatar
Bootenks
Beiträge: 1836
Registriert: Sa 29.Mai, 2004 23:36
Wohnort: G?rlitz (?stlichste Stadt Deutschlands)

Beitrag 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");
} 
Zuletzt geändert von Bootenks am Di 10.Jan, 2006 19:14, insgesamt 1-mal geändert.
Nur ein Informatik Student. ^^
Indextrader
Beiträge: 372
Registriert: Sa 17.Sep, 2005 11:50

Beitrag 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
Benutzeravatar
Bootenks
Beiträge: 1836
Registriert: Sa 29.Mai, 2004 23:36
Wohnort: G?rlitz (?stlichste Stadt Deutschlands)

Beitrag 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 ...
Nur ein Informatik Student. ^^
Indextrader
Beiträge: 372
Registriert: Sa 17.Sep, 2005 11:50

Beitrag 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");
}


?>
Benutzeravatar
Bootenks
Beiträge: 1836
Registriert: Sa 29.Mai, 2004 23:36
Wohnort: G?rlitz (?stlichste Stadt Deutschlands)

Beitrag 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");
Nur ein Informatik Student. ^^
Indextrader
Beiträge: 372
Registriert: Sa 17.Sep, 2005 11:50

Beitrag 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");
Zuletzt geändert von Indextrader am Fr 13.Jan, 2006 19:19, insgesamt 1-mal geändert.
Benutzeravatar
Bootenks
Beiträge: 1836
Registriert: Sa 29.Mai, 2004 23:36
Wohnort: G?rlitz (?stlichste Stadt Deutschlands)

Beitrag von Bootenks »

wie sieht denn der Inhalt der $PHP_SELF aus wenn du diese in admin ausgibst
Nur ein Informatik Student. ^^
Indextrader
Beiträge: 372
Registriert: Sa 17.Sep, 2005 11:50

Beitrag 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
Zuletzt geändert von Indextrader am Fr 13.Jan, 2006 19:20, insgesamt 1-mal geändert.
Benutzeravatar
Bootenks
Beiträge: 1836
Registriert: Sa 29.Mai, 2004 23:36
Wohnort: G?rlitz (?stlichste Stadt Deutschlands)

Beitrag 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...
Nur ein Informatik Student. ^^
Indextrader
Beiträge: 372
Registriert: Sa 17.Sep, 2005 11:50

Beitrag 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*
Indextrader
Beiträge: 372
Registriert: Sa 17.Sep, 2005 11:50

Beitrag 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
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Öh, ja, abgesehen davon, daß Bootenks hier schneller und mehr machte als ich... Danke...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Antworten