* Volg ons


* Wie is Online

  • Punt gasten: 9
  • Punt verborgen: 0
  • Punt leden: 0

Er zijn geen bezoekers online
  • Punt Online vandaag: 3

* Actuele onderwerpen

Webwereld: Webwereld door NLCOMP
[19 mei 2012, 10:01:32]


Forumonderhoud: uitgesteld naar vrijdag 18 mei en afgerond! door Ronald
[18 mei 2012, 18:18:24]


Meezenden bijlage bij e-mail door Peter
[17 mei 2012, 20:01:40]


Superwijzer door Paul
[17 mei 2012, 12:00:34]


Karakters verspringen in Excel2003 door gerard1938
[17 mei 2012, 06:06:53]


MSChart for VB6 door Peter
[16 mei 2012, 20:05:17]


Scriptfout in Internet Explorer door Ronald
[15 mei 2012, 22:40:53]


Met een .asp pagina data checken door Ronald
[15 mei 2012, 22:38:26]


cursor verspringt ongecontroleerd door popipipo
[15 mei 2012, 13:18:26]


Hoe aol pictures verwijderen? door Paul
[14 mei 2012, 20:07:40]


camtasia door Joël nieuwe pc
[14 mei 2012, 16:42:32]


tablet opschonen door TdJ
[14 mei 2012, 10:57:58]


Computer met windows 7 start niet meer op! door shadowpk02
[13 mei 2012, 12:28:31]


Hijackthislog door jvdpeet
[11 mei 2012, 21:25:10]


* Chat

Vraag maar raak!
Stel je vragen over computers en internet en krijg direct antwoord! Iedere maandagavond 21:00 - 22:00 uur in de chatroom.


A A A A Auteur Topic: Bestand meesturen met formulier dmv CGI  (gelezen 1505 keer)

0 leden en 1 gast bekijken dit topic.

Offline Stefan de BestTopic starter

  • Wizop
  • *****
  • Berichten: 563
  • Geslacht: Man
  • Laatst actief:
    18 mei 2012, 06:19:45

  • Activiteitmeter
    100%
    • Historisch-didactisch overzicht van 150 oude en minder bekende zwemslagen
Bestand meesturen met formulier dmv CGI
« Gepost op: 5 november 2009, 23:27:39 »

Bericht 1 van 7

NL Computer Forum ~ Homepages & Web
 Van:Roel SyperdaDatum:06-01-2005
 Aan:AllenMsgID:1871.1
 Onderwerp:Bestand meesturen met formulier dmv C...Forum:ws-nlcomputer
Voor een site heb ik een bestelformulier gemaakt waarbij de mensen ook een foto moeten meesturen. Dat formulier is helemaal gelukt, het gaat natuurlijk om de code <input type="file" name="file">.
Het formulier wordt verwerkt d.m.v. een CGI-script. Dat script moet je van de provider (WideXS) gebruiken. <form action="cwmailform.cgi" method="POST" enctype="multipart/form-data">. Ook dat lukt, de e-mail komt aan. Maar het lukt maar niet om een bestand mee te krijgen. Op de e-mail die ik terug krijg staat bij File alleen de tekst van de plaats waar het bestand staat van degene die het formulier verstuurt heeft (bijvoorbeeld 'C:\mijn documenten').
Er moet vast iets in dat CGI-bestand aangepast worden. Maar wat?



Bericht 2 van 7

NL Computer Forum ~ Homepages & Web
 Van:Michel Uphoff (Sysop)Datum:06-01-2005
 Aan:Roel SyperdaMsgID:1871.2
 Onderwerp:Bestand meesturen met formulier dmv C...Forum:ws-nlcomputer
Dag Roel,
>> Er moet vast iets in dat CGI-bestand aangepast worden. <<
Ik denk niet dat die provider een CGI-script levert dat dat ondersteunt. Meestal kan er alleen platte tekst mee.

Michel Uphoff (Sysop)
Homepagina  


Bericht 3 van 7

NL Computer Forum ~ Homepages & Web
 Van:Ronald BeukerDatum:07-01-2005
 Aan:Roel SyperdaMsgID:1871.3
 Onderwerp:Bestand meesturen met formulier dmv C...Forum:ws-nlcomputer
Hoi Roel,
Ondersteunt je webprovider php? Dan kun je een php-form gebruiken. Ik heb thuis nog ergens iets van een voorbeeld dat je makkelijk kunt aanpassen met alle velden die je wilt (inclusief binary-uploads!).
Groeten,
Ronald


Bericht 4 van 7

