Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    problema invio dati form alla mia email

    sono una designer e non so nulla di PHP... ho appena approciato....
    ho creato pagina modulo.htm che va al sito invia.php, in questa pagina ho inserito questo script per far sì che mi arrivi una email con i dati inseriti dall'utente.

    Risultati ottenuti (IN MAIUSCOLO le parti mancanti o sbagliate) :

    NOME
    Cognome: caccia
    Centro/Studio: /STUDIO
    Indirizzo: via milano 3
    Cap: 21052
    Città: busto
    Provincia: va
    Telefono: 0331
    Cellulare: 338
    Fax: 0331
    Email:
    Sito Internet: INTERNET
    QUI MANCA TUTTO IL TESTO


    Ecco il PHP inserito:

    <?php

    $destinatario = "xxxxx@tiscali.it";

    $oggetto = "Modulo proveniente dal sito www.xxxx.it";

    $messaggio.= "Nome: $Nome\n";
    $messaggio.= "Cognome: $Cognome\n";
    $messaggio.= "Centro/Studio: $Centro/Studio\n";
    $messaggio.= "Indirizzo: $Indirizzo\n";
    $messaggio.= "Cap: $Cap\n";
    $messaggio.= "Città: $Citta\n";
    $messaggio.= "Provincia: $Provincia\n";
    $messaggio.= "Telefono: $Telefono\n";
    $messaggio.= "Cellulare: $Cellulare\n";
    $messaggio.= "Fax: $Fax\n";
    $messaggio.= "Email: $Email\n";
    $messaggio.= "Sito Internet: $Sito Internet\n";
    $messaggio.= $Testo;

    $da = $email;
    $intestazioni = "From: $da";

    mail ($destinatario, $oggetto, $messaggio, $intestazioni);
    ?>

    ringrazio in anticipo

  2. #2
    Comincio a darti qualche indicazione al volo così vediamo se la situazione migliora:

    I nomi di variabili non possono contenere spazi (e credo neanche lo slash) quindi cambia $Sito Internet in $Sito_Internet e $Centro/Studio in $Centro_Studio

    L'assegnazione del nome falla con un semplice = e non con un .= visto che è il primo pezzo della stringa.

    sostituisci i \n con dei \r\n

    concludi l'intestazione con \r\n, così: $intestazioni = "From: $da\r\n";

    per il resto non vedo altre differenze con un mio script analogo che funziona.
    Facci sapere
    Ciao
    La democrazia rappresentativa ha fatto il suo tempo, è ora di passare alla democrazia diretta.
    www.beppegrillo.it

  3. #3
    ohhhh ma grazie x me è veramente Arabo!
    ho provato seguendo le tue indicazioni e va tutto benissimo...manca solo una cosa, dopo la voce sito internet ho inserito un area di testo, l'html è questo:




    <textarea name="textarea" id="textarea" cols="80" rows="5"></textarea>
    </p>

    e il PHP che lo richiama è:

    $messaggio.= $Testo;

    forse in questo caso la stringa PHP deve essere diversa?

    grazie e buona giornata

  4. #4
    No, nessuna differenza, $Testo è una variabile come tutte le altre.

    Se non viene valorizzata assicurati che nel php ci sia un'istruzione come questa

    $Testo = $_POST['textarea'];

    oppure

    $Testo = $_GET['textarea'];

    (post o get dipende dal method che hai usato nel tag form per spedire i dati).

    Con tutta probabilità si trova all'inizio dello script php assieme ad altre istruzioni analoghe che valorizzano le altre variabili con i dati del form.

    Visto che non ne sai molto di php ti consiglio caldamente di rendere inoffensivo ciò che ti viene spedito via mail utilizzando, per lo meno, un htmlspecialchars, perché i form di invio mail sono una delle principali porte di accesso dei craker ai siti.

    Quindi le istruzioni che ti dicevo, in realtà devono essere scritte così

    $Testo = htmlspecialchars($_POST['textarea']);

    $Testo = htmlspecialchars($_GET['textarea']);

    e anche tutte le altre che prendono dati da $_POST o $_GET.

    Ciao
    La democrazia rappresentativa ha fatto il suo tempo, è ora di passare alla democrazia diretta.
    www.beppegrillo.it

  5. #5
    ciao NonCeLaFaccio+
    ho fatto ciò che mi hai scritto e ti ringrazio infinitamente, adesso il mio form è perfetto!
    per fortuna esistono questi siti e per fortuna persone come te risolvono i problemi
    ciao

  6. #6
    E' un piacere e poi non immagini quante cose si imparano aiutando gli altri a risolvere i loro problemi.

    Bye
    La democrazia rappresentativa ha fatto il suo tempo, è ora di passare alla democrazia diretta.
    www.beppegrillo.it

  7. #7

    far vedere l'indirizzo email del mittente

    ciao! sempre in riferimento a questo benedetto form....mi hanno detto se è possibile far vedere l'indirizzo email di chi compila il form non nel campo da compilare ma direttamente come mittente della email quindi alla sinistra dell'oggetto.
    nella email che arriva compilando il form questo spazio "da:" rimane in bianco
    spero di essermi spiegata!!!
    ringrazio già

  8. #8
    Ciao,
    non sono sicuro di aver capito bene, cioè come fa la mail ad arrivare se non c'è il mittente?

    Comunque riguardando il codice mi è saltato all'occhio che la variabile $email una volta è scritta con la E maiuscola e una volta tutto in minuscole. Per php queste sono due variabili diverse quindi è plausibile che una delle due risulti non valorizzata.

    Prova a scriverle tutte allo stesso modo e se continua a non funzionare spiegami meglio il problema.

    Ciao
    La democrazia rappresentativa ha fatto il suo tempo, è ora di passare alla democrazia diretta.
    www.beppegrillo.it

  9. #9

    non sono riuscita a spiegarmi...ci riprovo...

    ecco mi sa che non sono riuscita a spiegarmi...ci riprovo...
    quello che volevo spiegarti è che quando arriva una email solitamente si legge:
    "da" "oggetto" "data ricezione"
    nel mio caso quando Tizio compila il form sulla mia casella di posta visualizzo solo "oggetto: modulo proveniente sito..." e "data ricezione: ...." invece la voce "da" mi rimane vuota quindi se Tizio non compila la voce "email" del mio form io non posso sapere da chi mi arriva.
    nota: x assurdo, esiste forse una parte da inserire in php tipo: $mittente = ....

    ps-ho fatto la modifica che mi hai segnalato ma non cambia nulla

    grazie ancora!
    ciao!

  10. #10
    Ciao,
    se il navigatore non scrive niente nel campo email, chiaramente non potrà arrivarti la sua email (mi sarei aspettato che la funzione mail segnalasse un errore o che il server la cestinasse però evidentemente non è così) però si può impostare un indirizzo di default in modo che a te arrivi col mittente impostato, dovrebbe bastare inserire questa riga subito dopo le istruzioni di caricamento delle variabili a partire dai dati del $_POST:
    codice:
    if ($email == "") {$email = "xxx@yyy.it";}
    Al posto di xxx@yyy.it metti l'indirizzo mail che vuoi usare come default.
    Chiaramente anche questa variabile dovrà essere uguale alle altre per quanto riguarda maiuscole e minuscole.

    Questo dovrebbe risolvere il caso in cui l'utente non imposta nulla.

    Se invece il navigatore compila il campo email del form ciò che ci scrive dentro, qualunque cosa sia, dovrebbe arrivarti sia nel messaggio sia nel nel campo from della email.

    Se non è così vuol dire che c'è qualche problema ma per ora posso fare solo delle ipotesi.

    La prima è che il name dato al campo email del form sia diverso dalla variabile letta dal $_POST, questa è una verifica che puoi fare facilmente, guarda nel form, il campo in cui viene scritta l'email deve avere un attributo name="un_certo_nome" e lo stesso nome, identico e senza spazi, deve essere usato nel php per leggere il $_POST e caricare la variabile $email:

    codice:
    $email = htmlspecialchars($_POST['un_certo_nome']);
    Un'altra ipotesi è che la htmlspecialchars inserita, come ti ho detto, in tutti i campi (anche l'indirizzo email), possa disturbare la funzione mail.

    Per toglierci il dubbio prova a toglierla, giusto per una prova, e vedi se il problema si risolve, però poi, in ogni caso rimetticela, eventualmente riscrivi e proviamo a cercare una soluzione diversa.

    Ciao
    La democrazia rappresentativa ha fatto il suo tempo, è ora di passare alla democrazia diretta.
    www.beppegrillo.it

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.