Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Frage Entwicklung HTML

GELÖST

html Submit Box für bestimmten Download

Mitglied: peterha

peterha (Level 1) - Jetzt verbinden

07.12.2008, aktualisiert 21:48 Uhr, 5582 Aufrufe, 20 Kommentare

Hallo Freunde,

kann mir jemand von euch helfen einen Code zu bauen der folgendes macht: Eine kleine Textbox und daneben ein Submit oder halt Download Button. in das feld soll man z.B. eine Zahl eintragen (das ist der download name) z.B. 30 dann klickt man auf download und der download startet bzw. der speichern unter dialog kommt.

damit möchte ich umgehen auf der seite zig links zu haben... die ja eh nur auf die zahlen verweisen.

Wie geht sowas? habe schon recht viel gegooglet... wär cool wenn jemand ne idee hat

Vielen Dank und schönes WE!

Gruß
Christoph
Mitglied: Arano
07.12.2008 um 14:05 Uhr
Moin,

jo ich habe da ne Idee und es mal eben schnell getippt:
index.php
01.
<?php 
02.
 if(isset($_POST['d_id']) && is_numeric($_POST['d_id'])){ 
03.
  $d_id  = (int)$_POST['d_id']; 
04.
  $d_dir = './files/'
05.
  switch($d_id){ 
06.
   case 1: $d_file='A_Trip_to_elsewhere-1920x1440.jpg'; $d_ct = 'image/jpeg'; break
07.
   case 2: $d_file='Enchanted_Forest-1600x1200.jpg';    $d_ct = 'image/jpeg'; break
08.
   case 3: $d_file='Fantasia-1600x1200.jpg';            $d_ct = 'image/jpeg'; break
09.
   case 4: $d_file='xecho.exe';                         $d_ct = 'application/octet-stream'; break
10.
11.
  header("Content-Type: ".$d_ct);                               // Übermittelt den Content-Type 
12.
  header("Content-Disposition: attachment; filename=".$d_file); // Übermittelt, was heruntergeladen werden soll 
13.
  header("Content-Length: ".filesize($d_dir.$d_file));          // Übermittelt die Größe der Datei 
14.
  readfile($d_dir.$d_file); 
15.
16.
?> 
17.
<html> 
18.
 <head> 
19.
  <title>Filedownload fuer peterha</title> 
20.
 </head> 
21.
 <body> 
22.
   
23.
  <form action="./index.php" method="POST"
24.
   <fieldset> 
25.
    <legend>Downloadnummer eingeben:</legend> 
26.
    <input type="text" name="d_id" value=""><br> 
27.
    <input type="submit" name="get_dl_btn" value="Downloaden"
28.
   </fieldset> 
29.
  </form> 
30.
   
31.
 <body> 
32.
</html>
Habe natürlich im selben Verzeichnis den Ordner "fiels" der die entsprechenden Dateien enthält.

Ebenfalls ein schönes Wochenende, oder was davon noch übrig ist ;)

~Arano

EDIT:
Die Content-Typen habe ich hier her : http://www.selfphp.de/kochbuch/kochbuch.php?code=37
Bitte warten ..
Mitglied: peterha
07.12.2008 um 14:13 Uhr
WOW hammer geil VIELEN DANK!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Wenn ich irgendwas für dich tun kann sag bescheid. Vielen Dank nochma )))))))

Gruß
Christoph
Bitte warten ..
Mitglied: peterha
07.12.2008 um 15:04 Uhr
ich habe es jetzt mal angepasst. eine frage: was muss ich tun damit er nicht auf dem server irgendwo im internet die datei sucht (die übrigens wirklich nur zahlen sind - also ohne datei endung.) sucht sondern bei mir zu hause auf dem server, den ich dyn dns nach außen mappe: ftpuser.mine.nu


<?php
if(isset($_POST['d_id']) && is_numeric($_POST['d_id'])){
$d_id = (int)$_POST['d_id'];
$d_dir = 'http://www.ftpuser.mine.nu/download/'";
switch($d_id){
case 1: $d_file='1'; $d_ct = 'application/octet-stream'; break;
case 2: $d_file='2'; $d_ct = 'application/octet-stream'; break;
case 3: $d_file='3'; $d_ct = 'application/octet-stream'; break;
case 4: $d_file='4'; $d_ct = 'application/octet-stream'; break;
}
header("Content-Type: ".$d_ct); Übermittelt den
Content-Type
header("Content-Disposition: attachment; filename=".$d_file);
Übermittelt, was
heruntergeladen werden soll
header("Content-Length: ".filesize($d_dir.$d_file)); // Übermittelt die Größe der
Datei
readfile($d_dir.$d_file);
}
?>
<html>
<head>
<title>Download</title>
</head>
<body>

