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)
Probleme beim Auslesen des Dateidatums [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Probleme beim Auslesen des Dateidatums


 
Helpseeker
12-08-2005, 13:38 
 
Hi zusammen,

ich bin noch nicht so lange beim PHP-Programmieren und bin bislang immer über trial-and-error weitergekommen. Jetzt hänge ich aber total und habe auch über die Suche nichts passendes gefunden.

In einem Datenverzeichnis befinden sich pdf-Dateien eines Jahrbuchs eines Sportvereins, das Adressen und Spielansetzungen enthält. Da ändert sich natürlich laufend etwas.
Ich habe nun eine csv-Datei erstell, die folgende Infos enthält: Seitennummer;Beschreibung;Größe;Dateiname
Diese Datei lese ich ein und gebe sie in einer Tabelle aus. Den Dateinamen will ich noch verlinken, sollte auch kein Problem darstellen.

Nun möchte ich aber die csv-Datei nicht ändern, wenn ich eine Datei geändert habe. Dazu steht ja in der Variablen data[3] jeweils der Name des PDF'S. Daraus müsste ich doch mit filemtime das Datum auslesen können.
So, wie ich es gemacht habe, scheint das aber ins Leere zu laufen. Es wird immer das 1970er Datum gezeigt. Der Pfad stimmt allerdings.
Warum bekomme ich das Datum nicht raus? Jelänger ich drüberschaue, desto weniger finde ich noch Ansätze.
Das alles spielt sich übrigens im geschützten (.htpsswd) Bereich ab. Hat das damit zu tun?


$load=file('daten/jahrbuch/overview.csv');
$show="<table width=80% border=0 cellspacing=0 cellpadding=0>";
$show.="<tr><td><div align=center><b>Seite</b></div></td><td><b>Beschreibung</b></td>
<td><div align=center><b>Stand</b></div></td>
<td><div align=center><b>Größe</b></div></td><td><div align=center><b>Link</b></div></td></tr>";
for($i=0;$i<=count($load)-1;$i++)
{
$data=explode(';',$load[$i]);
$datei="/daten/jahrbuch/$data[3]";
$lastupdate = filemtime($datei);
$show.="<tr>
<td><font size=2><div align=center>".$data[0]."</div></td>
<td><font size=2><div align=left>".$data[1]."</div></td>
<td><font size=2><div align=center>"
.date("d.m.Y H:i:s",$flastupdate)."</div></td>
<td><font size=2><div align=center>".$data[2]."kb</div></td>
<td><font size=2><div align=center>
<img src='daten/jahrbuch/pdf_icon.gif'></div></td>
</tr>";
}
echo $show;
echo "</table>";


Ich weiss, dass man das alles eleganter programmieren kann, aber ich bin ganz glücklich, dass es bis auf das genannte Problem überhaupt läuft. Und für meinen Zweck muss es auch nicht ausgefeilter sein. Daher wäre ich froh, wenn irgendjemand das Problem findet und mich drauf stösst.

Hoffend,

Markus

 
Quetschi
12-08-2005, 13:43 
 
Hallo,

guck nochmal genau:

$lastupdate != $flastupdate ;)

Gruss
Quetschi

 
penizillin
12-08-2005, 13:43 
 
$flastupdate

:confused:

 
Quetschi
12-08-2005, 13:43 
 
Sorry, falsch geklickt...

 
Helpseeker
12-08-2005, 13:45 
 
sorry, habe ich nur im kopierten teil nicht behoben. ist mir beim reinkopieren auch aufgefallen und ich hab's im quelltext korrigiert. problem bleibt absolut gleich.

das war's also nicht.

 
penizillin
12-08-2005, 13:48 
 
dann zeig mal, was in $lastupdate drin ist.
vermutlich eine null.
mach mal daher vorher ne überprüfung mit file_exists()

 
Quetschi
12-08-2005, 13:50 
 
Dann poste doch deinen AKTUELLEN Code ohne irgendwelche Änderungen. Scheint zur Zeit Mode zu sein ein Problem zu einem bestimmten Code präsentiert haben zu wollen aber dem Forum hier nen anderen Code vorzulegen.

Die Glaskugeln der Forumsmitglieder sind leider aufgrund einer Rückrufaktion des Herstellers alle in der Werkstatt, somit können wir momentan nur helfen wenn uns Originalcode vorgelegt wird.

 
Helpseeker
12-08-2005, 13:51 
 
