• User Newbie

    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 è che

    non 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


  • Bannato Super User

    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.


  • Super User

    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

    :ciauz:


  • User Newbie

    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:


  • Bannato Super User

    @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.


  • User Newbie

    Grazie Mille!
    Oggi cercherò di imparare qlc di nuovo sull'argomento!
    A presto!


  • User Newbie

    **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?


  • Bannato Super User

    @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 ?


  • User Newbie

    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?


  • User Newbie

    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


  • Bannato Super User

    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&#40;$HTTP_POST_VARS as $key => $value&#41; &#123;
    
    $message .= $key . '&#58; ' . $value;
    $message .= "\n";
    
    &#125;
    if &#40;@mail&#40;$mailto, $subject, $message&#41;&#41; &#123;
    
    header&#40;"Location&#58; $redirect"&#41;;
    &#125; else &#123;
    // Messaggio in caso di errore
    echo&#40;'
    
    Impossibile inviare. Torna nella pagina precedente e prova ancora, grazie.</p>'&#41;;
    &#125;
    ?> 
    

    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


  • User Newbie

    Grazie!

    Oggi ho imparato cose molto interessanti grazie a Voi!
    A presto!
    Andrea


  • Super User

    @anfalnemo said:

    A presto!
    :quote:

    Ciao :ciauz:


  • Bannato Super User

    @anfalnemo said:

    Grazie!

    Oggi ho imparato cose molto interessanti grazie a Voi!
    A presto!
    Andrea

    Buon lavoro 😉