Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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
GELÖST

html Submit Box für bestimmten Download

Frage Entwicklung HTML

Mitglied: peterha

peterha (Level 1) - Jetzt verbinden

07.12.2008, aktualisiert 21:48 Uhr, 5521 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Webentwicklung
gelöst HTML Output in eine txt Datei mit VisualBasicScript (2)

Frage von coca22COCA zum Thema Webentwicklung ...

Router & Routing
Neue Top Level Domain .box bringt manche Netze durcheinander (1)

Link von magicteddy zum Thema Router & Routing ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...