Willkommen auf dem Portal für Mediengestalter
|
|
Autor |
Nachricht |
zero-dragon
Threadersteller
Dabei seit: 30.05.2009
Ort: -
Alter: 36
Geschlecht: -
|
Verfasst So 31.05.2009 18:00
Titel php problem mit ../ |
 |
|
hi @ all
habe nur eine kurze Fraage, und zwar:
Ich bin dabei eine Fotogalerie für eine gute Freundin zu erstellen, die dann auch auf ihr Seite kommt.
Nun habe ich ein Upload Script reingestellt welches ein großes bild und ein Thumb auf den Server läd.
Bei der Pfadangabe habe ich dann Code: | $img_ordner="../big/portrait/"; | angegeben, nur versteht der anscheinend die Pfandangabe ../ nicht...
http://www.php-space.info/bilder-upload-script/
dann wollte ich durch eine flash galerie die bilder aus diesem Ordner nehmen und dann darstellen lassen...
Da ist aber das sele Problem Code: | $path = stripslashes($_POST["../assets/"]);//"songs/";//Pfadangabe des Ordners |
dass die Galerie den Ordner wegen dem ../ nicht findet
http://www.flashforum.de/forum/showthread.php?t=270814
ich hoffe so, dass ihr Rat wisst...
LG,
Mika
|
|
|
|
 |
bacon
Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
|
Verfasst So 31.05.2009 18:48
Titel
|
 |
|
Sieht zwar generell komisch aus, was du da machst. Vor allem das mit dem Post-array. Was du aber generell tun kannst, wenn du einen relativen Pfad ausgehend von deiner Script-Datei in einen absoluten umwandeln möchtest:
Code: | $path = dirname(__FILE__) . '/../path/zur/datei'; |
|
|
|
|
 |
Anzeige
|
|
 |
zero-dragon
Threadersteller
Dabei seit: 30.05.2009
Ort: -
Alter: 36
Geschlecht: -
|
Verfasst So 31.05.2009 19:20
Titel
|
 |
|
bacon hat geschrieben: | Sieht zwar generell komisch aus, was du da machst. Vor allem das mit dem Post-array. Was du aber generell tun kannst, wenn du einen relativen Pfad ausgehend von deiner Script-Datei in einen absoluten umwandeln möchtest:
Code: | $path = dirname(__FILE__) . '/../path/zur/datei'; |
|
naja, deshalb habe ich ja die Links zu den Daten mit reingeschrieben...
Dein Vorschlag finktioniert leider auch nicht
da sind auf jeden fall 2 daten gegeben (flash galarie)
Code: | <?php
$path = stripslashes($_POST["../assets/"]);//"songs/";//Pfadangabe des Ordners
//$path = "assets/images/small/";
$handle = opendir ($path);//oeffnen des Ordners
while ($file = readdir ($handle)) {
if (!is_dir($file)){
$folderArray[] = $file;
}
}
closedir($handle);
asort($folderArray);
echo "liste=";
foreach($folderArray as $row) {
echo $row.',';
}
/*
$handle = opendir ($path);//oeffnen des Ordners
while($file = readdir($handle)) {
if ($file != "." && $file != "..") {
$exploded = explode(".",$file);//Trennen nach "."
$xml .= '<song name="'.$exploded[0].'" file="'.$path.$file.'" />';
}
}
echo utf8_encode($xml);//versenden des XML
*/
?> |
folderliste.php
Code: | <?php
dirname(__FILE__) . '/../assets';//"songs/";//Pfadangabe des Ordners
$handle = opendir ($path);//oeffnen des Ordners
while ($file = readdir ($handle)) {
if ($file != "." && $file != ".."){
$fileArray[] = $file;
}
}
closedir($handle);
asort($fileArray);
echo "liste=";
foreach($fileArray as $row) {
echo $row.',';
}
/*
$handle = opendir ($path);//oeffnen des Ordners
while($file = readdir($handle)) {
if ($file != "." && $file != "..") {
$exploded = explode(".",$file);//Trennen nach "."
$xml .= '<song name="'.$exploded[0].'" file="'.$path.$file.'" />';
}
}
echo utf8_encode($xml);//versenden des XML
*/
?> |
folder auslesen.php
dann noch eine js. Datei und eine swf Datei und dann halt noch der Ordner... vielleicht wirst du ja daraus schlau...[/code]
PS:
vorher stand da
$path = stripslashes($_POST["path"]);//"songs/";//Pfadangabe des Ordners
Zuletzt bearbeitet von zero-dragon am So 31.05.2009 19:28, insgesamt 1-mal bearbeitet
|
|
|
|
 |
bacon
Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
|
Verfasst So 31.05.2009 19:33
Titel
|
 |
