Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    26

    Script Email non funzionante?

    Ciao a tutti, premetto che il php l'ho appena conosciuto quindi non lo conosco ancora bene, ho copiato da una guida uno script php che permette ai visitatori del mio sito di inviarmi le email, è formato da due file:

    send.php

    <?
    if (isset($email)):
    # l'indirizzo email a cui inviare la mail
    $target="vostra@email.it";
    mail($target,$subject,"Nome: ".$nome."\nTitolo: ".$subject."\n\n".$text);
    endif;
    ?>


    master.html

    <FORM ACTION="send.php3" METHOD="POST">Nome e Cognome:

    <INPUT TYPE="text" NAME="name" SIZE="20" MAXLENGTH="30">
    Email:

    <INPUT TYPE="text" NAME="email" SIZE="20" MAXLENGTH="30">
    Titolo:

    <INPUT TYPE="text" NAME="subject" SIZE="20" MAXLENGTH="30">
    Testo della mail:
    <INPUT TYPE="textarea" NAME="text" ROWS="10" COLS="60" MAXLENGTH="200">

    <INPUT TYPE="submit" VALUE="INVIA">
    </FORM>

    Il primo problema di questo script era che con la prima prova che ho fatto l'e-mail mi arrivata dopo 40 minuti ma le altre tutte dopo 2, quindi non credo che abbia altri problemi riguardo al tempo; ma il vero problema è che nella pagina master ci sono 4 form da compilare: nome, tua email, oggetto, testo email. Ma mi arriva solo l'oggetto e il testo dell'email... e nien'altro, qual'è il problema? io non vedo errori (forse perchè non conosco il codice php )? per farvi capire com'è la pagina master php potete guardaere a questo link

    http://cucinox.altervista.org/master.html

  2. #2
    Codice PHP:

    <?php

    $Target 
    = (string) "TuaMail@mail.com";

    $Headers = (string) "From:" $_POST"name" ];

    mail $Target,  $_POST"email" ], $_POST"text"  ], $Headers );

    ?>
    =)

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    26
    Originariamente inviato da KajinDetier
    Codice PHP:

    <?php

    $Target 
    = (string) "TuaMail@mail.com";

    $Headers = (string) "From:" $_POST"name" ];

    mail $Target,  $_POST"email" ], $_POST"text"  ], $Headers );

    ?>
    =)
    Ciao, innanzitutto, grazie per avermi risposto, ho provato il tuo script sostituendolo al mio, i risultati sono questi:
    - l'indirizzo email è spuntato come oggetto
    - il nome è spuntato come indirizzo email + @ns23.altervista.org
    - l'oggetto non c'è proprio
    - il testo è stato spedito (come avveniva nel precedente script)

    Un problema persistente è quello che quando l'email è stata inviata la pagina rimane bianca: il vorrei che si potesse mettere un redirect

  4. #4
    Ah, Pardon. Credevo che i valori fossero ordinati per riga, ed invece ci sono i br.

    Codice PHP:


    <?php 

    $Target 
    = (string) "TuaMail@mail.com"

    $Headers = (string) "From: " $_POST"name" ] . " <" $_POST"email" ] . ">" "\r\n"

    mail $Target,  $_POST"subject" ], $_POST"text"  ], $Headers ); 

    ?>
    Comunque, un consiglio:
    Le variabili che ricevi in POST, non definirle/richiamarle mai senza il loro prefisso. (E questo vale anche per altre variabili predefinite, dai un occhiata qui: http://it.php.net/manual/en/reserved.variables.php) =) )

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    26
    ok, adesso va bene tutto eccetto una cosa: la cosa più importante: il testo, non c'è più il testo e dopo sistemato (spero) anche questo problema, volevo inserire un redirect quando l'email è stata spedita, ho cercato su internet, secondo te questo va bene se le aggiungo alla fine dello script o c'è qualche errore?:

    $redirect = "pagina del redirect.htm";
    header ("location: $redirect");



    Comunque, un consiglio:
    Le variabili che ricevi in POST, non definirle/richiamarle mai senza il loro prefisso. (E questo vale anche per altre variabili predefinite, dai un occhiata qui: http://it.php.net/manual/en/reserved.variables.php) =) )
    Scusa ma per me è come se leggessi il tailandese (io non so il tailandese), poi se mi dai anche pagine da tradurre in inglese: ; quindi non puoi pervafore spiegarmi cosa dovrei fare?

  6. #6
    Si, va bene. Prima, però, verifica se arrivano tutti i valori nel modo giusto, con questa semplice riga:
    Codice PHP:

    print_r 
    $_POST  ); 

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    26
    Originariamente inviato da KajinDetier
    Si, va bene. Prima, però, verifica se arrivano tutti i valori nel modo giusto, con questa semplice riga:
    Codice PHP:

    print_r 
    $_POST  ); 
    Ho inserito quella stringa in fondo alla fine dello script e mi è spuntata queta riga dopo che ho inviato l'email:

    Array ( [name] => Paolo [email] => miacasella@diposta.it [subject] => Prova email [text] => testo mio )

    Quindi dovrebbe essere tutto ok, ma ricevendo l'email mi manca la parte essenziale: il testp. Nell'email che ricevo al mio indirizzo è tutto ok a parte il testo è l'unica cosa che manca e la più importante... ma per il resto è tutto ok; a parte il redirect....

  8. #8
    All'inizio dello script (E della pagina stessa), inserisci questa funzione:

    Codice PHP:

    ob_start
    (); 
    :rollo:

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    26
    Originariamente inviato da KajinDetier
    All'inizio dello script (E della pagina stessa), inserisci questa funzione:

    Codice PHP:

    ob_start
    (); 
    :rollo:
    Scusami, ma non ho capito bene: lo devo mettere la riga dopo <?php ? e anche nella pagina html o no?

  10. #10
    La funzione deve essere eseguita prima di ogni altro elemento, PHP o HTML. Quindi se hai uno script come questo:

    Codice PHP:

    <html>
    <head>
    </head>
    <body>

    <?
        
    ...
    ?>

    </body>
    </html>
    ob_start va inserito qui:

    Codice PHP:

    <?
        ob_start
    ();
    ?>

    <html>
    <head>
    </head>
    <body>

    <?
        
    ...
    ?>

    </body>
    </html>
    Ovviamente costruire un interfaccia php in questo modo, rende lo script un pò obsoleto, ma ogni cosa ha il suo tempo. =)

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.