Die Ausgabe ist "01.01.1970 01:00:00".
Ich habe bereits hier irgendwo gefunden, dass das daraufhindeutet, dass die Variable irgendwei leer ist.
Aber ich kann nicht erkennen, warum das bei mir der Fall sein sollte.

Hm?

 
Helpseeker
12-08-2005, 13:54 
 
Original geschrieben von Quetschi
Dann poste doch deinen AKTUELLEN Code ohne irgendwelche Änderungen. Scheint zur Zeit Mode zu sein ein Problem zu einem bestimmten Code präsentiert haben zu wollen aber dem Forum hier nen anderen Code vorzulegen.

Die Glaskugeln der Forumsmitglieder sind leider aufgrund einer Rückrufaktion des Herstellers alle in der Werkstatt, somit können wir momentan nur helfen wenn uns Originalcode vorgelegt wird.

Hä? Das ist der Originalcode. Original den versuche ich aktuell in meiner Seite ans Laufen zu bekommen. Ich hatte lediglich den Schreibfehler korrigiert, sonst nichts.

 
penizillin
12-08-2005, 13:54 
 
beachte, keiner hat nach der ausgabe gefragt.
nimm am besten var_dump()

 
Quetschi
12-08-2005, 13:55 
 
Das ist aber die mit date() formatierte Ausgabe, oder? Gib $lastupdate mal direkt aus, was kommt da?

EDIT:
Hab schon gesehen, dass das der einzige Fehler zum Originalcode war, sorry ;)

 
Helpseeker
12-08-2005, 14:04 
 
Scheint, als kommen wir der Sache schon näher.
Wenn ich mit file_exists checke, ist die datei nicht da, von der er das Datum ausgeben soll.
Und in $lastupdate ist tatsächlich nichts drin.

Daher hier mal die Original "overview.csv":

01 - 03;Hinweise;20;01-03.pdf
04;Rahmenterminplan;9;04.pdf
05 - 06;wichtige Adressen;35;05-06.pdf
07 - 08;Spielplan Herren;13;07-08.pdf
09 - 10;Spielplan Nachwuchs;12;09-10.pdf
usw.

Ist an der Angabe des Dateinamens etwas problematisch?

Wenn ich mir $datei ausgeben lasse, steht der korrekte Dateinamen drin.

 
mrhappiness
12-08-2005, 14:07 
 
Original geschrieben von Helpseeker
Wenn ich mir $datei ausgeben lasse, steht der korrekte Dateinamen drin. Der korrekte Name einer nicht vorhandenen Datei?

Ich denke mal, dass dein / am Anfang das Problem verursacht, da du damit nicht in deinem eigenen Verzeichnis suchst, sondern direkt auf alleroberster Ebene mit der Suche anfängst.

Schau dir mal $_SERVER['DOCUMENT_ROOT'] an und baue das geschickt ein.

Wo liegt die Datei denn relativ zu deiner Internetstartsteite?

 
Quetschi
12-08-2005, 14:07 
 
$datei="/daten/jahrbuch/$data[3]";könnt es sein, dass hier der Fehler liegt? Lass mal den Schrägstrich am Anfang weg:$datei="daten/jahrbuch/$data[3]";

