PHP Ein Inlcude / chdir fehler

toxic189

Lieutenant
Registriert
Jan. 2012
Beiträge
778
He ho leute,

ich habe ein Problem das Folgendermaßen aussieht, und zwar habe ich ein Upload script das aus mehreren *.php dateien besteht und mehreren Ordner unter anderem pics für das hoch geladenen Dateien.

so ich habe das script via Inlcude in einer anderen *.php Dateien eingebunden davor habe ich ihm noch ein "chadir" dazu gegeben damit er weis ok das Verzeichnis wird geändert.


PHP:
           <?php
			chdir ("../../../reisen/upload/");
			include ("upload.php");
			
            ?>


so nun ist das so das ich möchte das er in dem Verzeichnis auch bleibt denn das Script funktioniert leider über das Inlcude nicht er meint er findet keinen Ordner wohin er das hochladen soll, obwohl der Ordner in dem Verzeichnis vorhanden ist.
Das Script funktioniert sobald ich es direkt aufrufe also nicht über das include funktioniert alles... :/

Könnte mir da jemand sagen warum und wie ich es am besten löse?

MFG
Jelsch
 
Warum gibst Du denn nicht den absoluten Pfad auf dem Server an z.B.?
PHP:
include ('/var/www/html/meinzeug/upload.inc.php');
 
hm... lagere alle php-files in einer Ebene und gib jedem Upload den korrekten relativen Pfad zum Zielverzeichnis mit?
 
also das mit dem absoluten pfad habe ich geändert :) gab aber keine veränderung.

@Daaron was meinst du damit ?! das Script an sich ist alles auf einer Ebene....



Wie gesagt wenn ich das Script direkt aufrufe funktioniert alles wie es soll sobald ich das via das inlcude mache sagt er es gebe keinen Ordner...
 
Wenn der absolute Pfad nicht funktioniert ist dieser nicht korrekt angegeben!
 
er ist richtig denn sonst würde er mir ja nicht sagen das er den ordner nicht findet wohin er die hochgeladene Bilder ablegen soll... wie gesagt das Script funktioniert bei direkter aufrufung wunderbar...
 
Ich würde das Skript so inkludieren:

PHP:
include __DIR__.'/../../../reisen/upload/upload.php';

Wenn er den Uploadordner nicht findet, dann liegt wahrscheinlich der Fehler daran, dass die upload.php aus einem bestimmten Ordner aufgerufen werden muss, damit sie den Pfad zum Uploadordner richtig setzen kann. Wenn du das änderst, dann sollte es gehen.
 
überdenke mal deinen aufbau.. ist irgendwie total sinnfrei für jeden ordner ein eigenes upload script zu haben.. schon weil man die alle pflegen muss.. benutze doch einfach ein upload script mit dem du je nach einstellung, in verschiedene ordner hochladen kannst
 
Ich hab nicht für jeden ordner ein Script :) ich hab ein einziges uploadscript und will es einbinden an mehreren stellen via das inlcude :)

@NullPointer er findet den Ordner nur findet er den Ordner nicht in den er hochladen sollte obwohl der vorhanden ist...
 
Und wo is das Problem, dem Upload-Script (bzw. der Upload-Funktion) als Parameter den Zielordner mitzugeben?
 
wieso benutzt du chdir statt einfach einen parameter abzufragen?

also sowas wie
PHP:
switch((int) $_REQUEST['dir']) {
case 0:
$dir = '/upload1';
break;
case 1:
$dir = '/upload2';
break;
...
}
 
weil ich da noch nicht so tief drin bin ich schau mal ob ich das hinbekomme :D



EDIT: Ich komme mit den parametern nicht weiter....was berwirkt es und was muss ich machen das er in dem Ordner bleibt und das script anschmeist??
 
Zuletzt bearbeitet:
das einfachste was du machen könntest..
wäre
in deiner html form ein hiddenfield reinzustun in dem du das zielverzeichniss inderikt durch ne id angibst
also so
HTML:
<input type="hidden" value="0" name="dir_id"/>

in deiner upload pho brauchst du dann am besten ein array mit deinen zielverzeichnissen
also so
PHP:
$dirs = array('/upload/', '/bilder/upload/etc');
//das gewünsche verzechniss bekommst du so
$dir = $dirs[(int) $_REQUEST['dir_id']];
//dann upload so
move_uploaded_file($_FILES['datei']['tmp_name'], $dir . $_FILES['name']);
chdir brauchst du da nicht
 
toxic189 schrieb:
also das mit dem absoluten pfad habe ich geändert :) gab aber keine veränderung.

@Daaron was meinst du damit ?! das Script an sich ist alles auf einer Ebene....



Wie gesagt wenn ich das Script direkt aufrufe funktioniert alles wie es soll sobald ich das via das inlcude mache sagt er es gebe keinen Ordner...

Wenn du das Script aus einem anderen Pfad includierst, zählt der Pfad des aufrufenden Scripts. Das heißt du solltest deinen Uploadordner auch mit absoluter Pfadangabe hinterlegen, dann ist es egal von wo du aufrufst..

Falls dus noch nicht gemerkt hast: hier sind alle nur am rumraten was du da eigentlich treibst, deine Infos sind mehr als dürftig. Wäre es echt so schwer mal deine Pfadangaben und deine Programmstruktur komplett darzulegen? Im Moment wissen wir nur, dass du relative Pfadangaben aus einem PHP Script heraus verwendest, das von irgendeinem anderen Script irgendwo anders includiert wird, und das ganze bei direktem Aufruf funktioniert. Poste halt die beiden Scripts und in welchen Ordner geuploadet werden soll und fertig ist der Lack, mit dem relativen Pfad alleine kann doch kein Mensch helfen ^^
 
Ja ich merks :D Sorry dafür :)

also im anhang ist zu finden einmal Backend und das andere Upload.

Ich möchte das Upload Script im "kunden_fomular_einfuegen.php" unterhalb der Buttons haben :) ich hoffe das es nun ein wenig einfach ist mir zu helfen :)
 

Anhänge

Zurück
Oben