Visualizzazione risultati 1 fino 7 di 7

Discussione: [php] Aiuto per form

  1. #1
    Guest

    Predefinito [php] Aiuto per form

    Ciao a tutti,mi sono iscritto da poco e ho inserito il mio sito nella comunità,se possibile avrei bisogno di un aiuto per modificare il file php che comanda l'invio della form inserità nella mia pagina contatti. Premetto che sono quasi completamente a digiuno di qualsiasi nozione riguardante linguaggi html,php etc.. quindi abbiate pietà

    Ho provato a cercare in giro per il forum prima di chiedere ma non essendo granchè esperto non sono riuscito a tirare fuori niente di buono apparte piccole modifiche.

    Il file php che sto usando è questo:

    Codice PHP:
    <?php
    $oggi
    = date("j F Y G:i");
    $sito = "nomesito";
    $ip = "$_SERVER[REMOTE_ADDR]";
    $browser = "$_SERVER[HTTP_USER_AGENT]";
    $to = "email";
    $soggetto = "Form contatti $sito";
    if(
    trim($_POST['nome']) == "" OR trim($_POST['email']) == "" OR trim($_POST['oggetto']) == "" OR trim($_POST['messaggio']) == "") {
    echo
    "<font color=\"#000000\" face=\"Arial\" size=\"10\"><strong>Tutti i campi sono obbligatori</strong></font>"; }
    else {
    $body = "Modulo inviato il $oggi da $ip - $browser \n\n";
    $body .= "Nome: $_POST[nome] \nEmail: $_POST[email] \nOggetto: $_POST[oggetto] \nMessaggio: $_POST[messaggio]";
    mail("$to","$soggetto","$body");
    header("Location:Chi-sono.htm"); }
    ?>
    Tramite informazioni trovate sul forum sono riuscito a far si che dopo l'invio del form la pagina torni dove risiede il form stesso, che in pratica è nella pagina "Chi sono". Ora vorrei aggiungere qualche altra funzione,vi scrivo in maniera schematica quello che vorrei inserire:

    1): Conferma di messaggio inviato riuscita con riepilogo dati inseriti.
    2): Controllo validità campo E-mail.
    3): Poter vedere nel campo mittente del mio client di posta il nome dell'utente che è stato inserito nel modulo invece di visualizzare "Apache".

    Se possibile avrei bisogno gentilmente non solo di sapere quale è il codice per queste funzioni ma anche dove va messo di preciso,come ho già detto sono quasi completamente a digiuno con questo tipo di nozioni.

    Un ultima informazione: I dati che mi verranno inviati tramite il form rimangono nel mio spazio web e vengono cancellati dopo un pò di tempo oppure il server fa solo da tramite e quindi i messaggi vengono cancellati immediatamente dopo l'invio?

    Ringrazio in anticipo chiunque avrà voglia di leggere e aiutarmi con questi piccoli problemi e chiedo scusa per il post chilometrico,ciao.

  2. #2
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,232

    Predefinito

    Se vuoi visualizzare l'email e il nome del mittente basta modificare in questo modo:
    Codice PHP:
    $by = "$_POST['nome'] <$_POST['email']>";
    mail("$to","$soggetto","$body","From: $by);
    Se vuoi visualizzare un messaggio dove mostri i dati inviati + l'esito dell'invio dovresti eliminare/modificare questo:
    Codice PHP:
    Header("Location: Chi-Sono.htm");
    Apprezzi l'aiuto? Offrimi un caffè!

  3. #3
    Guest

    Predefinito

    Ciao miki92 e grazie per l'attenzione, ho modificato le prime due righe che mi hai passato,quelle per visualizzare email e nome mittente, e mi appare questo messaggio di errore:

    Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in
    mi indica che è riferito alla riga 13 del file php e cioè questa:

    Codice PHP:
    $by = "$_POST['nome'] <$_POST['email']>";
    Per quanto riguarda l'esito dell'invio dati e il riepilogo,la riga che mi consigli di eliminare\modificare l'ho inserita per far si che dopo aver premuto il pulsante di invio mi ritorni alla pagina "Chi-sono.htm" dove risiede il form. Prima non c'era e quando premevo invio mi rimaneva la pagina bianca del file php.

    In quanto a queste altre due domande mi puoi aiutare?:

    2): Controllo validità campo E-mail.
    Un ultima informazione: I dati che mi verranno inviati tramite il form rimangono nel mio spazio web e vengono cancellati dopo un pò di tempo oppure il server fa solo da tramite e quindi i messaggi vengono cancellati immediatamente dopo l'invio?
    Per il momento ti ringrazio ancora per l'attenzione.

  4. #4
    Guest

    Predefinito

    Nessun aiuto?...scusate se insisto ma è tutto il giorno che tento di capirci qualcosa senza risultati,ho controllato ovunque ma leggo solo arabo.

  5. #5
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,232

    Predefinito

    Piano non uppare inutilmente, mica possiamo stare 24h/24h sul forum

    Prova cosi:
    Codice PHP:
    $m = $_POST['email'];
    $n = $_POST['nome'];
    $by = "$n <$m>";
    Citazione Originalmente inviato da Diego3D
    Un ultima informazione: I dati che mi verranno inviati tramite il form rimangono nel mio spazio web e vengono cancellati dopo un pò di tempo oppure il server fa solo da tramite e quindi i messaggi vengono cancellati immediatamente dopo l'invio?
    Quando invii la mail essa non occupa spazio sul tuo sito ma nella tua casella di posta, quindi il server non ha traccia del messaggio inviato.
    Citazione Originalmente inviato da Diego3D
    Per quanto riguarda l'esito dell'invio dati e il riepilogo,la riga che mi consigli di eliminare\modificare l'ho inserita per far si che dopo aver premuto il pulsante di invio mi ritorni alla pagina "Chi-sono.htm" dove risiede il form. Prima non c'era e quando premevo invio mi rimaneva la pagina bianca del file php.
    Rimaneva una pagina bianca perchè inviava l'e-mail senza che venisse mostrato alcun messaggio, volendo puoi modificare quell'header in modo tale da visualizzare i dati inviati + un messaggio di conferma che l'e-mail è stata inviata e far si che dopo un determinato numero di secondi ritorni alla pagina "Chi-sono.htm, oppure si può tornare alla pagina "Chi-sono.htm" subito dopo l'invio della mail e mostrare li i dati inviati e l'esito però questo richiede la modifica della pagina "Chi-sono.htm" in Chi-sono.php

    Dimmi se sono stato chiaro, se non hai capito qualche cosa o cosa vuoi fare, io cercherò di accontentarti

    EDIT: Per controllare la validità dell'email puoi interagire con questo script:
    Codice PHP:
    <?php
    function chkEmail($email)
    {
    // elimino spazi, "a capo" e altro alle estremità della stringa
    $email = trim($email);

    // se la stringa è vuota sicuramente non è una mail
    if(!$email) {
    return
    false;
    }

    // controllo che ci sia una sola @ nella stringa
    $num_at = count(explode( '@', $email )) - 1;
    if(
    $num_at != 1) {
    return
    false;
    }

    // controllo la presenza di ulteriori caratteri "pericolosi":
    if(strpos($email,';') || strpos($email,',') || strpos($email,' ')) {
    return
    false;
    }

    // la stringa rispetta il formato classico di una mail?
    if(!preg_match( '/^[\w\.\-]+@\w+[\w\.\-]*?\.\w{1,4}$/', $email)) {
    return
    false;
    }

    return
    true;
    }

    $email = 'test@dominio.it';

    if(
    chkEmail($email)) {
    /* Fine controllo validità e-mail ed invio della mail SOLO se l'indirizzo è valido */

    $oggi = date("j F Y G:i");
    $sito = "nomesito";
    $ip = "$_SERVER[REMOTE_ADDR]";
    $browser = "$_SERVER[HTTP_USER_AGENT]";
    $to = "email";
    $soggetto = "Form contatti $sito";
    if(
    trim($_POST['nome']) == "" OR trim($_POST['email']) == "" OR trim($_POST['oggetto']) == "" OR trim($_POST['messaggio']) == "") {
    echo
    "<font color=\"#000000\" face=\"Arial\" size=\"10\"><strong>Tutti i campi sono obbligatori</strong></font>"; }
    else {
    $body = "Modulo inviato il $oggi da $ip - $browser \n\n";
    $body .= "Nome: $_POST[nome] \nEmail: $_POST[email] \nOggetto: $_POST[oggetto] \nMessaggio: $_POST[messaggio]";
    $m = $_POST['email'];
    $n = $_POST['nome'];
    $by = "$n <$m>";
    mail("$to","$soggetto","$body","From: $by");
    header("Location:Chi-sono.htm"); }

    // Se l'indirizzo e-mail non è corretto visualizzo un errore:
    }else {
    echo
    'Indirizzo email non valido';
    }
    ?>
    Ultima modifica di miki92 : 13-10-2008 alle ore 20.50.48 Motivo: Aggiunto Controllo Mail
    Apprezzi l'aiuto? Offrimi un caffè!

  6. #6
    Guest

    Predefinito

    Piano non uppare inutilmente, mica possiamo stare 24h/24h sul forum
    Sorry

    Ho copiato e incollato il codice esattamente come l'hai inserito nella tua ultima modifica,aggiungendo ovviamente la mia e-mail,il mittente ora lo vedo come volevo, cioè con il nome che viene inserito nel campo "nome e cognome" del form. Il problema rimane nella mail, ho provato ha inserirne una a caso senza chiocciola e i dati vengono spediti ugualmente senza che venga visualizzato nessun messaggio di allerta. Ho notato inoltre che avendo inserito una email fasulla senza chiocciola, il risultato è stato di vedermi recapitata una mail ibrida fra quella fasulla che ho inserito e quella del server di altervista, in pratica erano mescolate come se fosse una sola.

    Per quanto riguarda la conferma dell'invio con successo e il riepilogo dati la mia intenzione sarebbe di farla così come hai suggerito tu:
    volendo puoi modificare quell'header in modo tale da visualizzare i dati inviati + un messaggio di conferma che l'e-mail è stata inviata e far si che dopo un determinato numero di secondi ritorni alla pagina "Chi-sono.htm
    Il problema è che non ho la minima idea di come poterlo fare

  7. #7
    Guest

    Predefinito

    Se volete potete chiudere la discussione, ringrazio miki92 per il tempo che mi ha dedicato.

    Ciao

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •