Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15

Discussione: file di log

  1. #1

    file di log

    Bene, ho creato un bel modulo per l'invio di messaggi
    adesso mi piacerebbe molto tenere traccia degli indirizzi a cui vengono spediti e da chi...

    devo quindi far creare a php un file di testo in cui metto data, ora e le variabili contenenti il nome del mittente e l'indirizzo del destinatario

    if (isset($_POST["invia"])) {
    $nome = $_POST["nome"];
    $messaggiopers = $_POST["messaggiopers"];
    $emaildest = $_POST["emaildest"];

    $logfile = "auguri/logauguri.txt";
    $contenuto= "$date::$time::$nome::$emaildest::$mesaggiopers\n" ;
    $fp = fopen($logfile, "a");
    $fw = fwrite($fp, $contenuto);
    $fc = fclose($fp);


    $sendmail = mail($emaildest, $oggetto, $messaggio, $headers);

    if($sendmail)
    echo "invio del messaggio riuscito";
    else
    echo "impossibile inviare il messaggio";

    }



    SEEE magari... non funziona, chissà come mai? sono impedita?
    Come al solito spero che possiate aiutarmi
    Viviamo tutti in una palude di fango, ma alcuni di noi guardano le Stelle http://www.comunicareoltre.it

  2. #2
    non puoi appoggiarti a un database?

    cmq che errore ti da?

    poi il log ti conviene crearlo dopo if ($sendmail), perché se no te lo crea anche se il messaggio non è stato inviato...
    altra cosa, alla fine della riga metti \n\r, che se no in windows da problemi


  3. #3
    no, non mi da nessun errore, semplicemente non crea il file e quindi non ci mette nemmeno le informazioni che mi servono, non uso un database perchè questo script serve solo per l'invio di un messaggio di auguri di natale da parte di 2 soli utenti.
    Grazie per il consiglio su /r/n
    Se lo metto dopo sendmail succede la stessa cosa, gli auguri partono, ma non viene creato il file
    Viviamo tutti in una palude di fango, ma alcuni di noi guardano le Stelle http://www.comunicareoltre.it

  4. #4
    aggiungi error_reporting (E_ALL ^ E_NOTICE); prima del codice e dimmi si ti da degli errori :master:

  5. #5
    Warning: fopen(auguri/logauguri.txt): failed to open stream: No such file or directory in D:\Inetpub\webs\comunicareoltreit\auguri\invioaut5 .php on line 52

    Warning: fwrite(): supplied argument is not a valid stream resource in D:\Inetpub\webs\comunicareoltreit\auguri\invioaut5 .php on line 53

    Warning: fclose(): supplied argument is not a valid stream resource in D:\Inetpub\webs\comunicareoltreit\auguri\invioaut5 .php on line 54


    le linee 52 53 e 54 contengono

    $fp = fopen($logfile, "a");
    $fw = fwrite($fp, $contenuto);
    $fc = fclose($fp);

    che figata questa cosa del controllo degli errori
    Viviamo tutti in una palude di fango, ma alcuni di noi guardano le Stelle http://www.comunicareoltre.it

  6. #6
    prova con
    codice:
    $logfile = "logauguri.txt";

  7. #7
    avevo già provato, ma niente, stessa cosa, fa l'invio ma non crea il file di log, ti mando tutto il listato, secondo me è solo un problema di posizionamento della parte che crea e scrive il file

    <?php
    $oggetto = "Buon Natale e Felice Anno Nuovo";
    $emailmit = "postmaster@comunicareoltre.it";

    $messaggio = '
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Auguri</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>

    <body>



    <map name="Map">
    <area shape="rect" coords="5,40,84,59" href="http://www.comunicareoltre.it" target="_blank" alt="comunicare oltre">
    <area shape="rect" coords="145,697,300,706" href="mailtoostmaster@comunicareoltre.it" target="_blank" alt="comunica con noi">
    <area shape="rect" coords="146,706,262,718" href="http://www.comunicareoltre.it" target="_blank" alt="comunicare oltre">
    </map></p>
    </body>
    </html>
    ';

    $messaggio .= "$messaggiopers\n";
    $messaggio .= "$nome\n\n";


    $headers = "MIME-Version: 1.0\n";
    $headers .= "Content-type: text/html; charset=\"iso-8859-1\"\n";
    $headers .= "Content-Transfer-Encoding: 7bit\n\n";
    $headers .= "From: Comunicare Oltre <postmaster@comunicareoltre.it>\n";
    $headers .= "Reply - To: postmaster@comunicareoltre.it";




    if (isset($_POST["invia"])) {

    $nome = $_POST["nome"];
    $messaggiopers = $_POST["messaggiopers"];
    $emaildest = $_POST["emaildest"];



    $sendmail = mail($emaildest, $oggetto, $messaggio, $headers);

    if($sendmail){
    error_reporting (E_ALL ^ E_NOTICE);
    $logfile = "auguri/logauguri.txt";
    $contenuto = "$date::$time::$nome::$emaildest::$mesaggiopers\n\ r";
    $fp = fopen($logfile, "a");
    $fw = fwrite($fp, $contenuto);
    $fc = fclose($fp);

    echo "invio del messaggio riuscito";
    }
    else
    echo "impossibile inviare il messaggio";



    }

    ?>

    <html>
    <style type="text/css">
    <!--
    .Stile1 {font-family: Arial, Helvetica, sans-serif}
    .Stile6 {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 24px;
    font-weight: bold;
    }
    .Stile7 {color: #FFFFFF}
    .Stile8 {font-family: Arial, Helvetica, sans-serif; color: #FFFFFF; }
    -->
    </style>
    <body bgcolor="#ff0000" text="#ffffff">
    <form name="invioauguri" method="post" action="<?php echo $_SERVER["PHP_SELF"];?>">

    <div align="left">
    <p align="center"></p>
    <p align="center"><span class="Stile6">Inserisci i dati per l' invio dei tuoi auguri:</span>

    </p>
    </div><hr>
    <div align="center">
    <table width="44%" border="0" cellspacing="0" cellpadding="0" height="182">
    <tr>
    <td width="23%" valign="middle"><div align="right" class="Stile1 Stile7">NOME DEL MITTENTE:</div></td>
    <td width="77%"><input type="text" name="nome"></td>
    </tr>

    <tr>
    <td valign="middle"><div align="right" class="Stile8">E-MAIL DEL DESTINATARIO:</div></td>
    <td><input type="text" name="emaildest"></td>
    </tr>

    <tr>
    <td valign="middle"><div align="right" class="Stile8">MESSAGGIO PERSONALIZZATO:</div></td>
    <td>
    <textarea name="messaggiopers" cols="40" rows="4"></textarea>
    </td>
    </tr>
    </table>

    <div align="center">
    <input type="submit" name="invia" value="INVIA">
    <input type="reset" name="reset" value="CANCELLA">

    </div>
    </div>
    </form>
    </body>
    </html>
    Viviamo tutti in una palude di fango, ma alcuni di noi guardano le Stelle http://www.comunicareoltre.it

  8. #8
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    L'errore che ti segnala dice "non esiste il file o la directory". Se non esiste il file dovrebbe cercare di crearlo, quindi parrebbe un problema di directory.
    Tu lavori in una directory che si chiama auguri e cerchi di fargli aprire il file in un'altra directory "auguri", che dovrebbe trovarsi sotto la prima. Supponendo che non ci sia e che il problema sia quello, si dovrebbe però risolvere con il suggerimento di pugia. Sicura di aver provato bene come dice lui?

  9. #9
    Dunque nel php c'era qualche errore di battitura, per cui non leggeva la variabile $messaggiopers...era scritta diversa :rollo:

    Poi non avevi impostato di valori di $date e $time, te li ho messi io, se vuoi cambiare la "forma" dai un'occhiata qui...

    Poi il controllo sul invio e l'inizializzazione delle variabili va messo all'inizio perché se no quando richiami
    codice:
    $messaggio .= "$messaggiopers\n";
    $messaggio .= "$nome\n\n";
    non trova alcun valore perché $messaggiopers e $nome non sono ancora stati settati...

    Questo è il codice diciamo "aggiustato":
    codice:
    <?php
    error_reporting (E_ALL ^ E_NOTICE);
    
    if (isset($_POST["invia"])) {
    
    $nome = $_POST["nome"];
    $messaggiopers = $_POST['messaggiopers'];
    $emaildest = $_POST["emaildest"];
    
    // DATA E TEMPO NON INIZIALIZZATE
    $date = date("d/m/Y", time());
    $time = date("G:i:s", time());
    
    
    $oggetto = "Buon Natale e Felice Anno Nuovo";
    $emailmit = "postmaster@comunicareoltre.it";
    
    $messaggio = '
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Auguri</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
    
    <body>
    
    
    
    <map name="Map">
    <area shape="rect" coords="5,40,84,59" href="http://www.comunicareoltre.it" target="_blank" alt="comunicare oltre">
    <area shape="rect" coords="145,697,300,706" href="mailto:postmaster@comunicareoltre.it" target="_blank" alt="comunica con noi">
    <area shape="rect" coords="146,706,262,718" href="http://www.comunicareoltre.it" target="_blank" alt="comunicare oltre">
    </map></p>
    </body>
    </html>
    ';
    
    $messaggio .= "$messaggiopers\n";
    $messaggio .= "$nome\n\n";
    
    
    $headers = "MIME-Version: 1.0\n";
    $headers .= "Content-type: text/html; charset=\"iso-8859-1\"\n";
    $headers .= "Content-Transfer-Encoding: 7bit\n\n";
    $headers .= "From: Comunicare Oltre <postmaster@comunicareoltre.it>\n";
    $headers .= "Reply - To: postmaster@comunicareoltre.it";
    
    
    
    
    
    
    
    $sendmail = mail($emaildest, $oggetto, $messaggio, $headers);
    
    if($sendmail){
    $logfile = "auguri/logauguri.txt";
    //QUESTI SPAZI TOGLILI, LI HO MESSI PER FARLO VISUALIZZARE MEGLIO
    $contenuto = "$date:: $time:: $nome:: $emaildest:: $messaggiopers\n\r";
    $fp = fopen($logfile, "a");
    $fw = fwrite($fp, $contenuto);
    $fc = fclose($fp);
    
    echo "invio del messaggio riuscito";
    }
    else
    echo "impossibile inviare il messaggio";
    
    
    
    }
    
    ?>
    Per quanto riguarda l'errore mi vengono in mente due possibili errori, uno è quello che ti ha anche detto luca200, che cioè la cartella non esista o non sia nella posizione corretta. L'altro problema, può essere dovuto al CHMOD della cartella: non sono sicuro, ma credo che per fargli creare dei files tu debba impostarlo su 777...

    Io l'ho provato sul mio sito e funziona, prova a guardare:
    http://www.pugia.com/comunicareoltre.php
    http://www.pugia.com/auguri/logauguri.txt

  10. #10
    Vi ringrazio per l'aiuto e per la pulitura del codice (pulitura è un eufemismo, diciamo che c'era qualche errore)...servirà per imparare, però un'altra cosa che vorrei imparare è proprio questa, come si imposta il CHMOD della cartella a 777?

    So cosa vuol dire perchè ho letto un interessante articolo sul sito freephp.it ma non c'è scritto come si imposta?

    Tramite il mio client FTP?

    Gli errori permangono e sono gli stessi che ho postato precedentemente, e riguardano, come mi facevate notare, proprio l'impossibilità di creare il file nella cartella "auguri".

    il percorso del file dovrebbe essere http://www.miosito.it/auguri/logauguri.txt

    la cartella auguri esiste ed è dove deve essere e il file php di cui stiamo discutendo che è quello che creerebbe il file logauguri.txt è proprio nella cartella auguri...

    Non è lui che non funziona, sono io
    Viviamo tutti in una palude di fango, ma alcuni di noi guardano le Stelle http://www.comunicareoltre.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.