Mailinglisten-Archive |
Hi Liste, im nachfolgendem Script wir folgendes ermöglicht: - der Kunde bekommt eine Datei erst dann downgeloadet, wenn er in einem Formular seine Kundennummer und seine Postleitzahl eintippt. - Fehler in der Kundennummer / Postleitzahl werden mit Hinweisen quittiert - Die Kundennummer wird lediglich anhand des bei uns üblichen Afbaus geprüft (4 Buchstaben, zwei Ziffern), da die Einbindung der Kundennummern aus der Warenwirtschaft einen zu großen Aufwand im Bereich der Aktualisierung bedeuten würde. - Die Postleitzahl wird insofern geprüft, daß es fünf Ziffern sein müssen. Der Einsprung in dieses Script kommt über einen Link der Dateiauswahl zum Download: <a href="download.php3?pfad=/pfad/zur/datei/&datei=dateiname.ext">Laber</a> Es funktioniert soweit. Möglicherweise fällt Euch noch was zur Verbesserung ein ... Speziell, wenn der Kunde ned ganz so blöd ist, kann er die Datei direkt in die Adresszeile eingeben und bekommt das Teil. Welche Möglichkeiten habe ich da, das zu unterbinden? +++ download.php3 +++ <?php $error = 0; // Default-Einstiegswert if ($download) // Download-Knopf gedrückt? { if(!$kundennummer) // Feld 'Kundennummer' leer? { $error = 1; // Keine Kundennummer angegeben } elseif ( !ereg( "([a-z]|[A-Z]){4}([0-9]){2}", $kundennummer) ) { $error += 2; // FALSCHE Kundennummer angegeben } if (!$postleitzahl) // Feld 'Postleitzahl' leer? { $error += 4; // KEINE Postleitzahl angegeben } elseif ( !ereg( "([0-9]){5}", $postleitzahl) ) { $error += 8; // FALSCHE Postleitzahl angegeben } /* Werte in $error: ! Kundennummer ! Postleitzahl ! $error ! ohne ! falsch ! ohne ! falsch ! ---------------------------------------- 0 ! ! ! ! ! ---------------------------------------- 1 ! X ! ! ! ! ---------------------------------------- 2 ! ! X ! ! ! ---------------------------------------- 4 ! ! ! X ! ! ---------------------------------------- 5 ! X ! ! X ! ! ---------------------------------------- 6 ! ! X ! X ! ! ---------------------------------------- 8 ! ! ! ! X ! ---------------------------------------- 9 ! X ! ! ! X ! ---------------------------------------- 10 ! ! X ! ! X ! ---------------------------------------- */ if ($error == 0) // Alles o.k. der Download kann beginnen ... { // Erzeugen einer EMail an die Abteilung $mailtext = "Erfolgreicher Start eines Dateidownloads!\n\n"; $mailtext .= "Kundennummer: $kundennummer\n"; $mailtext .= "Postleitzahl: $postleitzahl\n"; $mailtext .= "Datei: $pfad/$datei\n\n"; $mailtext .= "Kommentar:\n\n"; $mailtext .= "$kommentar\n\n"; $mailtext .= "Zusaetzliche Informationen:\n\n"; $mailtext .= "Browser: $HTTP_USER_AGENT\n"; $mailtext .= "Adresse: $REMOTE_ADDR\n"; $mailtext .= "Hostname: $REMOTE_HOST\n\n"; $header = "From: webserver_(at)_treu-elektro.de\n"; mail("eibdownload_(at)_treu-elektro.de", "Erfolgreicher Dateidownload", $mailtext, $header); // Spezialheader, damit der Browser // a) des Zeug ned im Browserfenster anzeigt und // b) ned fragt, ob eine Anwendung zu wählen ist. // Nur der IE weiß es besser und fragt trotzdem nach der // Anwendung. header("Content-type: application/octet-stream"); header("Content-Disposition: attachment; filename=$datei"); header("Content-Description: PHP3 Generated Data"); // Datei öffnen und zum Browser printen $rfile = $pfad . "/" . $datei; $rf = fopen("$rfile", "r"); $archiv_daten = fread($rf, filesize( $rfile )); fclose($rf); echo $archiv_daten; // Leider gibt's keine Möglichkeit um zu prüfen, ob der // Download vollständig geklappt hat. } } ?> Ab hier kommt der erklärende Text, das Formular und die je nach Inhalt der Variablen $error erzeugten Fehlermeldungen. MfG Stefan Krister -- You have moved your mouse. Windows must be rebooted for the changes to take effect.
php::bar PHP Wiki - Listenarchive