popupfenster in größe des Bildes (resize) und txt-download.
sacha
- programmiertechnik
0 Philipp Hasenfratz0 kerki0 kerki
Hallo. Ich habe gleich 2 Fragen, bei denen ich nicht weiter kommen. Das erste
ist mein größstes Problem. Ich arbeite gerade an einer Katalogseite. Artikelnummer,
Beschreibung und kleines Foto werden aus einer Datenbank herausgezogen.
Per Klick auf das kleine Bild, soll sich ein Popupfesnter öffnen. Ich arbeite
momentan mit einem JS:
function pop(URL){
DHTML=window.open
(URL,"Bild","status=no,toolbar=no,scrollbars=no,width=300,height=300")
und rufe das popupfenster so auf:
<a href="javascript:pop('http://www.meine-domain/katalog/gross/10000210.jpg')">
Der Name des Bildes entspricht der Artikelnummer und wird mit php direkt in
den Link integriert.
Jezt möchte ich aber, dass sich das Popupfenster der
größe des zu öffneten Bildes ändert. Der Link verweist direkt auf das Bild
und somit nicht auf irgendeine HTML-Seite. Gibt es irgendeine Möglichkeit
die Größe des Bildes festzustellen und das Popupfenster dementsprechend
zu gestallten?
Frage 2:
Ich habe eine .txt-datei, die heruntergeladen werden soll. Gibt es eine Möglichkeit
(eine einfache Möglichkeit) einen Link zu schreiben, der zum download auffordert.
Bei einer Zip-Datei geht das ja von alleine, aber txt-Dateien werden
vom Browser ja bekanntlich gleich geöffnet und nicht heruntergeladen.
Ich hoffe ich bekomme feedback und sorry für den langen Text
Danke
sacha
Jezt möchte ich aber, dass sich das Popupfenster der
größe des zu öffneten Bildes ändert. Der Link verweist direkt auf das Bild
und somit nicht auf irgendeine HTML-Seite. Gibt es irgendeine Möglichkeit
die Größe des Bildes festzustellen und das Popupfenster dementsprechend
zu gestallten?
Grösse des Bildes feststellen:
Img1 = new Image()
Img1.src="what-ever.gif";
breite = Img1.width;
hoehe = Img1.height;
dann das Popup scalieren mit resizeTo(breite, hoehe);
Ich habe eine .txt-datei, die heruntergeladen werden soll. Gibt es eine Möglichkeit
(eine einfache Möglichkeit) einen Link zu schreiben, der zum download auffordert.
Bei einer Zip-Datei geht das ja von alleine, aber txt-Dateien werden
vom Browser ja bekanntlich gleich geöffnet und nicht heruntergeladen.
Hm. Vielleicht kann man in einem Link den MIME-Typ des Zieldokumentes angeben, etwas in der Art: <a href='bla.txt' type='my-pseudo-MIME'>. Falls dies möglich ist, sollte die Download-Msg erscheinen. Sonst müsstest du ein Perl/php/ASP Script schreiben, welches die Datei mit einem pseudo-MIME-Typ zurücksendet (dann weiss der Browser nicht, was es für ne Datei ist und öffnet standardmässign die Download-Msg), oder du musst die Dateiendung ändern.
Gruss
Philipp
Jezt möchte ich aber, dass sich das Popupfenster der
größe des zu öffneten Bildes ändert. Der Link verweist direkt auf das Bild
und somit nicht auf irgendeine HTML-Seite. Gibt es irgendeine Möglichkeit
die Größe des Bildes festzustellen und das Popupfenster dementsprechend
zu gestallten?
Grösse des Bildes feststellen:
Img1 = new Image()
Img1.src="what-ever.gif";
breite = Img1.width;
hoehe = Img1.height;
dann das Popup scalieren mit resizeTo(breite, hoehe);
Ich habe eine .txt-datei, die heruntergeladen werden soll. Gibt es eine Möglichkeit
(eine einfache Möglichkeit) einen Link zu schreiben, der zum download auffordert.
Bei einer Zip-Datei geht das ja von alleine, aber txt-Dateien werden
vom Browser ja bekanntlich gleich geöffnet und nicht heruntergeladen.
Hm. Vielleicht kann man in einem Link den MIME-Typ des Zieldokumentes angeben, etwas in der Art: <a href='bla.txt' type='my-pseudo-MIME'>. Falls dies möglich ist, sollte die Download-Msg erscheinen. Sonst müsstest du ein Perl/php/ASP Script schreiben, welches die Datei mit einem pseudo-MIME-Typ zurücksendet (dann weiss der Browser nicht, was es für ne Datei ist und öffnet standardmässign die Download-Msg), oder du musst die Dateiendung ändern.
Gruss
Philipp
Danke Philipp für Deine schnelle Antwort.
An diese Bildgrößen-lösung habe ich auch schon gedacht...aber dann müsste ich
irgendwie den namen des bildes vom popup-link übergeben und ich weiß nicht wie...
denn ich rufe ja das bild direkt auf. hast Du da eine Idee?
Das mit dem pseude-mime funktioniert nicht. Wie geht das denn in PHP o.ä.?
Gruss Sscha
An diese Bildgrößen-lösung habe ich auch schon gedacht...aber dann
müsste ich irgendwie den namen des bildes vom popup-link übergeben
und ich weiß nicht wie...
Wieso denn das? Deine Funktion pop(URL) bekommt doch die Adresse des Bildes.
function pop(URL)
{
Img1 = new Image()
Img1.src=URL;
DHTML=window.open(URL,"Bild","status=no,toolbar=no,scrollbars=no,width="+Img1.width+",height="+Img1.height)
};
Das mit dem pseude-mime funktioniert nicht. Wie geht das denn in PHP o.ä.?
<?php
header("Content-Type: application/unknown");
readfile("datei-zum-übertragen.txt");
exit;
?>
hi,
warum eigentlich
header("Content-Type: application/unknown");
sollte das nicht besser "Content-Type: text/plain" sein, wenn es sich tatsächlich um eine Textdatei handelt ?
Christoph S.
header("Content-Type: application/unknown");
sollte das nicht besser "Content-Type: text/plain" sein, wenn es sich tatsächlich um eine Textdatei handelt ?
Er wollte, daß die Datei vom Browser nicht angezeigt, sondern über den Speichern-Dialog gespeichert werden kann. Das geht nur sicher, wenn der Browser mit dem Dateityp nichts anfangen kann. Den Typ text/plain dürfte aber wohl jeder Browser kennen und dementsprechend auch ohne weiter nachzufragen anzeigen.
Gruß,
soenk.e
header("Content-Type: application/unknown");
sollte das nicht besser "Content-Type: text/plain" sein, wenn es sich tatsächlich um eine Textdatei handelt ?
Er wollte, daß die Datei vom Browser nicht angezeigt, sondern über den Speichern-Dialog gespeichert werden kann. Das geht nur sicher, wenn der Browser mit dem Dateityp nichts anfangen kann. Den Typ text/plain dürfte aber wohl jeder Browser kennen und dementsprechend auch ohne weiter nachzufragen anzeigen.
Gruß,
soenk.e
Danke erstmal vielmals. Die popup-Funktion ist jetzt ok:
function pop(URL)
{
Img1 = new Image()
Img1.src=URL;
var s1 = "<TITLE>Detailansicht</TITLE>" +
"<BODY topmargin='0' leftmargin='0'>" +
"<img src='" +URL +
"'>"
var s2 = "<FORM><INPUT TYPE='BUTTON' VALUE='Okay'" +
"onClick='self.close()'>" +
"</BODY>"
popup = window.open("","Bild","status=no,toolbar=no,scrollbars=no,width="+Img1.width+",height="+Img1.height)
popup.document.write(s1+s2)
popup.document.close()
};
das perl-script funktioniert leider nicht und ich habe mit perl nicht viel Erfahrung. Ich bekomme folgende
Fehlermeldung in das Dokument geparst:
Warning: Cannot add header information - headers already sent by (output started at index.php:14) in index.php on line 26
Advanced News Scroll|Advanced News Scroll is a highly configurable vertical text scroller and vertical news ticker.||_self Applet Features|This applet features smooth scrolling, highlighted URL links, optional border, configurable margins ,and background image.||_self Input Text File|The scroll content can be loaded from a separate text file or parameters.||_self Example 2|Example 2 shows how you can use separate text file to read scroll content.||_self
Hmmmm. Was nun? Hast Du noch einen weiteren Vorschlag? Ich wäre sehr dankbar.
Habe gerade ein php-tutorial begonnen, aber ich glaube ich werde bis
zur Abgabe nicht damit durchkommen.
nochmals vielen Dank für die schnelle Antwort
das perl-script funktioniert leider nicht und ich habe mit perl nicht viel Erfahrung. Ich bekomme folgende
Fehlermeldung in das Dokument geparst:
dies ist aber php! - ein Perlvorschlag kommt nachher
Warning: Cannot add header information - headers already sent by (output started at index.php:14) in index.php on line 26
bei php wird der Code gleich an den Client gesendet (meines Wissens), d. h. wenn du zuerst html-code ausgibst, wird gleich die headerinformation Content-type: text/html\n\n ausgegeben. Versuch doch mal die headerinformationen in der ersten Zeile auszugeben, bevor du irgendetwas anderes an den client ausgibst.
das ganze geht auch mit perl:
print "Content-type: text/html\n\n";
open (F, "<text.file.name.txt");
while (<>)
{
print $_;
}
close F;
Gruss Philipp
bei php wird der Code gleich an den Client gesendet (meines Wissens), d. h. wenn du zuerst html-code ausgibst, wird gleich die headerinformation Content-type: text/html\n\n ausgegeben. Versuch doch mal die headerinformationen in der ersten Zeile auszugeben, bevor du irgendetwas anderes an den client ausgibst.
kurze Anmerkung noch hierzu:
Es gibt bereits einen Fehler, wenn du leere Zeilen vor der Headerinformation ausgibst ( der Header wird ja durch eine Leerzeile vom Content getrennt ).
das <?php header(...) ?> muss also in der 1. Zeile stehen!
Ich hoffe, dass das Hilft
Philipp
bei php wird der Code gleich an den Client gesendet (meines Wissens), d. h. wenn du zuerst html-code ausgibst, wird gleich die headerinformation Content-type: text/html\n\n ausgegeben. Versuch doch mal die headerinformationen in der ersten Zeile auszugeben, bevor du irgendetwas anderes an den client ausgibst.
kurze Anmerkung noch hierzu:
Es gibt bereits einen Fehler, wenn du leere Zeilen vor der Headerinformation ausgibst ( der Header wird ja durch eine Leerzeile vom Content getrennt ).
das <?php header(...) ?> muss also in der 1. Zeile stehen!
Ich hoffe, dass das Hilft
Philipp
sorry, ich meinte natürlich auch php und nicht perl, aber egal wo ich das
php einsetzte, ich bekomme immer die gleiche Fehlermeldung. OH...und
wenn ich das php vor den anderen content setzte, bekomme ich ausser der Fehlermeldung
gar nichts mehr zu sehen. I'm lost.
Trotzdem danke für die Hilfe
sorry, ich meinte natürlich auch php und nicht perl, aber egal wo ich das
php einsetzte, ich bekomme immer die gleiche Fehlermeldung. OH...und
wenn ich das php vor den anderen content setzte, bekomme ich ausser der Fehlermeldung
gar nichts mehr zu sehen. I'm lost.
Trotzdem danke für die Hilfe
Hm. Unterstützt dein Server Perl? - Dann könntest du es ja mit perl versuchen. Dort könnte ich dir auch besser helfen, da ich mit php eigentlich nicht arbeite.
Gruss
Philipp
sorry, ich meinte natürlich auch php und nicht perl, aber egal wo ich das
php einsetzte, ich bekomme immer die gleiche Fehlermeldung. OH...und
wenn ich das php vor den anderen content setzte, bekomme ich ausser der Fehlermeldung
gar nichts mehr zu sehen. I'm lost.
Trotzdem danke für die Hilfe
Hm. Unterstützt dein Server Perl? - Dann könntest du es ja mit perl versuchen. Dort könnte ich dir auch besser helfen, da ich mit php eigentlich nicht arbeite.
Gruss
Philipp
Ja, perl wird unterstützt in allen Verzeichnissen. Wenn das Script nicht im CGI-Bin-ordner
ist muss CGI-benutzt werden.
Ich habe es allerdings jetzt mit php hinbekommen, nur ist das Problem, dass
ein Fenster zum speichern aufgeht, aber zur speicherauswahl mit .php-Endung
angeboten wird. Der Text darin ist ok, aber derjenige für den ich das ganze mache,
versteht nichts von internet und alike und er würde nicht verstehen, dass
man das php nur durch txt ersetzen muss.
gruss sacha
Ich habe es allerdings jetzt mit php hinbekommen, nur ist das Problem, dass
was war den der Fehler? - Wie hast du's gelöst?
ein Fenster zum speichern aufgeht, aber zur speicherauswahl mit .php-Endung
angeboten wird. Der Text darin ist ok, aber derjenige für den ich das ganze mache,
versteht nichts von internet und alike und er würde nicht verstehen, dass
man das php nur durch txt ersetzen muss.
hierauf weiss ich leider keine Antwort, ich meine, ich hab keine Lösung für dieses Problem, sorry
Gruss
Philipp
Ich habe es allerdings jetzt mit php hinbekommen, nur ist das Problem, dass
was war den der Fehler? - Wie hast du's gelöst?
ein Fenster zum speichern aufgeht, aber zur speicherauswahl mit .php-Endung
angeboten wird. Der Text darin ist ok, aber derjenige für den ich das ganze mache,
versteht nichts von internet und alike und er würde nicht verstehen, dass
man das php nur durch txt ersetzen muss.
hierauf weiss ich leider keine Antwort, ich meine, ich hab keine Lösung für dieses Problem, sorry
Gruss
Philipp
Wahrscheinlich wie Du es Dir sowiso dachtest. Ich habe einfach das pure
php in einer leeren Datei gespeichert mit endung php. Alles andere habe ich e
einfach weggelassen und jetzt funktioniert es.
Großen Dank nochmals.
Wahrscheinlich wie Du es Dir sowiso dachtest. Ich habe einfach das pure
php in einer leeren Datei gespeichert mit endung php. Alles andere habe ich e
einfach weggelassen und jetzt funktioniert es.
Hat mich einfach interessiert, wo der Fehler war. Ja, ich habe es mir so gedacht (entschuldige falls ich das nicht verständlich gesagt habe).
Großen Dank nochmals.
Hat mich gefreut
Viele Grüsse
Philipp
Ich habe es allerdings jetzt mit php hinbekommen, nur ist das
Problem, dass ein Fenster zum speichern aufgeht, aber zur
speicherauswahl mit .php-Endung angeboten wird.
Der Text darin ist ok, aber derjenige für den ich das ganze
mache, versteht nichts von internet und alike und er würde
nicht verstehen, dass man das php nur durch txt ersetzen muss.
Herrje, Windows-User :)
Also, vorneweg, auch wenn Philipp das schon halbwegs erklärt hatte:
Warning: Cannot add header information - headers already sent by (output started at index.php:14) in index.php on line 26
Im HTTP-Protokoll besteht eine Antwort aus zwei Teilen, dem Kopf (eine Reihe einfacher Textzeilen) und den Daten (was auch immer), getrennt durch eine Leerzeile.
Wenn du nun Daten ausgibst, egal was, es kann auch ein einzelnes Leerzeichen sein, schickt PHP sofort alle Kopfzeilen, die trennende Leerzeile und beginnt dann mit der Überragung der eigentlichen Daten.
Der Befehl header() kann dann natürlich nicht mehr funktionieren, weil alle Kopfzeilen schon weg sind.
Deshalb die Fehlermeldung. Abhilfe: "<?php" -ganz- an den Anfang der Datei, vor dem < darf nichts kommen.
Was das Problem mit der Dateiendung angeht:
Leg in dem Verzeichnis mit den/der Textdatei eine Datei namens .htaccess an und schreib "AddType application/unknown txt" rein. Das PHP-Teil kannst du dann auf'n Mond schießen.
Kleiner Nachteil: Alle Textdateien in diesem Verzeichnis und allen seinen Unterverzeichnissen werden in Zukunft zum Download angeboten.
Falls du einen 500er-Fehler (interner Serverfehler) beim Aufruf der Textdatei bekommst, mußt du deinen Serverbetreiber ganz lieb fragen, ob er dir die FileInfo-Rechte gibt.
Gruß,
soenk.e
Hallo.
Gibt es irgendeine Möglichkeit die Größe des Bildes festzustellen und das Popupfenster dementsprechend zu gestalten?
Ja! Wie es mittels PHP geht, steht hier:
http://www.selfphp3.de/funktionsreferenz/image_funktionen/getimagesize.php4
<a href="javascript:pop('http://www.meine-domain/katalog/gross/10000210.jpg')">
Generell mag ich Popups gar nicht, weil damit von vielen Anbietern Schindluder getrieben wird. Z.B. bei Opera kann man diese daher von vornherein abblocken, selbst wenn JavaScript an sich aktiviert ist.
Du solltest daher in jedem Fall zumindest eine Alternative zum Popup anbieten.
Bei einer Zip-Datei geht das ja von alleine, aber txt-Dateien werden
vom Browser ja bekanntlich gleich geöffnet und nicht heruntergeladen.
Genaugenommen werden sie heruntergeladen und gleich geöffnet. :-)
Soweit ich weiss, gibt es keine sichere Methode, dies zu unterbinden. M.E. ist dies auch nicht nötig.
Gruß,
kerki
Hallo !
Kleine Ergänzung:
Generell mag ich Popups gar nicht, weil damit von vielen Anbietern Schindluder getrieben wird. Z.B. bei Opera kann man diese daher von vornherein abblocken, selbst wenn JavaScript an sich aktiviert ist.
Du solltest daher in jedem Fall zumindest eine Alternative zum Popup anbieten.
Gut gelöst (Oh Wunder, Oh Wunder *g*) ist es z.B. auf der Hauptseite des Forums hier. Gemeint ist der "Quicklink" oben links in der Ecke auf "News".
Gruß,
kerki