EDIT:
Och happi... :(

 
mrhappiness
12-08-2005, 14:11 
 
ällabätsch :p :D

 
Helpseeker
12-08-2005, 14:11 
 
Original geschrieben von Quetschi
$datei="/daten/jahrbuch/$data[3]";könnt es sein, dass hier der Fehler liegt? Lass mal den Schrägstrich am Anfang weg:$datei="daten/jahrbuch/$data[3]";

EDIT:
Och happi... :(

Hatte ich ganz am Anfang auch schon versucht, klappt aber auch nciht.
Habe den Querstrich trotzdem wieder entfernt.
Wie gesagt: gleiches Ergebnis.

 
mrhappiness
12-08-2005, 14:12 
 
Original geschrieben von mrhappiness
Schau dir mal $_SERVER['DOCUMENT_ROOT'] an und baue das geschickt ein.

Wo liegt die Datei denn relativ zu deiner Internetstartsteite? Naaaaa?

 
Helpseeker
12-08-2005, 14:15 
 
Original geschrieben von mrhappiness
Der korrekte Name einer nicht vorhandenen Datei?

Wo liegt die Datei denn relativ zu deiner Internetstartsteite?

Ja ee sit so. Es wird der korrekte Name einer nicht vorhandenen Datei angezeigt. Das lässt mich ja einfach keinen Ansatzpunkt finden.

von meiner index.php aus wäre der Pfad mitglied/jahrbuch.php
und die overview.csv sowie die pdf's liegen in mitglied/daten/jahrbuch

 
mrhappiness
12-08-2005, 14:18 
 
echo $datei.'<br />';
echo realpath($datei).'<br />';
echo __FILE__.'<br />';
echo realpath(__FILE__).'<br />';
echo $_SERVER['DOCUMENT_ROOT'].'/'.$datei.'<br />';
echo realpath($_SERVER['DOCUMENT_ROOT'].'/'.$datei).'<br />';ausgabe?

 
penizillin
12-08-2005, 14:20 
 
jeder muss ein mal in seinem leben verstehen, wie man mit pfaden arbeitet. und auch wenn dieser thread noch um weitere 10 posts wächst, liegt es nur noch an dir - du weißt wo der fehler liegt, du weißt, was man erreichen musst, du weißt, wie man google bedient. viel glück.

 
Helpseeker
12-08-2005, 14:24 
 
Original geschrieben von mrhappiness
echo $datei.'<br />';
echo realpath($datei).'<br />';
echo __FILE__.'<br />';
echo realpath(__FILE__).'<br />';
echo $_SERVER['DOCUMENT_ROOT'].'/'.$datei.'<br />';
echo realpath($_SERVER['DOCUMENT_ROOT'].'/'.$datei).'<br />';ausgabe?

daten/jahrbuch/01-03.pdf

/homepages/30/d20024192/htdocs/mitglied/jahrbuch.php
/homepages/30/d20024192/htdocs/mitglied/jahrbuch.php
/kunden/homepages/30/d20024192/htdocs/daten/jahrbuch/01-03.pdf

daten/jahrbuch/04.pdf

/homepages/30/d20024192/htdocs/mitglied/jahrbuch.php
/homepages/30/d20024192/htdocs/mitglied/jahrbuch.php
/kunden/homepages/30/d20024192/htdocs/daten/jahrbuch/04.pdf

daten/jahrbuch/05-06.pdf

/homepages/30/d20024192/htdocs/mitglied/jahrbuch.php
/homepages/30/d20024192/htdocs/mitglied/jahrbuch.php
/kunden/homepages/30/d20024192/htdocs/daten/jahrbuch/05-06.pdf

Das kommt raus. Natürlich noich wesentlich mehr, aber das reicht sicher, oder?

 
mrhappiness
12-08-2005, 14:30 
 
Und?
Stimmt einer der Werte?

 
Helpseeker
12-08-2005, 14:31 
 
Die beiden ersten Werte stimmen.
Der letzte nicht. Da fehlt vor daten/... noch "mitglied", denn das Datenverzeichnis liegt ebenfalls mit geschützten Mitgliederbereich.

 
mrhappiness
12-08-2005, 14:36 
 
Original geschrieben von Helpseeker
Die beiden ersten Werte stimmen.Nein, die Datei gibt's doch nicht, hast du doch eben gesagt

Da fehlt vor daten/... noch "mitglied", denn das Datenverzeichnis liegt ebenfalls mit geschützten Mitgliederbereich. Ja Himmelhergottsackzefixnochmal, dann schreib's halt rein

<stoiber>
Du bist bestimmt kein Bayer, sondern einer dieser Ossis, oder?
</stoiber>

 
Helpseeker
12-08-2005, 14:42 
 
Habe ich längst gemacht. Darauf bin ich auch gekommen.

Ist es eigentlich für einene Fortgeschrittenen oder Profi so extrem schwer, sich in profane Probleme eines Anfängers einzudenken? Es scheint so!
Immer wenn Eure ersten und superschnellen Antworten nciht gleich Erfolg bringen, fangt ihr an, die Hilfesuchenden zum Idioten zu stempeln.

Um zum Thema zurückzukommen: das verzeichnis "mitglied" habe ich hinzugefügt, es ändert sich aber immer noch nichts.

Jetzt mache ich erstmal Feierabend und werde mcih morgen nochmal damit auseinandersetzetn.
Vielleich that ja jemand noch eine Hilfestellung parat.

EDIT:
Sich hinter einem Stoiberzitat zu verstecken ist feige!
Und ich bin überigens kein OSSI, sondern vom Niederrhein. Noch Fragen?

 
Quetschi
12-08-2005, 14:43 
 
HimmelhergottsackzefixnochmalWenn dann schon:
Himme-heagod-saggl-zefix-namoi :D

 
mrhappiness
12-08-2005, 14:45 
 
Original geschrieben von Helpseeker
Um zum Thema zurückzukommen: das verzeichnis "mitglied" habe ich hinzugefügt, es ändert sich aber immer noch nichts.Dann hast du's entweder falsch gemacht oder du hast gelogen, als du gesagt hast, dass da mitglied fehlt. Such dir was aus

Da du ja nicht mehr gewillt bist, uns den aktuellen Code zur Verfügung zu stellen, kann dir auch keiner mehr helfen...

Was den Rest deines Postings angeht:
Hättest du mal im Handbuch die Beschreibung zu realpath gelesen, hättest du gewusst, warum du teileweise Datei- und Pfadangaben von meinen echos bekommen hast und teilweise einfach gar nichts und darauf aufbauend dann deine Fehler korrigieren können, aber vielleicht ist es von einem Anfänger einfach zuviel erwartet, mal selbst im Handbuch nachzulesen, schließlich gibt's da weder Trichter noch Zucker...

 
mrhappiness
12-08-2005, 14:47 
 
Original geschrieben von Helpseeker
EDIT:
Sich hinter einem Stoiberzitat zu verstecken ist feige!
Und ich bin überigens kein OSSI, sondern vom Niederrhein. Noch Fragen? Wollte nur mal anders versuchen, dich zu motivieren, Eigeninitiative zu zeigen.
Ich halte dich nicht für blöd. Ich halte dich für etwas faul...

@Quetschi
noamoi, wenn shcon richtig, dann richtig richtig
Das Sakrement-Halleluja-Gedöns fehlt auch noch :D

 
Helpseeker
12-08-2005, 14:50 
 
:respekt:

für diese qualifizierte Aussage.
Wie soll eigentlich ein Anfänger darauf kommen, die Funktion x oder y oder z gezielt zu suchen? Hä?
Eben! Er ist auf einen Hinweis angewiesen, der auch für einen Anfänger verständlich ist.

Ich finde es wirklich prima, dass Ihr Euch soviel Mühe macht, aber ein bisschen mehr Geduld mit Anfängern wäre manchmal nicht sooooo übel.

Nichts für ungut!

 
mrhappiness
12-08-2005, 14:52 
 
Original geschrieben von Helpseeker
:respekt:

für diese qualifizierte Aussage.
Wie soll eigentlich ein Anfänger darauf kommen, die Funktion x oder y oder z gezielt zu suchen? Hä?
Eben! Er ist auf einen Hinweis angewiesen, der auch für einen Anfänger verständlich ist.Sorry, ich dachte, du als Anfänger sagst dir: Hoppla, was ist denn realpath, da schaue ich doch gleich mal bei http://www.php.net nach, vielleicht hilft es mir ja

War wohl etwas zu viel erwartet, wie ich merke.
Wie sollte ein Hinweis denn aussehen, damit du ihn als Hinweis interpretierst?

Wenn ich dir gesagt hätte: Schau dir realpath im Handbuch an, hättest du's doch auch nicht verstanden, oder? Ganz ehrlich?

 
soon
13-05-2007, 18:44 
 
Hallo,

auch wenn der letzte Beitrag schon einige Zeit her ist, hätte ich mal eine Frage zu dem Skript. Kann man diesem Skript auch eine Sortierfunktion hinzufügen, so dass man durch Klick auf die Überschrift die jeweilige Spalte sortieren kann?

Ich finde das Skript sehr interessant, bin schon länger auf der Suche nach so etwas. Die Sortierfunktion würde es perfekt machen.

Grüße
Soon

 
onemorenerd
13-05-2007, 19:16 
 
Ja, das kann man und wir würden uns freuen, wenn du es schaffst und anschließend das verbesserte Script wieder hier postest.
Frohes Schaffen!

 
soon
13-05-2007, 20:07 
 
Darin liegt das Problem, ich bin in Bezug auf PHP ein absoluter Newbie. :D Ich hatte gehofft, dass das Hinzufügen einer Sortierfunktion nicht so aufwendig sei und das sich vielleicht jemand schon mit dem Skript weiter beschäftigt hat.

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:32 Uhr.