- Home
- Categorie
- Coding e Sistemistica
- HTML e CSS
- Forms e CGI?
-
Forms e CGI?
Salve,
Vi spiego il mio problema.
Sono alle prime armi con i forms ed ho scoperto che i dati inseriti nel form creato vengono generalmente spediti o ad un indirizzo e-mail nudi e crudi o organizzati, grazie all'utilizzo di un apposito programma CGI (Common Gateway Interface), che può essere presente direttamente all'interno del sito o richiamato anche da un qualunque altro sito internet che ce lo mette a disposizione. Ho visto ciò che mi arriva via mail all'indirizzo specificato e fa schifo...
Il mio problema è chenon so che mettere nella parte "action" all'inizio del tag <form> per richiare 'sto programma CGI.
<form name="lavoraconnoi" method="post" action="???????????"> etc...
e se o cosa caricare nella cartella cgi-bin presente nel file manager del pannello di controllo del mio sito
ed eventualmente se impostare una CHMOD, che non so cosa sia.Vi prego aiutatemi!
Mi piacerebbe molto poter usufruire del form che ho fatto...Grazie
-
Ciao anfalnemo, e benvenuto sul forum GT
Nella action devi mettere il percorso dello script CGI che invia l'email.
Se non già previsto da chi ti fornisce lo spazio Internet devi fare l'upload del file .cgi nella apposita cartella, di solito cgi-bin.
Per i permessi del file basta leggere le istruzioni del cgi ed agire di conseguenza.
Uno degli script free di questo tipo tra i più diffusi è **formmail.pl **piuttosto semplice da configurare ed abbastanza efficace.
lo puoi [url=http://www.scriptarchive.com/formmail.html]trovare quì.
Ti sposto nella sezione HTML Css Scripting, più adatta alla tua domanda.
-
Ciao benvenuto
se oltre al cgi ti può andare bene anche php, proprio ieri ho indicato un possibile script php per inviare i dati di un form senza troppe complicazioni.
Lo trovi qui http://www.giorgiotave.it/forum/viewtopic.php?t=13389#103472
-
Salve!
X Claudioweb ed Emmebar!
Vi ringrazio moltissimo per i vostri consigli! Intanto provo a richiedere al sito che mi fornisce lo spazio web il percorso dello script CGI che invia l'email, che dovrò caricare nella cartella cgi-bin.
Spero vada in porto in questo modo...
Altrimenti, mi scarico gli script che mi avete consigliato e cerco di seguire le istruzioni fornite con lo script stesso... Sperando che tutto funzioni.Posso farvi un'altra domanda?
Lavoro con dreamweaver. Posso vedere se lo script funziona in locale o devo per forza andare in remoto? Non so se la domanda sia chiara.
Quando faccio una pagina HTML posso vederne l'anteprima su un browser di mia scelta in locale senza essere connesso. Ciò funziona pure con gli script che, se non ho capito male, risiedono sul server o no?
Grazie infinite!:bho:
-
@anfalnemo said:
Posso farvi un'altra domanda?
Lavoro con dreamweaver. Posso vedere se lo script funziona in locale o devo per forza andare in remoto? Non so se la domanda sia chiara.
Quando faccio una pagina HTML posso vederne l'anteprima su un browser di mia scelta in locale senza essere connesso. Ciò funziona pure con gli script che, se non ho capito male, risiedono sul server o no?
Grazie infinite!:bho:
Per quelli in PHP se hai installato un server apache ed un database mysql sul tuo PC puoi certamente vederli in locale, per il CGI credo sia lo stesso discorso ma non ho mai provato.
Ritengo però che sia quando meno una perdita di tempo installare e configurare un server sul proprio PC per testare un solo script, fallo solo se ritieni che ti sia utile anche in futuro, altrimenti meglio che testi tutto in rete.
-
Grazie Mille!
Oggi cercherò di imparare qlc di nuovo sull'argomento!
A presto!
-
**Per Claudioweb, (ma anche per emmebar).
Ho utilizzato lo script che mi hai consigliato. Ho salvato una pagina mail.php con la prima parte dello script, ossia:**
<?php
// Inizio Configurazione***
//Indirizzo emai a cui inviare i msg
$mailto = "TUO_INDIRIZZO";
//Oggetto della mail
$subject = "OGGETTO DELLA MAIL";
//Pagina da mostrare dopo l'invio
$redirect = "URL_PAGINA";
// Fine Configurazione****foreach($HTTP_POST_VARS as $key => $value) {
$message .= $key . ': ' . $value;
$message .= "\n";}
if (@mail($mailto, $subject, $message)) {header("Location: $redirect");
} else {
// Messaggio in caso di errore
echo('Impossibile inviare. Torna nella pagina precedente e prova ancora, grazie.</p>');
}
?>Dopodiché ho configurato il mio indirizzo email, un oggetto della mail e scritto nell'URL la mia home page ossia http://www.biotranslations.it
** Ho creato una pagina "form" nella quale ho salvato la seconda parte dllo script, ossia: **
<form name="form1" id="form1" method="post" action="mail.php">
Nome</p>
<input type="text" name="nome" /> </p>
Cognome</p>
<input type="text" name="cognome" /> </p>
Email</p>
<input type="text" name="email" /> </p>
Contenuto</p>
<textarea name="contenuto" cols="50" rows="10"></textarea> </p> <input name="Invia" type="submit" value="Invia" /> </p> </form>
**Ho caricato le pagine sul web nella cartella dove risiede il mio sito.
Quando vado on-line alla pagina "form" appena creata mi compaiono correttamente i box nome cognome indirizzo e contenuto con il tasto invia.
Compilati i box ricevo la mail nella casella specificata, ma il redirect verso la mia home page non va.mi esce questa scritta:**
Warning: Cannot modify header information - headers already sent by (output started at /home/mhd-01/www.biotranslations.it/htdocs/mail.php:8) in /home/mhd-01/www.biotranslations.it/htdocs/mail.php on line 27
Come posso rimediare?
-
@anfalnemo said:
Warning: Cannot modify header information - headers already sent by (output started at /home/mhd-01/www.biotranslations.it/htdocs/mail.php:8) in /home/mhd-01/www.biotranslations.it/htdocs/mail.php on line 27
Come posso rimediare?
lo script in questione deve essere la primissima cosa nella pagina, non ci devono essere immagini header o quant'altro, altrimenti il redirect non può funzionare, puoi postare il pezzo di codice dove inserisci lo script nella tua pagina ?
-
Sto lavorando con due pagine di prova: te le mando.
la pagina html "form" è la seguente:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head><body>
<form name="form1" id="form1" method="post" action="mail.php"><font size="-2">
<input type="text" name="nome" />
Nome</font></p><font size="-2">
<input type="text" name="cognome" />
Cognome</font></p><font size="-2">
<input type="text" name="email" />
Email**Contenuto**</font></p> <textarea name="contenuto" cols="50" rows="10"></textarea> </p> <input name="Invia" type="submit" value="Invia" /> </p> </form>
</body>
</html>La pagina PHP con lo script è questa.
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head><body>
<?php
// Inizio Configurazione***
//Indirizzo emai a cui inviare i msg
$mailto = "[email protected]";
//Oggetto della mail
$subject = "CV candidato";
//Pagina da mostrare dopo l'invio
$redirect = "http://www.biotranslations.it/index.htm";
// Fine Configurazione****foreach($HTTP_POST_VARS as $key => $value) {
$message .= $key . ': ' . $value;
$message .= "\n";}
if (@mail($mailto, $subject, $message)) {header("Location: $redirect");
} else {
// Messaggio in caso di errore
echo('Impossibile inviare. Torna nella pagina precedente e prova ancora, grazie.</p>');
}
?></body>
</html>Grazie!
Possibile che sbagli qualcosa con l'url?
-
Ho risolto il casino che avevo combinato...
Praticamente ho ficcato lo script in una pagina HTML...
Ho cancellato tutto quello che non era tra<?php e
?>
ed ora lo script di Claudioweb è ok, porttandomi correttamente sulla pagina specificata nel redirect!
Bella cosa. Ora voglio capire se posso aggiungerci extra boxes ecc...Vi ringrazio di cuore per il tempo che mi avete dedicato!!!
Andrea
-
Questo:
<?php // ************Inizio Configurazione*************** //Indirizzo emai a cui inviare i msg $mailto = "[email protected]"; //Oggetto della mail $subject = "CV candidato"; //Pagina da mostrare dopo l'invio $redirect = "http://www.biotranslations.it/index.htm"; // ************Fine Configurazione**************** foreach($HTTP_POST_VARS as $key => $value) { $message .= $key . ': ' . $value; $message .= "\n"; } if (@mail($mailto, $subject, $message)) { header("Location: $redirect"); } else { // Messaggio in caso di errore echo(' Impossibile inviare. Torna nella pagina precedente e prova ancora, grazie.</p>'); } ?>
deve stare all'inizio della pagina, prima che sia uscita qualsiasi altra cosa di html, quindi prima di questo:
<html> <head> <title>Untitled Document</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body>
Per funzionare il redirect in php occorre che non sia ancora stato inviatoalcun headCosì dovrebbe andare
-
Grazie!
Oggi ho imparato cose molto interessanti grazie a Voi!
A presto!
Andrea
-
-
@anfalnemo said:
Grazie!
Oggi ho imparato cose molto interessanti grazie a Voi!
A presto!
AndreaBuon lavoro