Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
vermutlich nur ein kleines problem! [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
brauche Webseite ideal für Vereine und Firmen
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
vermutlich nur ein kleines problem!


 
seril
20-09-2004, 10:20 
 
hallo zusammen, ich bin derzeit dabei eine webseite für meine freundin zu gestalten und genau genommen bin ich auch schon recht weit, doch jetzt habe ich ein problem welches ich nicht in den griff bekomme und ich glaube das es ein ganz einfaches ist und ich lediglich ein brett vorm kopf habe. ih hoffe ihr könnt mir helfen!

also, folgendes script:

<? include "header.inc.php3";

// *************** CONST ***************

$me = basename($PHP_SELF);
$basepath = "schule/";

if (strstr($ext,"/..") OR strstr($ext,"../")) die("<p>&nbsp;&nbsp;zerstört!");

$ext = $ext."/";
$path = $SERVER_NAME.dirname($PHP_SELF).$ext;

$folder = dir($basepath.$ext);
$i=0;
$i2=0;
$foldersize=0;


// *************** read() ***************

while ($datei = $folder->read())
{
$i++;
if ($i > 2 AND $datei != $me)
{
$files[$i-2]=$datei;
}
}
if (!isset($files[1])) $files[1] = "Keine Daten gefunden!";


// *************** sort ohne casesensitivty ***************

natcasesort($files);


// *************** auswertung ***************

foreach($files as $key=>$datei)
{
$i2++;
$datei = $basepath.$ext.$datei;

if (is_dir($datei)) $dir = "1"; else $dir = "0";
$filename = basename($datei);
$filesize = @number_format(filesize($datei) / 1024,2,"",".");
$foldersize += @filesize($datei) / 1024;
$filedate = @date("d/m/y - H:i",filemtime($datei));

$field[$i2] = array (
"dir" => $dir,
"filename" => $filename,
"filesize" => $filesize,
"filedate" => $filedate
);
}

// *************** formatierung ***************

function format_arr($str)
{
global $ext, $path;
if ($str[dir] == "1")
{
$icon = "dir";
$href = "?ext=".$ext.$str[filename];
}
else
{
$icon = "file";
$filesize = $str[filesize]." Kb";
$href = $path.$str[filename];
$href = "http://".str_replace("//", "/", $href);
}

echo "
<tr>
<td width=\"15\" align=\"center\"
bgcolor=\"#87CEFF\"><img src=\"images/".$icon.".gif\"></td>

<td width=\"*%\" class=\"text\"
bgcolor=\"#87CEFF\"><a href=\"".$href."\">$str[filename]</a></td>

<td class=\"textn\" width=\"80\"
align=\"center\" bgcolor=\"#87CEFF\">
<font size=\"1\">$filesize</font></td>
<td class=\"textn\" width=\"110\"
align=\"center\" bgcolor=\"#87CEFF\">
<font size=\"1\">$str[filedate]h</font></td>
</tr>";
}

echo "
<table width=\"100%\" align=\"center\" cellspacing=\"1\"
cellpadding=\"5\">
<tr>
<td align=\"center\" colspan=\"4\"
valign=\"top\">
<a href=\"javascript:history.go(-1)\">
zurück</a>
</td>
</tr>
<tr>
<td class=\"textn\">
</td>
<td class=\"textn\" align=\"left\">
Name
</td>
<td class=\"textn\" align=\"center\">
Größe
</td>
<td class=\"textn\" align=\"center\">
Datum
</td>
</tr>";

foreach ($field as $key => $echo)
{
if ($echo[dir] == "1")
{
format_arr($echo);
}
}

foreach ($field as $key => $echo)
{
if ($echo[dir] == "0")
{
format_arr($echo);
}
}

if ($foldersize > 1024*1024) {
$foldersize /= 1024*1024; $foldersize = number_format($foldersize,2)." gb";
}

elseif ($foldersize > 1024) {
$foldersize /= 1024; $foldersize = number_format($foldersize,2)." mb";
}

else $foldersize = number_format($foldersize,2)." kb";

echo "
</table>
<table width=\"100%\" align=\"center\">
<tr>
<td class=\"textn\"
align=\"center\" width=\"100%\">
<font size=\"1\">";echo $i-2;
echo " Objekt(e) belegen $foldersize</font>
</td>
</tr>
</table>";

include "footer.inc.php3"; ?>


sorgt dafür das meine freundin ihre schulsachen hochladen kann (per ftp) und diese dann von dem script angezeigt werden, mit unterordner etc. (das script habe ich nicht selber geschrieben, sondern mal irgendwo als snippet oder so gefunden, ist schon länger her).
das problem ist jetzt das wenn ich nun eine datei öffnen möchte das script den hauptpfad nicht erkennt, das heist:

das script liegt in "htdocs" und es startet seine arbeit in "htdocs/schule/" wenn ich jetzt aber in "htdocs/schule/englisch/fairy tales/" gehe und dort eine datei öffnen möchte so fehlt dem script der pfad "schule" und es verweist auf "htdocs/englisch/fairy tales/"

ich hab schon ne ganze menge ausprobiert (in meinen augen alles was mir möglich war) aber ich komme nicht drauf und ich bin leider auch nicht der crack in sachen php, ich hoffe das einer von euch mir da helfen kann.

ihr könnt euch mal anschauen wie es arbeitet unter: http://www.mitglied.lycos.de/seril312/school.php3

 
asp2php
20-09-2004, 10:44 
 
du hast kein $basepath in $href = $path.$str[filename]; angegeben

 
seril
20-09-2004, 15:24 
 
doch, das habe ich auch schonmal probiert, das funktionierte leider nicht!

 
asp2php
20-09-2004, 15:45 
 
und wie hast du's probiert? Vergisst nicht, dass $basepath lokal in der Fkt. unbekannt ist!

 
seril
20-09-2004, 15:49 
 
was heist das?? was muss ich anders machen?

 
asp2php
20-09-2004, 16:14 
 
zeige erstmal wie du gemacht hast.

 
derHund
20-09-2004, 16:18 
 
was muss ich anders machen? keine ahnung, was hast du denn gemacht?
edit:mime heute das echo von asp :rolleyes:

 
seril
20-09-2004, 16:19 
 
function format_arr($str)
{

$basepath = "schule/"; /***************die variable in der function beschrieben

global $ext, $path;
if ($str[dir] == "1")
{
$icon = "dir";
$href = "?ext=".$ext.$basepath.$str[filename]; /*********hier dann eingesetzt (an anderen stellen aber auch, jedoch ohne erfolg, ich blicke da glaube ich nicht so ganz durch ;) )
}
else
{
$icon = "file";
$filesize = $str[filesize]." Kb";
$href = $path.$str[filename];
$href = "http://".str_replace("//", "/", $href);
}

echo "
<tr>
<td width=\"15\" align=\"center\" bgcolor=\"#87CEFF\"><img src=\"images/".$icon.".gif\"></td>
<td width=\"*%\" class=\"text\" bgcolor=\"#87CEFF\"><a href=\"".$href."\">$str[filename]</a></td>
<td class=\"textn\" width=\"80\" align=\"center\" bgcolor=\"#87CEFF\"><font size=\"1\">$filesize</font></td>
<td class=\"textn\" width=\"110\" align=\"center\" bgcolor=\"#87CEFF\"><font size=\"1\">$str[filedate]h</font></td>
</tr>";
}

 
asp2php
20-09-2004, 16:39 
 
du arbeitest mit register_globals = On? (weil es drunter und drüber mit den Variablen bei dir ist)

Warum integrierst du $basepath nicht in $path sondern $ext.$basepath, hier kann was schief gehen, weil bei einer Directory du somit $basepath mehrmals dran hängst.

die richtige Stelle ist:
$href = $path.$str[filename]; // <-------hier
$href = "http://".str_replace("//", "/", $href);
d.h. wenn du
$path = $SERVER_NAME.dirname($PHP_SELF).'/'.$basepath.$ext;
machst, sollte es eigentlich gehen, es sei denn ich hab' was übersehen (bei dem durcheinander, wundert es mich nicht :D)

 
seril
20-09-2004, 17:15 
 
hm, also das übersteigt leider meine kompetenz... es klappt gar nix! für das durcheinander kann ich gar nix, das script hab ich doch gar nicht selber geschrieben *schähm*

was genau soll ich jetzt machen? (bitte so erklären als ob ich 5 jahre alt wäre, sonst hats glaub ich keinen sinn weil ichs dann nicht verstehe! =P)

 
seril
20-09-2004, 19:03 
 
alles klar, ich hab den falschen teil im script bearbeitet... hab jetzt die richtige stelle gefunden und durch folgendes ersetzt "$path = $SERVER_NAME.dirname($PHP_SELF).'/'.$basepath.$ext;"

es klappt endlich, VIELEN DANK


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:28 Uhr.