[PHP] Salvare csv da form dati

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
42
Massa, Italy
Salve, ho questo codice che funziona ma non so come mai invece di scrivere solo i dati prevenienti dal form mi salva tutto l'html del sito web.

PHP:
function save_csv($nome, $cognome, $oggetto, $messaggio, $email, $ipinfo, $privacy)
{
  # Title of the CSV
       $Content = "Nome, Cognome, Oggetto, Messaggio, Email, Loc, Email\n";

       //set the data of the CSV
       $Content .= "$nome;$cognome;$oggetto;$messaggio;$email;$ipinfo;$privacy\n";

       # set the file name and create CSV file
       $FileName = "mail-".date("m-y").".csv";
       header('Content-Type: application/csv');
       header('Content-Disposition: attachment; filename="' . $FileName . '"');
       echo $Content;
      
}

come faccio metterlo dopo nel mail->send di phpmailer ?

e poi perché me lo fa salvare dal browser invece di salvarlo nella cartella dove voglio io.?

Grazie mille e buona settimana.
 
ho quasi fatto ma non salva le collone giuste quando apro con Calc (Libreoffice).
PHP:
function save_csv($nome, $cognome, $oggetto, $messaggio, $email, $ipinfo, $privacy)
{
  $contenuto = "".$nome.";"."".$cognome.";"."".$oggetto.";"."".$messaggio.";"."".$email.";".$ipinfo.";".$privacy.";";
  file_put_contents('mail-'.date("m-Y").'.csv', $contenuto, FILE_APPEND);

}

idea?
 
Ultima modifica di un moderatore:
Diciamo che i double quote che hai messo sono inutili....
Questo .";"."". produce esattamente NOME;COGNOME quindi non serve a nulla...
Le intestazioni devono essere separate sempre con la stessa logica dei dati quindi togli la virgola e metti il punto e virgola.
PHP:
$Content = "Nome;Cognome;Oggetto;Messaggio;Email;Loc;Email\r\n";
$Content.= $nome.';'.$cognome.';'.$oggetto.';'.$messaggio.';'.$email.';'.$ipinfo.';'.$privacy."\r\n";
 
ok, cosi ha funzionato e ti ringrazio mille. ultima cosa il campo messaggio si può andare a capo nel file csv? perché se lo apro con calc, il testo è lunghissimo . Hai idea?
Grazie mille.
 
No, se è csv no, tanto vale inserirlo in un DB, forse sarebbe meglio, o in alternativa in un DB flat e redis.
 
ok, ma c'è lo fatta.. sbagliavo ad inserire il contenuto e poi ho messo anche una funzione che mi pulisce l'html e me la messo ..
ti ringrazio molto e buona serata.
 

Discussioni simili