NL Computer Forum ~ Homepages & Web
 Van:Roel SyperdaDatum:07-01-2005
 Aan:Ronald BeukerMsgID:1871.4
 Onderwerp:Bestand meesturen met formulier dmv C...Forum:ws-nlcomputer
Hallo Ronald, De provider ondersteunt PHP (in Safe mode als module van de webserver Apache). Ik moet dan een heleboel formulieren aanpassen (ik heb een beginpagina gemaakt waar je al een voorselectie kunt maken d.m.v. een pop-up menu zodat je meteen naar een gespecificeerd menu gaat). Dus ik hoop dat die optie van jou niet te veel tijd kost om alles aan te passen. In dat geval zou ik hem graag eens willen zien. Groeten, Roel.


Bericht 5 van 7

NL Computer Forum ~ Homepages & Web
 Van:Ronald BeukerDatum:07-01-2005
 Aan:Roel SyperdaMsgID:1871.5
 Onderwerp:Bestand meesturen met formulier dmv C...Forum:ws-nlcomputer
Hoi Roel,
Je zou eens hier naar kunnen kijken:
http://phpfmg.sourceforge.net/home.php
Succes!
Groeten,
Ronald (Sysop)


Bericht 6 van 7

NL Computer Forum ~ Homepages & Web
 Van:Roel SyperdaDatum:08-01-2005
 Aan:Ronald BeukerMsgID:1871.6
 Onderwerp:Bestand meesturen met formulier dmv C...Forum:ws-nlcomputer
Hallo Ronald, Nee, dit is niet echt wat ik zoek. Ik wil gewoon mijn huidige HTML-formulieren behouden, daar zit al veel werk in en had ik al opgemaakt met diverse voorbeeldplaatjes enz.
Ik zoek iets waarmee ik met behoudt van de huidige formulieren je een bestand mee kan sturen, liefst als bijlage van de e-mail.
Ik denk zelf nog steeds dat er iets toegevoegd moet worden aan die CGI-code. Zo ziet het huidige bestand eruit: #!/usr/local/bin/perl -wT
use strict;
use CGI;

### VARIABLES (you can change these to the appropriate settings)
my $dbfile  = "/opt/guide/www.fotovak-engel.nl/cgi-bin/cwmailform_db";
my $page_title  = "Bestelformulier";
my $mailprogram  = "/usr/sbin/sendmail -t";

### INIT (do not change unless you know what you're doing)
$ENV{'PATH'}  = "/bin";
delete @ENV{'IFS', 'CDPATH', 'ENV', 'BASH_ENV'};
my $q   = new CGI;
my %in   = $q->Vars;
my %recipients  = ();
my %required_fields = ();

### PROGRAM
# Read in the file with recipient-identifiers and recipients
read_db();
# Check the recipient
if((defined($in{'form_recipient'})) && ($in{'form_recipient'} ne "")) {
 my $recipient_address = check_recipient($in{'form_recipient'});
 if((defined($recipient_address)) && ($recipient_address ne "0")) {
  $in{'form_recipient'} = $recipient_address;
 } else {
  own_die("Recipient not allowed...");
 }
} else {
 own_die("No recipient...");
}
# Check if all required fields are filled out
if((defined($in{'required_fields'})) && ($in{'required_fields'} ne "")) {
 unless(check_required_fields($in{'required_fields'})) {
  if((defined($in{'form_wrong_url'})) && ($in{'form_wrong_url'} ne "")) {
   print "Location: $in{'form_wrong_url'}\n";
  }
  own_die("Please fill out all required fields...");
 }
}
# Set miscellaneous settings
check_misc();
# Let's email the data
mail_data();
# Redirect to the ok-page, or show a message
if((defined($in{'form_ok_url'})) && ($in{'form_ok_url'} ne "")) {
 print "Location: $in{'form_ok_url'}\n";
}
header();
print "Your mail has been sent...\n";
footer();