<form action="./index.php" method="POST">
<fieldset>
<legend>Downloadnummer eingeben:</legend>
<input type="text" name="d_id" value=""><br>
<input type="submit" name="get_dl_btn" value="I´m cool!">
</fieldset>
</form>

<body>
</html>
Bitte warten ..
Mitglied: VW
07.12.2008 um 15:10 Uhr
Moin,

wie du oben im Code sehen kannst, ist dort ein lokaler Ordner auf dem Server angegeben. Da php auf dem Server ausgeführt wird, solltest du diesen auf nicht in einer Internet-URL, sondern im lokalen Format (ja nach verwendetem Betriebssystem) angeben.

Unterordner namens "files":
./files/
Ordner "files" direkt auf root-verzeichnis-ebene des Webservers:
/files/
Ordner "files" auf der selben Ebene wie der Ordner mit deiner index.php:
../files/
VW
Bitte warten ..
Mitglied: peterha
07.12.2008 um 15:48 Uhr
hmhm danke. aber es handelt sich bei den dateien um recht große. so viel webspace habe ich ja nicht. das ist auch ein grund warum ich jetzt nen server zu hause laufen habe.

wenn man den ordner anpasst müsste es doch gehen oder??

$d_dir = 'http://www.mein-server.de/download-ordner/'";

zum beispiel

liege ich da flasch??
also ich hätte es gern das das php auf dem 1und1 server läuft und dann aber den download von mir zu hause startet...
Bitte warten ..
Mitglied: VW
07.12.2008 um 15:57 Uhr
Wenn du "recht große" Dateien von zuhause herunterladen lassen möchtest, hast du hoffentlich eine Standleitung mit min. 2 MBit/s Upload?

http://www.mein-server.de/download-ordner/
sollte eigentlich zumindest für den Download funktionieren. Ich weiß allerdings nicht, was
01.
  header("Content-Disposition: attachment; filename=".$d_file); // Übermittelt, was heruntergeladen werden soll  
02.
  header("Content-Length: ".filesize($d_dir.$d_file));          // Übermittelt die Größe der Datei
davon hält, da ich kein PHP-Spezialist bin.

VW
Bitte warten ..
Mitglied: Arano
07.12.2008 um 16:04 Uhr
Das hättest mal gleich sagen sollen !

Nein, du kannst doch nicht ernsthaft erwarten, das ich mit dem PHP auf meinem Rechner (InternetServer) Zugriff auf DEINEN bekomme !?
Das wäre ja ein riesen Sicherheitsloch usw. ect. pp.

Da es sich um eine URL handelt auf die weitergeleitet werden soll, kann mans so machen:
01.
<?php 
02.
 if(isset(...) && is_numeric(...)){ 
03.
  $d_id = (int)$_POST['d_id']; 
04.
  header('Location: http://deine-adresse/'.$d_id); 
05.
06.
?> 
07.
<!-- hier weider das formular -->

~Arano
Bitte warten ..
Mitglied: peterha
07.12.2008 um 16:27 Uhr
nein so wie du sagst hab ich das nicht erwartet. die dateien sind bei zu hause auf dem server und bereits von außen zu erreichen: http://www.ftpuser.mine.nu/download/datei

und auf dem 1und1 server soll das php sein im ordner download (http://www.ftpuser.mine.nu/download/) gucken ob z.b. eine datei 4711 da ist. dann download.

meine internetleitung ist 16 mbit ADSL dynamisch Ich hab ca. 130 KB Upload und 2 MB Download. reicht für meine zwecke. mit größeren dateien meine ich lediglich einige hunder MB. nicht mehr.

ok ich probiere es mal damit. mom

vielen dank schon mal.
Bitte warten ..
Mitglied: peterha
07.12.2008 um 16:46 Uhr
also jetzt kommt diese felhermeldung: Parse error: syntax error, unexpected '.', expecting T_VARIABLE or '$' in /homepages/3/d265360358/htdocs/test.php on line 2


und das von dieser PHP datei:

<?php
if(isset(...) && is_numeric(...)){
$d_id = (int)$_POST['d_id'];
header('Location: http://ftpuser.mine.nu/download/';.$d_id);
}
case 1: $d_file='A_Trip_to_elsewhere-1920x1440.jpg'; $d_ct = 'image/jpeg'; break;
case 2: $d_file='Enchanted_Forest-1600x1200.jpg'; $d_ct = 'image/jpeg'; break;
case 3: $d_file='Fantasia-1600x1200.jpg'; $d_ct = 'image/jpeg'; break;
case 4: $d_file='xecho.exe'; $d_ct = 'application/octet-stream'; break;
}
header("Content-Type: ".$d_ct); Übermittelt den Content-Type
header("Content-Disposition: attachment; filename=".$d_file);
Übermittelt, was heruntergeladen werden soll
header("Content-Length: ".filesize($d_dir.$d_file)); // Übermittelt die Größe der Datei
readfile($d_dir.$d_file);
}
?>
<html>
<head>
<title>Filedownload fuer peterha</title>
</head>
<body>

<form action="./index.php" method="POST">
<fieldset>
<legend>Downloadnummer eingeben:</legend>
<input type="text" name="d_id" value=""><br>
<input type="submit" name="get_dl_btn" value="Downloaden">
</fieldset>
</form>

<body>
</html>


ich weiß... ich hab da kaum ahnung von... will auch nicht nerven... aber was mache ich da falsch??

gruß
Christoph
Bitte warten ..
Mitglied: Arano
07.12.2008 um 18:44 Uhr
Ersetzte Zeile zwei mit dieser hier:
01.
if(isset($_POST['d_id']) && is_numeric($_POST['d_id'])){ 
Wenn du die beiden Zeilen nun vergleichst, wird dir auffallen, das ich es mir beim zweiten mal erspart habe alles zu tippen und mit "..." abgekürzt habe.

Kaum Ahnung zu haben ist nicht weiter schlimm, die hat uns allen mal gefehlt...

~Arano
Bitte warten ..
Mitglied: peterha
07.12.2008 um 19:59 Uhr
hey

momentan kommt diese fehlermeldung: Parse error: syntax error, unexpected T_CASE in /homepages/3/d265360358/htdocs/admin.php on line 6

das file liegt unter
http://www.kaeferkreativ.de/admin.php

ist sonst noch downloadbar http://www.kaeferkreativ.de/admin.rar

die downloaddateien liegen jetzt (VERSCHLÜSSELT) unter http://ftpuser.mine.nu/download/4711

hast du da noch ne idee??

eventuell kannst du es mir ja per mail schicken wenn du so nett bist ich würde mich sehr freuen. serioes@online.de

Gruß
Christoph
Bitte warten ..
Mitglied: VW
07.12.2008 um 20:09 Uhr
01.
<?php 
02.
 if(isset($_POST['d_id']) && is_numeric($_POST['d_id'])){ 
03.
  $d_id = (int)$_POST['d_id']; 
04.
  header('Location: http://deine-adresse/'.$d_id); 
05.
06.
?> 
07.
<html> 
08.
<head> 
09.
<title>Filedownload fuer peterha</title> 
10.
</head> 
11.
<body> 
12.
 
13.
<form action="./index.php" method="POST"
14.
<fieldset> 
15.
<legend>Downloadnummer eingeben:</legend> 
16.
<input type="text" name="d_id" value=""><br> 
17.
<input type="submit" name="get_dl_btn" value="Downloaden"
18.
</fieldset> 
19.
</form> 
20.
 
21.
<body> 
22.
</html>
Das sollte funktionieren. Die "Case"-Angaben brauchst du nicht mehr. Die werden ohne "Switch"-Anweisung auch nicht verstanden, deshalb der Fehler.

MfG,
VW

PS: Ungetestet.
Bitte warten ..
Mitglied: peterha
07.12.2008 um 20:30 Uhr
ok. man findet es jetzt unter www.käferkreativ.de/cool.php wenn ich ne zahl eingebe kommt 404 file not found. Momentan sieht der code so aus. wo ist denn nur der fehler????

<?php
if(isset($_POST['d_id']) && is_numeric($_POST['d_id'])){
$d_id = (int)$_POST['d_id'];
header('Location: http://ftpuser.mine.nu/download/';.$d_id);
}
?>
<html>
<head>
<title>Filedownload fuer peterha</title>
</head>
<body>

<form action="./index.php" method="POST">
<fieldset>
<legend>Downloadnummer eingeben:</legend>
<input type="text" name="d_id" value=""><br>
<input type="submit" name="get_dl_btn" value="Downloaden">
</fieldset>
</form>

<body>
</html>
Bitte warten ..
Mitglied: VW
07.12.2008 um 20:38 Uhr
Ich verwende als Programm Notepad++ und sehe daher recht schnell, dass ab dem
header('Location: http://ftpuser.mine.nu/download/&#039
alles als Text übergeben wird. Das "&#039;" muss durch ein Einfaches Anführungszeichen ' ersetzt werden.

Es wäre außerdem sehr praktisch, wenn du geposteten Quelltext in einen Code-Tag (code type=php) packst, den du unter der Datei mit einem (/code) abschließt. Dann hast du auch farbliche Markierungen und wir können uns direkt auf Zeilen-Nrn. beziehen.
Dann musst du statt den runden die gepfeilten Klammern verwenden.

VW
Bitte warten ..
Mitglied: peterha
07.12.2008 um 20:44 Uhr
mhmh ich hab mich auch gewundert.... das kommt nur wenn ich das reinkopiere!!
im orig test ist es nicht drin.

(code type=php)
<?php
if(isset($_POST['d_id']) && is_numeric($_POST['d_id'])){
$d_id = (int)$_POST['d_id'];
header('Location: http://ftpuser.mine.nu/download/';.$d_id);
}
?>
<html>
<head>
<title>Filedownload fuer peterha</title>
</head>
<body>

<form action="./index.php" method="POST">
<fieldset>
<legend>Downloadnummer eingeben:</legend>
<input type="text" name="d_id" value=""><br>
<input type="submit" name="get_dl_btn" value="Downloaden">
</fieldset>
</form>

<body>
</html>
(/code)
Bitte warten ..
Mitglied: VW
07.12.2008 um 20:55 Uhr
fast ok....
Zitat von VW:
Dann musst du statt den runden die gepfeilten Klammern verwenden.
Das hast du wohl gerade mal übersehen?
Siehe hier

VW
Bitte warten ..
Mitglied: peterha
07.12.2008 um 21:14 Uhr
jelernt

01.
<?php 
02.
 if(isset($_POST['d_id']) && is_numeric($_POST['d_id'])){ 
03.
  $d_id = (int)$_POST['d_id']; 
04.
  header('Location: http://ftpuser.mine.nu/download/'.$d_id); 
05.
06.
?> 
07.
<html> 
08.
<head> 
09.
<title>Filedownload fuer peterha</title> 
10.
</head> 
11.
<body> 
12.
 
13.
<form action="http://www.kaeferkreativ.de/index.php" method="POST"
14.
<fieldset> 
15.
<legend>Downloadnummer eingeben:</legend> 
16.
<input type="text" name="d_id" value=""><br> 
17.
<input type="submit" name="get_dl_btn" value="Downloaden"
18.
</fieldset> 
19.
</form> 
20.
 
21.
<body> 
22.
</html>
Bitte warten ..
Mitglied: VW
07.12.2008 um 21:24 Uhr
Wie heißt die Datei selber auf dem Server? Ist die wirklich unter http://www.kaeferkreativ.de/index.php erreichbar?
Ansonsten musst du Zeile 13 anpassen.

Allgemeingültig wäre z.B.
<form action="<?php print $_SERVER['PHP_SELF']; ?>" method="post">
als Zeile 13 in der von dir geposteten Datei.

VW
Bitte warten ..
Mitglied: peterha
07.12.2008 um 21:44 Uhr
die dateien heißen nur wie zahlen und liegen bei mir zu hause.

Namen der Files: also 1 oder 2 oder 3 OHNE datei endungen. das kannst du unter http://ftpuser.mine.nu/download/ auch sehen,

HAB DIE ZEILE ERSETZT !!!!!!!!! ES GEHT!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

DANKE AN ALLE!!!!!!!!
Bitte warten ..
Mitglied: VW
07.12.2008 um 21:48 Uhr
Zitat von peterha:
die dateien heißen nur wie zahlen und liegen bei mir zu hause.

Namen der Files: also 1 oder 2 oder 3 OHNE datei endungen. das kannst
du unter http://ftpuser.mine.nu/download/ auch sehen,

Ich meinte zwar eigentlich die php-Datei, die das Formular enthält, aber, wenn es jetzt geht, geht's ja auch

Problem war demnach, dass das Formula beim Abschicken auf eine andere Datei verwiesen hat, die aber nicht existierte.

Dann bitte den Beitrag noch als gelöst markieren.

VW
Bitte warten ..
Ähnliche Inhalte
PHP
Bestimmten HTML-Code aus String auslesen
gelöst Frage von pennertennerPHP2 Kommentare

Hallo liebe Admins. :) Ich habe folgendes Problem. Ich habe einen HTML-Code (komplette Webseite) in einem String als Variable. ...

HTML
Seitenwechsel innerhalb einer div-Box in HTML+CSS
gelöst Frage von honeybeeHTML7 Kommentare

Hallo, ich habe mit dem HTML-Tag <div> und CSS folgendes Webseitenschema erstellt: siehe Screenshot unten. Meine Frage: Wenn ich ...

Router & Routing
Fritz!Box VPN zwischen 2 Boxen - bestimmter Rechner nicht erreichbar
gelöst Frage von bugzzzRouter & Routing14 Kommentare

Hallo, habe ein VPN zwischen 2 Standorten mittels Firtz!Boxen aufgebaut, also die Fritz!Boxen verbinden sich jeweils zur anderen Box. ...

Batch & Shell
HTML-Seiten öffnen und bestimmte Daten auslesen
gelöst Frage von makroll10Batch & Shell1 Kommentar

Hallo, ich möchte hintereinander verschiedene HTML-Seiten hintereinander per IP-Adresse aufrufen, bestimmte Daten daraus auslesen und diese Daten dann lokal ...

Neue Wissensbeiträge
Router & Routing

PfSense als Addon auf QNAP

Information von magicteddy vor 38 MinutenRouter & Routing

Moin, für Spielereien eine ganz nette Idee aber ich fürchte das soetwas auch als echte Firewall genutzt wird: In ...

Datenschutz

Teamviewer kommt für IoT-Geräte wie den Raspberry Pi

Information von magicteddy vor 7 StundenDatenschutz

Moin, jetzt werden IoT Geräte endgültig zur Wanze? Anscheinend kann man auf einem Dashboard seine Geräte visualisieren Ich stelle ...

Microsoft

Letzte Updates für Win10 und Server2016 müssen bei Bedarf über den Update catalogue in den WSUS importiert werden!

Tipp von DerWoWusste vor 12 StundenMicrosoft1 Kommentar

automatisch kommt da nichts an im WSUS und auch nicht im SCCM. Siehe Hinweise zum Bezug der jeweils neuesten ...

Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 3 TagenLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Preis für Wartungsvertrag ok?
gelöst Frage von a-za-zNetzwerkmanagement22 Kommentare

Hallo! Mal ne Frage, weil ich mich mit dem akzeptablen Preis für einen Reaktionszeitvertrag nicht auskenne. Meine Firma hat ...

Windows Netzwerk
Ist ein Portforwarding auf einen PC ohne lauschendes Programm ein (großes) Sicherheitsproblem?
Frage von PluwimWindows Netzwerk13 Kommentare

Hallo zusammen, zur Fernwartung eines Rechners an einem anderen Ort nutze ich VNC. Da dieser Rechner einfach nur eine ...

Windows Server
Terminal Server 2016 erkennt Berechtigungen nicht
gelöst Frage von Thomas2Windows Server10 Kommentare

Hallo Administratoren, folgendes Problem stellt sich dar: Es gibt zwei Windows Server 2016, die als Terminal Server fungieren. Jetzt ...

SAN, NAS, DAS
Wer kennt sich mit QNAP und CISCO aus ?
gelöst Frage von MachelloSAN, NAS, DAS10 Kommentare

Hallo Zusammen hier im Forum, Ich habe ein QNas 451+ und dieses NAS hat zwei GBit Lan Adapter die ...