Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2013
    Messaggi
    5

    Nessuno può aiutarmi?, problema con PHPMailer

    problema con PHPMailer

    Ciao ragazzi, cerco disperatamente il vostro aiuto.
    ho inserito nel mio sito un modulo contatti con validazione AJAX e PHPMailer tutto funziona a meraviglia... ma vorrei inserire in un altra pagina lo stesso modulo ma aggiungendo un input allegati.
    inserendo solo la stringa PHPMailer,
    mi potreste aiutare. grazie
    vi inserisco i dati del PHP:

    <?php

    /** Includiamo la class PHPMailer */
    include_once('PHPMailer.class.php');
    /**La vostra e-mail, in cui ricevere l'email */
    $email_sito = 'info@nome_sito.com';
    /**Il Nome del vostro sito web */
    $nome_sito = 'nome_sito';
    /** Recuperiamo i dati */
    $nome = $_REQUEST['nome'];
    $email = $_REQUEST['email'];
    $country = $_REQUEST['country'];
    $select = $_REQUEST['select'];
    $sito = $_REQUEST['sito'];
    $messaggio = $_REQUEST['messaggio'];
    $accetto = $_REQUEST['accetto'];
    $IP = $_SERVER['REMOTE_ADDR'];
    //controlliamo i campi obbligatori
    if(empty($nome) || empty($email) || empty($country) || empty($select) || empty($accetto) || empty($messaggio)) {
    echo '<p class="error">Compila tutti i campi</p>';
    } else {
    $msg = "<strong>IP:</strong> $IP <br />";
    $msg .= "<strong>Nome:</strong> $nome <br />";
    $msg .= "<strong>E-mail:</strong> $email <br />";
    $msg .= "<strong>Nazione:</strong> $country <br />";
    $msg .= "<strong>Richiesta:</strong> $select <br />";
    $msg .= "<strong>Sito Web:</strong> $sito <br />";
    $msg .= "<strong>Messaggio:</strong> $messaggio <br />";
    $msg .= "<strong>Privacy:</strong> $accetto <br />";
    /** Istanziamo la classe PHPMailer */
    $mail = new PHPMailer();
    $mail->From = $email;
    $mail->FromName = ''.$nome.' '.$cognome.'';
    $mail->AddAddress($email_sito);
    $mail->IsHTML(true);
    $mail->CharSet = 'UTF-8';
    $mail->Subject = 'Modulo proveniente dal sito: '.$nome_sito;
    $mail->Body = $msg;
    if($mail->Send()) echo '<p class="validate">E-mail spedita in modo corretto!</p>';
    }
    ?>

    nel form devo lasciare questa stinga <form action="" id="formYIW" method="POST">
    o aggiungere questa <form enctype="multipart/form-data" action="" id="formYIW" method="POST">
    Vi sarei grato se potreste aiutarmi.
    Vi auguro un sereno Natale ed un felice anno nuovo a tutti

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Per caricare dati da un form devi necessariamente aggiungere enctype="multipart/form-data"

    Per allegare un file all'email basta che usi (supponendo sia un file jpg)
    $mail->AddAttachment("path_alla_cartella/file.jpg");

    Nello script i dati recuperali con $_POST, non con $_REQUEST, altrimenti rischi che qualcuno possa inviarti anche dati in get.

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2013
    Messaggi
    5

    risposta

    Ciao grazie della tua risposta.
    I tuo suggerimento l'avevo già fatto, ma mi arriva l'immagine che inserisco in $mail->AddAttachment("path_alla_cartella/file.jpg"); invece vorrei che un utente possa inviare sia foto che cartelle zip dal modulo contatti del sito.

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Il mio era solo un esempio, invece del file jpg può essere caricato qualsiasi cosa, non fa differenza il tipo di file.

    Lo script che riceve i dati del form deve salvare il file da qualche parte con la funzione move_uploaded_file() ed a PHPMailer ci passi path e nome del file in questione, qualsiasi esso sia.

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2013
    Messaggi
    5
    scusami ma non sono molto bravo con PHP. se ho capito bene path_alla_cartella ( e una cartella che devo inserire io sul server per far giungere tutti i file?) se metto solo file.jpg va bene per tutti i tipi di file? ho sostituito il $_REQUEST con $_POST come da te suggerito.
    secondo te non dovrei inserire la stringa $_file nella sezione "recupero i dati"?
    mi faresti cosa gradita se potresti modificare il PHP sopra inserendo le tue modifiche, da poter capirlo meglio.

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Quote Originariamente inviata da jaspy Visualizza il messaggio
    scusami ma non sono molto bravo con PHP. se ho capito bene path_alla_cartella ( e una cartella che devo inserire io sul server per far giungere tutti i file?)
    Sì, devi creare sul server una cartella dove metterai tutti i file, dopo aver inviato la mail, puoi (anzi devi) cancellare il file appena salvato lì dentro visto che non ti servirà più.

    file.jpg non serve a niente, era solo un esempio per dire un nome di un file.

    Ok, quindi non sai come gestire i file caricati, leggi qui
    http://www.php.net/manual/it/feature...ost-method.php

    Il percorso fino alla cartella sarà sempre lo stesso una volta che lo avrai deciso, ciò che cambia per l'allegato sarà il nome del file appena caricato che dovrai saper leggere (saprai come fare leggendo la guida che ti ho linkato).

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2013
    Messaggi
    5
    Ok ora ci provo
    Grazie

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.