### SUB-ROUTINES
sub header {
 print "Content-type: text/html\n\n";
 print "<HTML>\n";
 print " <HEAD>\n";
 print "  <TITLE>$page_title</TITLE>\n";
 print " </HEAD>\n";
 print " <BODY>\n";
}
sub footer {
 print " </BODY>\n";
 print "</HTML>\n";
}
sub mail_data {
 open(MAIL,"|$mailprogram") || own_die("Please try again later. Mailer-error.");
 print MAIL "From: $in{'form_email'}\n";
 print MAIL "To: $in{'form_recipient'}\n";
 print MAIL "Subject: $in{'form_subject'}\n\n";
 print MAIL "The following data was submitted:\n\n";
 if((defined($in{'form_body'})) && ($in{'form_body'} ne "")) {
  print MAIL "="x45 ."\n";
  print MAIL "$in{'form_body'}\n";
  print MAIL "="x45 ."\n";
  print MAIL "\n";
 }
 foreach my $in_field (sort(keys(%in))) {
  next unless($in_field =~ /^form_/);
  next if($in_field =~ /^form_(email|recipient|subject|body|ok_url|wrong_url)$/);
  print MAIL "$in_field\t= $in{$in_field}\n";
 }
 close(MAIL);
}
sub check_recipient {
 my($defined_recipient_identifier) = @_;
 if((defined($recipients{$defined_recipient_identifier})) && ($recipients{$defined_recipient_identifier} ne "")) {
  return($recipients{$defined_recipient_identifier});
 } else {
  return(0);
 }
}
sub check_required_fields {
 my $missing_field_count  = 0;
 
 my($defined_required_fields) = @_;
 my @splitted_required_fields = split(/,/,$defined_required_fields);
 
 foreach my $splitted_required_field (@splitted_required_fields) {
  $splitted_required_field =~ s/^\ +//g; # remove leading whitespaces
  $splitted_required_field =~ s/\ +$//g; # remove trailing whitespaces
  
  next if($splitted_required_field =~ /^$/);
  
  $required_fields{"form_".$splitted_required_field} = 1;
 }
 
 foreach my $required_field (keys(%required_fields)) {
  unless((defined($in{$required_field})) && ($in{$required_field} ne "")) {
   $missing_field_count++;
  }
 }
 if($missing_field_count > 0) {
  return(0);
 } else {
  return(1);
 }
}
sub check_misc {
 unless((defined($in{'form_email'})) && ($in{'form_email'} ne "")) {
  $in{'form_email'} = "anonymous\@unknown.anon.com";
 }
 unless((defined($in{'form_subject'})) && ($in{'form_subject'} ne "")) {
  $in{'form_subject'} = "WWW-form";
 }
}
sub read_db {
 if(!open(DB,"$dbfile")) {
  own_die("Failed to open configfile...");
 } else {
  chomp(my @db_lines = <DB>);
  close(DB);
  foreach my $db_line (@db_lines) {
   $db_line =~ s/(\ |\t|(\015\012)|(\015)|(\012))+//g; # Filter out some stuff
   
   my($db_recipient_identifier,$db_recipient) = split(/:/,$db_line);
   
   next unless((defined($db_recipient_identifier)) && ($db_recipient_identifier ne ""));
   next unless((defined($db_recipient)) && ($db_recipient ne ""));
   
   $recipients{$db_recipient_identifier}  = $db_recipient;
  }
 }
}
sub own_die {
 my($die_msg) = @_;
 unless(defined($die_msg)) {
  $die_msg = "Error";
 }
 header();
 print "$die_msg\n<BR>\n";
 footer();
 exit(0);
}



Groeten, Roel.


Bericht 7 van 7

NL Computer Forum ~ Homepages & Web
 Van:Ronald BeukerDatum:08-01-2005
 Aan:Roel SyperdaMsgID:1871.7
 Onderwerp:Bestand meesturen met formulier dmv C...Forum:ws-nlcomputer
Hoi Roel,
>> Ik denk zelf nog steeds dat er iets toegevoegd moet worden aan die CGI-code. <<
Van CGI weet ik niets, sorry.
Groeten,
Ronald (Sysop)

Historisch-didactisch overzicht van 150 oude en minder bekende zwemslagen
     http://www.zwemslagen.nl

 

Gerelateerde onderwerpen

  Onderwerp / Gestart door Reacties Laatste bericht
0 Reacties
696 Gelezen
Laatste bericht 9 november 2009, 22:20:23
door NLCOMP
0 Reacties
954 Gelezen
Laatste bericht 10 november 2009, 21:24:34
door NLCOMP
0 Reacties
3122 Gelezen
Laatste bericht 11 november 2009, 22:49:19
door NLCOMP
0 Reacties
4474 Gelezen
Laatste bericht 11 november 2009, 23:01:47
door NLCOMP
13 Reacties
4312 Gelezen
Laatste bericht 9 juli 2010, 20:53:57
door Ronald
2 Reacties
4238 Gelezen
Laatste bericht 15 november 2010, 22:42:52
door Just Vecht
15 Reacties
1729 Gelezen
Laatste bericht 8 december 2010, 21:14:09
door Peter
8 Reacties
763 Gelezen
Laatste bericht 28 september 2011, 16:11:34
door Janny
9 Reacties
430 Gelezen
Laatste bericht 5 februari 2012, 21:37:14
door Michel Uphoff
5 Reacties
305 Gelezen
Laatste bericht 8 februari 2012, 17:29:27
door rayverb


^ Go Up