|
Nur halb, das ist mir auch zu krude, ehrlich gesagt. Welche php version nutzt du denn? Die __FILE__-Konstante steht afraik erst ab php5 zur Verfügung, und diese Version solltest du auch verwenden. PHP4 ist veraltet und nicht zu empfehlen. Ansonsten musst du dir eine andere Möglichkeit ausdenken, um an den richtigen, absoluten Pfad zu gelangen.
Zu deinem Script:
Du erwartest glaube ich per post eine Pfadangabe ("../assets"). Trotzdem greifst du nicht auf den Bezeichner zurück ($_POST['folder'], sondern setzt direkt den erwarteten Wert ein. Das ist überaus seltsam, was du da tust. Weiter:
Dann holst du alle Slashes dort raus, also bleibt "..assets". Was willste denn damit anfangen? Da stehen dann zwei Punkte vor deinem Verzeichnisnamen.
Mal davon abgesehen, dass dieser Ansatz einen sicherheitstechnischen Supergau verspricht.
Auslesen einer (rekursiven) Verzeichnisstruktur, the right way:
Code: |
foreach(new RecursiveIteratorIterator(
new RecursiveDirectoryIterator(dirname(__FILE__) . '/../assets'),
RecursiveIteratorIterator::SELF_FIRST) AS $file) {
if($file->isFile()) ... dosomething()
}
|
|
|
|
|
 |
zero-dragon
Threadersteller
Dabei seit: 30.05.2009
Ort: -
Alter: 36
Geschlecht: -
|
Verfasst So 31.05.2009 19:45
Titel
|
 |
|
bacon hat geschrieben: | Nur halb, das ist mir auch zu krude, ehrlich gesagt. Welche php version nutzt du denn? Die __FILE__-Konstante steht afraik erst ab php5 zur Verfügung, und diese Version solltest du auch verwenden. PHP4 ist veraltet und nicht zu empfehlen. Ansonsten musst du dir eine andere Möglichkeit ausdenken, um an den richtigen, absoluten Pfad zu gelangen.
Zu deinem Script:
Du erwartest glaube ich per post eine Pfadangabe ("../assets"). Trotzdem greifst du nicht auf den Bezeichner zurück ($_POST['folder'], sondern setzt direkt den erwarteten Wert ein. Das ist überaus seltsam, was du da tust. Weiter:
Dann holst du alle Slashes dort raus, also bleibt "..assets". Was willste denn damit anfangen? Da stehen dann zwei Punkte vor deinem Verzeichnisnamen.
Mal davon abgesehen, dass dieser Ansatz einen sicherheitstechnischen Supergau verspricht.
Auslesen einer (rekursiven) Verzeichnisstruktur, the right way:
Code: |
foreach(new RecursiveIteratorIterator(
new RecursiveDirectoryIterator(dirname(__FILE__) . '/../assets'),
RecursiveIteratorIterator::SELF_FIRST) AS $file) {
if($file->isFile()) ... dosomething()
}
|
|
also
1. php5
2. bin leider noch totaler Anfänger, was php angeht. Muss es jetzt lernen weil ich eh eine Ausbildung zum Mediengestalter für neue Medien anfangen möchte, leider jedoch brauch ich bis nächste woche eine Lörung für meine Probleme...
ich kann dir nur sagen, dass das Script einen Ordner ausliest der wie folgt aussieht
Zitat: | assets/images/big/stadtpark/bilder.jpg
assets/images/small/stadtpark/bilder.jpg |
wie du siehst sind da 2 verschiedene ordner mit Bildern die der dann aber anscheinend unterscheiden kann...
ich verstehe das einfach nicht...
vorher war der Ordner "assets" mit der PHP datei in einem Ordner drinne
Code: | $path = stripslashes($_POST["path"]);//"songs/";//Pfadangabe des Ordners |
dann musste ich den Ornder assets einen Ordner zurück setzten, da dache ich, ich kann es einfach so umändern
Code: | $path = stripslashes($_POST["../assets/"]);//"songs/";//Pfadangabe des Ordners |
wieso funktioniert das denn einfach nicht...
|
|
|
|
 |
Impigra
Dabei seit: 17.05.2006
Ort: Egenhofen
Alter: 46
Geschlecht:
|
Verfasst Fr 05.06.2009 02:19
Titel
|
 |
|
sorry.. aber mehr fällt mir dazu nicht ein...
Und... natürlich...
www.google.de
das was bacon geschrieben hat ist absolut zutreffend... vielleicht liegts ja daran dass es nicht funktioniert...
|
|
|
|
 |
|
|
 |
Ähnliche Themen |
Formmailer-Problem-neues problem
IE PNG FIX Problem
CSS - Problem mit IE
css-problem
CSS Problem bei FF auf Mac
css-Problem
|
 |
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|