PDA

Visualizza la versione completa : backurl dopo la compilazione di un form


lexotan
02-07-2004, 08:48
ciao, dopo la compilazione di un form, l'utente invia e appare la scritta di avvenuto invio del form, vorrei però che la pagina ritornasse automaticamente o tramite link al modulo appena compilato o ad un'altra pagina, che comando devo aggiungere allo script in perl?
ciao e grazie

shishii
02-07-2004, 18:51
devi solo aggiungere al codice html generato dallo script i tag (html) adatti ed uguali a quelli che trovi su qualunque pagina.

lexotan
03-07-2004, 07:47
ti ringrazio per la disponibilità.
ma non ho capito.
mi sa che mi mancano un bel kilo di basi.
potresti spiegarmi meglio?

(quindi: lo script genera dei tag html, e dove li genera? io ho solo una pagina html con il form e lo script semplicissimo che quando invii di scrive, "quiestionario inviato correttamente", e rimane li così, invece vorrei una specie di reindirizzamento automatico alla pagina del questionario o a un altra.)

:ciauz:

lexotan
03-07-2004, 08:25
dunque: il meta tag in html per il reindirizzamento dovrebbe essere questo:
<meta http-equiv="refresh" content="2; url=http://www.google.it">

e lo dovrei inserire nello script, che è questo (ma dove e come??):

$backurl = "http://miosito.org";
$mailprog = '/usr/sbin/sendmail';
$youmail = 'pippo@email.it';
$pageurl = "http://miosito.org";

# DO NOT EDIT BELOW THIS LINE!!!!
################################################## ###############

read(STDIN, $namevalues, $ENV{'CONTENT_LENGTH'});

open (MAIL, "|$mailprog $youmail") || die "Can't open $mailprog!\n";
print MAIL ("To: $youmail\n");
print MAIL ("From: Internet User\n");
print MAIL ("Subject: Form Response\n\n");

# Process info from Fill in Form

@namevalues = split(/&/, $namevalues);
foreach $namevalue (@namevalues) {
($name, $value) = split(/=/, $namevalue);
$name =~ tr/+/ /;
$value =~ tr/+/ /;
$name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$INPUT{$name} = $value;
unless ($value eq "") {
print MAIL ("$name: $value\n");
}
}

close (MAIL);# Print Follow up HTML

print ("Content-Type: text/html\n\n");
print ("<html><head><title></title></head>\n");
print ("Il questionario è stato inviato correttamente! Grazie per la collaborazione!");

foreach $namevalue (@namevalues) {
($name, $value) = split(/=/, $namevalue);
$name =~ tr/+/ /;
$value =~ tr/+/ /;
$name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$INPUT{$name} = $value;
unless ($value eq "") {
# print ("$name: $value
\n");
}
}

print ("<hr>\n");
print ("</body></html>\n");
print "<a href=\"$pageurl\">Torna alla pagina precedente</a>\n";
exit;

Ecco, al posto di "torna alla pagina precedente, dovrebbe farlo da solo-----
:master: :dhò: :dhò:

shishii
04-07-2004, 18:40
devi fare queste modifiche:

print ("Content-Type: text/html\n\n");
print ("<html><head><title></title>
<meta http-equiv=\"refresh\" content=\"2; url=http://www.google.it\">
</head>\n");

Loading