Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: form e-mail in locale

  1. #1

    form e-mail in locale

    Ciao a tutti, sono nuovo di questo forum e non esperto di php. Anche se non sono un programmatore php ho una certa scaltrezza e sono riuscito a utilizzare il linguaggio per le cose essenziali che mi servono. Qualche tempo fa ho adattato un form per i contatti per il sito di un mio cliente. Il form funziona e va bene così.

    Ora però devo realizzare un sito off-line, su cd-rom e, se uso lo stesso script non mi funziona.

    Di seguito metto le fonti dei due file che utilizzo:

    QUESTO E' IL FORM CHE CONTIENE I CAMPI
    <form method="post" action="send.php">
    Nome:
    <input name="nome" type="text" size="30" maxlength="40" />


    Cognome:
    <input name="cognome" type="text" size="30" maxlength="40" />


    Telefono:
    <input name="telefono" type="number" size="30" maxlength="40" />


    Email:
    <input name="email" type="text" size="30" maxlength="40" />


    Oggetto:
    <input name="oggetto" type="text" size="30" maxlength="40" />


    Messaggio:
    <textarea name="msg" cols="50" rows="6"></textarea>


    <input type="reset" value="Reset" /><input type="submit" value="Invia" />
    </form>

    QUEST'ALTRO E' QUELLO CON LE AZIONI:
    <?php
    $receiverMail = "info@argosnetwork.com";

    $nome = ltrim(rtrim(strip_tags(stripslashes($_POST['nome']))));
    $cognome = ltrim(rtrim(strip_tags(stripslashes($_POST['cognome']))));
    $telefono = ltrim(rtrim(strip_tags(stripslashes($_POST['telefono']))));
    $email = ltrim(rtrim(strip_tags(stripslashes($_POST['email']))));
    $oggetto = ltrim(rtrim(strip_tags(stripslashes($_POST['oggetto']))));
    $msg = ltrim(rtrim(strip_tags($_POST['msg'])));

    $ip = getenv("REMOTE_ADDR");
    $msgformat = "From: $nome ($ip)\nCognome: $cognome\nTelefono: $telefono\nEmail: $email\nOggetto: $oggetto\nMessaggio: $msg";

    // VALIDATION
    if (( $nome == "" ) || ( $cognome == "" ) || ( $telefono == "" ) || ( $email == "" ) || ( $oggetto == "" ) || ( $msg == "" )) {
    echo "<h3>Errore!</h3>
    Compili il form in ogni campo per continuare.

    La preghiamo di <A HREF=\"javascript:history.go(-1)\">tornare indietro e correggere</A>. Grazie";
    exit;
    }
    elseif(!ereg("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email)) {
    echo "<h3>E-mail non inviata</h3>

    Indirizzo e-mail non valido</p>";
    }
    if (!is_numeric($telefono)) {
    echo "<h3>Errore!</h3>
    Il campo telefono puÚ contenere solo numeri

    La preghiamo di <A HREF=\"javascript:history.go(-1)\">tornare indietro e correggere</A>. Grazie";
    exit;
    }
    else {
    mail($receiverMail, $oggetto, $msgformat, "From: $nome <$email>");
    echo "<h3>E-mail inviata con successo</h3>

    Sarete ricontattati al pi˘ presto! Buona giornata!</p>"; }
    ?>

    Mi dite cosa è che non va e come posso risolvere per favore?

    Grazie mille dell'aiuto.

    Buona giornata e buon lavoro a tutti!

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    128
    Il codice è molto migliorabile, ma la tua domanda è ovviamente un'altra

    Puoi dirci che errore hai?

  3. #3
    Per far funzionare l'invio email da sito locale, è sufficiente modificare il PHP.INI.
    Devi semplicemente impostare la voce relativa al server SMTP e modificarla con quello relativo al tuo ISP (provider) di servizi internet.
    Per intenderci: se sei collegato ad internet con un contratto Alice, dovrai impostare out.alice.it nel rigo corrispondente.

    Ora, il problema è uno solo: se sei su CD Rom, presumibilmente vuoi distribuire la tua applicazione. In questo caso userai un programma come XAMMP lite per permettere il funzionamento del server Apache.
    Se il CD rimane a te poco male, perché imposti il php.ini con i parametri della tua connessione e risolvi.
    Se il CD lo vuoi distribuire, credo invece che ti sarà necessario prevedere una funzione di configurazione dei parametri del file.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  4. #4
    Alcio ha colto nel segno. Il problema è che lo devo distribuire in giro per il mondo, ma credo che i suoi consigli siano al di fuori della mia portata, almeno per il momento. Non ho tempo di mettermi a studiare le configurazioni che mi ha suggerito. Dovrò abbandonare l'invio dal cd rom, oppure... potrei caricare la pagina contatti sul mio server e linkare la voce di menu alla pagina remota, e far funzionare tutto dal web.
    Che ne dite?

  5. #5
    Originariamente inviato da argosnetwork
    Alcio ha colto nel segno. Il problema è che lo devo distribuire in giro per il mondo, ma credo che i suoi consigli siano al di fuori della mia portata, almeno per il momento. Non ho tempo di mettermi a studiare le configurazioni che mi ha suggerito. Dovrò abbandonare l'invio dal cd rom, oppure... potrei caricare la pagina contatti sul mio server e linkare la voce di menu alla pagina remota, e far funzionare tutto dal web.
    Che ne dite?
    La configurazione è semplice.
    Il php.ini è un file di testo: cerchi lì dentro una riga e la sostituisci.
    Il problema è più ampio però se l'applicazione gira (come dici te) in tutto il mondo e quindi non è (tipo) un CD rom che dai ad un cliente e sempre lo stesso.
    Dovresti fare una routine che, all'avvio del CD, chiede a chi usa l'applicazione di inserire l'indirizzo del server SMTP della propria connessione telefonica.
    Ti renderai conto da te che, se anche sapessi fare lo script, rischieresti di trovare un utente che non sa neanche di cosa stai parlando.... per cui sarebbe fatica sprecata.
    L'opzione di lasciare lo script in un server remoto è validissima e funzionerebbe a prescindere: gli hoster usano dei server SMTP interni, ed hanno i loro php.ini già belli che configurati con quegli apparati.
    Non so come hai strutturato l'applicazione del tuo CD rom, ma puoi prevederci dentro anche un semplice LINK al tuo sito, lasciandolo nel server!

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  6. #6
    Esatto. L'applicazione che gira sul cd roma altro non è sche un sito in html puro. Quindi basta lisnkare la voce di menu "contatti" ad un URL e il gioco è fatto!

    Grazie dell'aiuto comunque.

    A presto!

  7. #7
    Esatto: la form la fai puntare ad un indirizzo internet completo, che punta ad una pagina del tuo sito.
    Della serie:
    http://www.tuosito.t/email.php.
    Fossi in te, userei un iFrame, così anche la form sarebbe interna al tuo sito, ma visualizzata (in maniera trasparente per l'utente finale) dentro la pagina del CD Rom.
    Cosa ci guadagni?
    Puoi tranquillamente far visualizzare anche un messaggio di cortesia per avvenuto invio della mail!

    ciao e buon lavoro.
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  8. #8
    Avevo pensato anche a questo, ma con un altro stratagemma. In pratica duplico on-line tutto il sito, facendo puntare il menu contatti a quello che ho all'interno del mio server, così ho, il minisito off-line su cd-rom, e la versione on-line, con gli ultimi aggiornamenti sull'agomento. Che ne pensi?

  9. #9
    Certo... si può fare, ma c'è solo un contro: se chi visualizzerà il CD-Rom non ha una connessione internet attiva, visualizzerà solo il 10% del CD stesso.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  10. #10
    Beh, la cosa non sussiste perchè lì ci arrivano dal fatto che vogliono mandare una e-mail, ergo, hanno una connessione attiva.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.