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, 5550 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
Microsoft Office
Saubere HTML aus Word-Dokument (15)

Frage von peterpa zum Thema Microsoft Office ...

E-Mail
gelöst Automatischer Emailversand aus einem bestimmten Ordner (6)

Frage von GoTTn1 zum Thema E-Mail ...

Batch & Shell
gelöst HTML in Powershell (8)

Frage von michi-ffm zum Thema Batch & Shell ...

Router & Routing
Fritz Box 7490 DNS und Telefonie Fehler (4)

Frage von Akcent zum Thema Router & Routing ...

Neue Wissensbeiträge
Batch & Shell

Batch - ein paar Basics die man kennen sollte

Tipp von Pedant zum Thema Batch & Shell ...

Microsoft

Restrictor: Profi-Schutz für jedes Window

(1)

Tipp von AlFalcone zum Thema Microsoft ...

Batch & Shell

Batch zum Zurücksetzen eines lokalen Profils

Tipp von Mr.Error zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Router & Routing
ASUS RT-N18U mit VPN Client hinter Fritzbox - Portforwarding (15)

Frage von marshall75000 zum Thema Router & Routing ...

Microsoft Office
Saubere HTML aus Word-Dokument (15)

Frage von peterpa zum Thema Microsoft Office ...

Hosting & Housing
gelöst Webserver bei WIX, aber DNS Server wo anders (9)

Frage von laster zum Thema Hosting & Housing ...