(cgi, Java) Habe mehrere Fragen
Joachim Wollmann
- programmiertechnik
Hi
1.) (cgi)
Wie kann ich das gleichzeitige Zugreifen einer Datei verhindern?
Folgendes funktioniert nicht ganz!
open (COUNT, "+<counter.txt") or die "Kann counter.txt nicht oeffnen: $!";
flock(COUNT,2); # Datei mit flock sperren (exclusiv) / zweiter Zugriff wartet, bis Datei wieder geschlossen wurde (diese Zeile funktioniert nicht! Kann das sein das mein Windows das Sperren nicht zulässt??
online hab ich es noch nie proviert! (zu reskant))
$dataa = <NEU>; # erste Zeile einlesen
$dataa++; # Zahl um eins erhöhen
seek (COUNT,0,0); # gehe an Anfang der Datei
truncate(COUNT,0); # und schneide den Rest ab (= löschen)
print COUNT $dataa; # schreibe Zähler in counter.txt
close (COUNT) or die "Kann counter.txt nicht schliessen: $!";
2.) (java oder anderes)
Wie kann ich in einer HTML-Datei Bilder laden lassen ohne dass man die Seite verlässt!
z.B:
Wenn man auf den Link klickt ladet der Browser ein bestimmtes Bild herunter
und zeigt es im Htmlfenster an!(es darf kein neues oder leeres Fenster erstellt
werden!!, das Bild wird inmitten der anderen Inhalte hineingeladen!)
Geht das überhaupt? Wenn ja wie?
Vielen DANK für Ihre Mithilfe!!
2.) (java oder anderes)
Wie kann ich in einer HTML-Datei Bilder laden lassen ohne dass man die Seite verlässt!
z.B:
Wenn man auf den Link klickt ladet der Browser ein bestimmtes Bild herunter
und zeigt es im Htmlfenster an!(es darf kein neues oder leeres Fenster erstellt
werden!!, das Bild wird inmitten der anderen Inhalte hineingeladen!)
Hallo Joachim,
naja, dynamischer Bildwechsel oder mehrere Layer/Divs übereinander.
Wenn ich es richtig verstehe, willst Du auf einer bestehenden Seite
ein Bild anzeigen lassen, wenn der User einen Verweis anklickt.
Also nimm entweder die Funktion für dynamische grafische Buttons
(die Du wohl entspr. erweitern musst) oder positionier mehrere DIVS
übereinander und lass sie entsprechend der Auswahl ein- und aus-
blenden.
Alternative wäre sicher noch, die Seite mit PHP zu generieren und
quasi über ein Reload mit wechselnder Bild-ID die Seite komplett
neu vom Server aufzurufen, also zB
bild.php3
---------
<html>
(...)
<? echo "<img src='$bild' (weitere Img-Attribute)>" ?>
<a href="bild.php3?bild=bild1.jpg">Erstes Bild</a>
<a href="bild.php3?bild=bild2.jpg">Zweites Bild</a>
<a href="bild.php3?bild=bild3.jpg">Drittes Bild</a>
(...)
</html>
Die PHP-Lösung hat zudem noch den Vorteil, dass auch User mit aus-
geschaltetem JavaScript sehen, was sie wollen uns es im Zweifel
keine Fehlermeldungen hagelt (IE 5.5 beta und NS 6.0 haben noch
einige Bugs).
Zur ersten Frage (Perl) kann ich leider nix sagen... falsche Baustelle ;-)
Viele Grüsse
Alex
Hi Joachim,
du hast recht, dass Windows kein flock unterstützt. Zumindest nicht das, welches du aus dem Windowsperl heraus benutzt. Ich weiß nicht genau, ob das Windows Dateisystem überhaupt ein Filelock unterstützt.
Du musst sowas dann schon auf ner Unixmaschine testen.
Sonst sah dein Countercode eigentlich ganz gut aus.
Und keine Angst vor Onlinetesten. Wenn du es auf deiner Seite machst, stört es doch keinen.
ALEX
Hallo!
du hast recht, dass Windows kein flock unterstützt. Zumindest nicht das, welches du aus dem Windowsperl heraus benutzt. Ich weiß nicht genau, ob das Windows Dateisystem überhaupt ein Filelock unterstützt.
Haeh? Also bei mir funzt das einwandfrei. Sollte es da etwa Unterschiede zwischen WinNT und 95/98 geben? Waere zwar denkbar, erscheint mir aber irgendwie unwahrscheinlich.
So long
Sollte es ein Unterschied zwischen FAT und NTFS geben?
ALEX
Sollte es ein Unterschied zwischen FAT und NTFS geben?
Na schon, aber ist das wichtig? Ein FileLocking kann ein OS auch *ueber* dem FS drueber realisieren, ohne dieses dafuer zu fragen. Ich denke mal, das ist mitunter sogar vernuenftiger. Win9x hat jedenfalls genuegend Synchronisationsmittel an Bord (Semaphoren, Mutex objects usw.), die man fuer Multitasking nun mal braucht, da werden sie ein File locking doch auch noch hinbekommen haben. (Na gut, es ist M$... )
So long