Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Invio Mail - la mail non arriva!!

    Ciao ragazzi..
    premessa: classico niubbo di php.

    allora, vi spiego il mio problema:
    dal cd di php di html.it , ho prelevato lo script n° 41 che è un form mail (molto carino a dir la verità)
    l'unico problema è che le mail non arrivano a destinazione.
    Cioè il lo script le indica come inviate, ma in realtà non arrivano...
    Nel codice ci sono anche delle variabile che "parlano" di orari del server: infatti era segnata impostata a 6,e quando inviavo la mial diceva che era stato inviata fra sei ore.
    Allora ho impostato a 0 il valore, ma non cambia nulla, anche se la mail dice che è stata spedita all'ora attuale...

    Io uso winzozz xp, ma cmq i file php vengono uploadati su server web linux..

    vi posto i codici dei due file da me modificati , potreste dare un'occhiata?
    sfiga vuole che è roba che devo consegnare stasera ad un cliente..altrimenti so' cavoli


    Grazie a chi mi vorrà aiutare!!


    ECCO I CODE:
    <FORM ACTION="mail.php" METHOD="post">
    * = Campi richiesti


    <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0">
    <TR>

    <TD VALIGN="TOP" HEIGHT="" WIDTH="200" BGCOLOR="#FFFFFF">
    <span class="contenuto">Nome Azienda:*</span>
    </TD>
    <TD VALIGN="TOP" HEIGHT="" WIDTH="0" BGCOLOR="#FFFFFF">
    <input type="text" name="FirstName">
    </TD>
    </TR>
    </TABLE>
    <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0">
    <TR>

    <TD VALIGN="TOP" HEIGHT="" WIDTH="200" BGCOLOR="#FFFFFF">
    <span class="contenuto">referente:*</span> </TD>
    <TD VALIGN="TOP" HEIGHT="" WIDTH="0" BGCOLOR="#FFFFFF">
    <input type="text" name="SecondName">
    </TD>
    </TR>
    </TABLE>
    <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0">
    <TR>

    <TD VALIGN="TOP" HEIGHT="" WIDTH="200" BGCOLOR="#FFFFFF">
    <span class="contenuto">Richiesta:</span></TD>
    <TD VALIGN="TOP" HEIGHT="" WIDTH="0" BGCOLOR="#FFFFFF">
    <textarea cols="40" rows="5" name="Comments"></textarea>
    </TD>
    </TR>
    </TABLE>
    <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0">
    <TR>

    <TD VALIGN="TOP" HEIGHT="" WIDTH="200" BGCOLOR="#FFFFFF">
    <span class="contenuto">Newsletter:</span>
    </TD>
    <TD VALIGN="TOP" HEIGHT="" WIDTH="0" BGCOLOR="#FFFFFF">
    <input type ="checkbox" name="Newsletter" checked>
    </TD>
    </TR>
    </TABLE>



    <TABLE width="492" BORDER="0" CELLPADDING="0" CELLSPACING="0">
    <TR>
    <TD VALIGN="TOP" HEIGHT="" WIDTH="200" BGCOLOR="#FFFFFF">
    </TD>
    <TD VALIGN="TOP" HEIGHT="" WIDTH="" BGCOLOR="#FFFFFF">
    <input type="submit" value="Invia Richiesta"> <input type="reset" value=" Elimina Dati Inseriti">
    </TD>
    </TR>
    </TABLE>
    </FORM>
    Codice PHP:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <TITLE>Richiesta Informazioni</TITLE>
    </HEAD>
    <BODY>


    <?

        
    if($FirstName == ""//MAKE SURE VARIABLE E.G $FIRSTNAME MATCHES THE ONE ON YOUR FORM
        
    {
            echo(
    "[B]Nome Azienda:[/B] <FONT COLOR=red>Campo Obbligatorio</FONT> <A HREF=form.php>Torna Indietro</A>
    "
    );
            
    $required 0//IF FIELD IS LEFT BLANK, THE ABOVE ERROR MESSAGE WILL COME UP AND THE FORM WILL NOT BE SUBMITTED
        
    }
        else
        {
            echo(
    "[B]Nome Azienda:[/B] $FirstName
    "
    );
                        
    $required 1//IF THE FIELD IS FILLED IN, THE FORM WILL BE SUBMITTED WITHOUT ANY ERRORS
                     
    }
        if(
    $SecondName == "")
        {
            echo(
    "[B]Referente:[/B] <FONT COLOR=red>Campo Obbligatorio</FONT> <A HREF=form.php>Torna Indietro</A>
    "
    );
            
    $required 0;
        }
        else
        {
            echo(
    "[B]Referente:[/B] $SecondName
    "
    );
                        
    $required 1;
                    }
                    if(
    $Newsletter == "")
                    {
            echo(
    "[B]Newsletter:[/B] No
    "
    );
        }
        else
        {
            echo(
    "[B]Newsletter:[/B] Yes
    "
    );
                    }
                     if(
    $Comments == "")
        {
            echo(
    "[B]Comments:[/B] None

    "
    );
        }
        else
        {
            echo(
    "[B]Comments:[/B] $Comments

    "
    );
                    }

    $email "First Name:\t$FirstName\nSecond Name:\t$SecondName\nNewsletter:\t$Newsletter\nComments:\t$Comments\n\nIP:\t$REMOTE_ADDR\nBrowser:\t$HTTP_USER_AGENT\n\n"//THE FORMAT OF WHICH THE DATA WILL BE SENT TO THE E-MAIL

    $to "mia@email.it"//THE E-MAIL ADDRESS YOU WANT THE FORM DATA TO BE SENT TO

    $subject "info dal sito"//THE SUBJECT FIELD OF THE E-MAIL

    $mailheaders "From: $FirstName $SecondName <> \n"//THE FROM FIELD OF THE E-MAIL 

    $mailheaders .= "Reply-To: [email]mia@email.it[/email]\n\n"//THE REPLY TO FIELD OF THE E-MAIL

    $serverdiff "0"//--->PRIMA ERA IMPOSTATO A 6

    $adjusttime = ($serverdiff 60 60); //HOUR ADJUSTMENT

    $time date("l, jS F, Y - g:i A",time() + $adjusttime); //FORMAT

    if ($required == 1//THIS IS USED FOR REQUIRED FIELDS, IF USER FILLS IN A REQUIRED FIELD (1) THE INFORMATION WILL BE SHOWN, HOWEVER IF THE USER DOES NOT (0) THE ERROR MESSAGE WILL BE SHOWN AND THE FORM WILL NOT BE SUBMITTED. IF ALL REQUIRED FIELDS ARE FILLED IN, THE FORM WILL BE SUBMITTED CORRECTLY

    mail($to$subject$email$mailheaders); //MESSAGE SEND

    echo("[B]Se non sono stati trovati campi obbligatori non compilati, la tua richiesta &egrave; stata inoltrata a <FONT COLOR=red>$to</FONT> in data <FONT COLOR=red>$time GMT</FONT>. Grazie per averci contattato, <FONT COLOR=red> $SecondName</FONT>.[/B]"); //THE MESSAGE TO THE USER WHEN THE FORM IS SUBMITTED

    ?>




    [url="index.htm"]Torna Indietro[/url]





    <?
    $serverdiff 
    "0"//DIFFERENCE BETWEEN SERVER TIME AND LOCAL TIME -- anche qui era impostato 6

    $adjusttime = ($serverdiff 60 60); //HOUR ADJUSTMENT

    $time date("l, jS F, Y - g:i A",time() + $adjusttime); //FORMAT

    $ip $REMOTE_ADDR;  
    //$remote_addr is PHP variable to get ip address
    $referer $HTTP_REFERER;  
    //$http_referer is PHP variable to get referer
    $browser $HTTP_USER_AGENT;  
    //$http_user_agent is PHP variable for browser

    $fp fopen("log.html",  "a");  
    //use the fopen() function
    fputs($fp"[b]Time:[/b] $time
    [b]IP:[/b] 
    $ip
    [b]Referer:[/b] 
    $referer
    [b]Browser:[/b] 
    $browser

    "
    );  
    //using the fputs() function
    fclose($fp);  
    //closing the function
    ?>


    </BODY>

    </HTML>

  2. #2
    Ho dato un'occhiata veloce allo script.. Praticamente il problema non sta nella variabile delle ore (quella serve solo se l'orario sul server è diverso dall'orario italiano, perchè poi scriverà tutte le e-mail inviate, gli indirizzi ip e quantaltro su un file di log)... Prova a modificare il tuo script in questo modo:

    Codice PHP:
     <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <TITLE>Richiesta Informazioni</TITLE>
    </HEAD>
    <BODY>


    <?

        
    if($FirstName == ""//MAKE SURE VARIABLE E.G $FIRSTNAME MATCHES THE ONE ON YOUR FORM
        
    {
            echo(
    "[B]Nome Azienda:[/B] <FONT COLOR=red>Campo Obbligatorio</FONT> <A HREF=form.php>Torna Indietro</A>
    "
    );
            
    $required 0//IF FIELD IS LEFT BLANK, THE ABOVE ERROR MESSAGE WILL COME UP AND THE FORM WILL NOT BE SUBMITTED
        
    }
        else
        {
            echo(
    "[B]Nome Azienda:[/B] $FirstName
    "
    );
                        
    $required 1//IF THE FIELD IS FILLED IN, THE FORM WILL BE SUBMITTED WITHOUT ANY ERRORS
                     
    }
        if(
    $SecondName == "")
        {
            echo(
    "[B]Referente:[/B] <FONT COLOR=red>Campo Obbligatorio</FONT> <A HREF=form.php>Torna Indietro</A>
    "
    );
            
    $required 0;
        }
        else
        {
            echo(
    "[B]Referente:[/B] $SecondName
    "
    );
                        
    $required 1;
                    }
                    if(
    $Newsletter == "")
                    {
            echo(
    "[B]Newsletter:[/B] No
    "
    );
        }
        else
        {
            echo(
    "[B]Newsletter:[/B] Yes
    "
    );
                    }
                     if(
    $Comments == "")
        {
            echo(
    "[B]Comments:[/B] None

    "
    );
        }
        else
        {
            echo(
    "[B]Comments:[/B] $Comments

    "
    );
                    }

    $email "First Name:\t$FirstName\nSecond Name:\t$SecondName\nNewsletter:\t$Newsletter\nComments:\t$Comments\n\nIP:\t$REMOTE_ADDR\nBrowser:\t$HTTP_USER_AGENT\n\n"//THE FORMAT OF WHICH THE DATA WILL BE SENT TO THE E-MAIL

    $to "mia@email.it"//THE E-MAIL ADDRESS YOU WANT THE FORM DATA TO BE SENT TO

    $subject "info dal sito"//THE SUBJECT FIELD OF THE E-MAIL

    $mailheaders "From: $FirstName $SecondName <> \n"//THE FROM FIELD OF THE E-MAIL

    $mailheaders .= "Reply-To: [email]mia@email.it[/email]\n\n"//THE REPLY TO FIELD OF THE E-MAIL

    $serverdiff "0"//--->PRIMA ERA IMPOSTATO A 6

    $adjusttime = ($serverdiff 60 60); //HOUR ADJUSTMENT

    $time date("l, jS F, Y - g:i A",time() + $adjusttime); //FORMAT

    if ($required == 1//THIS IS USED FOR REQUIRED FIELDS, IF USER FILLS IN A REQUIRED FIELD (1) THE INFORMATION WILL BE SHOWN, HOWEVER IF THE USER DOES NOT (0) THE ERROR MESSAGE WILL BE SHOWN AND THE FORM WILL NOT BE SUBMITTED. IF ALL REQUIRED FIELDS ARE FILLED IN, THE FORM WILL BE SUBMITTED CORRECTLY

    if (mail($to$subject$email$mailheaders))  echo "\nMessaggio inviato correttamente!"//MESSAGE SEND
    else echo "Errore durante l'invio del messaggio e-mail";

    echo(
    "[B]Se non sono stati trovati campi obbligatori non compilati, la tua richiesta &egrave; stata inoltrata a <FONT COLOR=red>$to</FONT> in data <FONT COLOR=red>$time GMT</FONT>. Grazie per averci contattato, <FONT COLOR=red> $SecondName</FONT>.[/B]"); //THE MESSAGE TO THE USER WHEN THE FORM IS SUBMITTED

    ?>




    [url="index.htm"]Torna Indietro[/url]





    <?
    $serverdiff 
    "0"//DIFFERENCE BETWEEN SERVER TIME AND LOCAL TIME -- anche qui era impostato 6

    $adjusttime = ($serverdiff 60 60); //HOUR ADJUSTMENT

    $time date("l, jS F, Y - g:i A",time() + $adjusttime); //FORMAT

    $ip $REMOTE_ADDR;  
    //$remote_addr is PHP variable to get ip address
    $referer $HTTP_REFERER;  
    //$http_referer is PHP variable to get referer
    $browser $HTTP_USER_AGENT;  
    //$http_user_agent is PHP variable for browser

    $fp fopen("log.html",  "a");  
    //use the fopen() function
    fputs($fp"[b]Time:[/b] $time
    [b]IP:[/b] 
    $ip
    [b]Referer:[/b] 
    $referer
    [b]Browser:[/b] 
    $browser

    "
    );  
    //using the fputs() function
    fclose($fp);  
    //closing the function
    ?>


    </BODY>

    </HTML>
    Praticamente ho solo aggiunto un controllo quando c'è la funzione mail() per vedere se effettivamente la invia (allora mail() restituisce TRUE) o se fallisce. Se la invia bisogna cercare il problema altrove.
    Se vuoi un consiglio pulisci i dati ricevuti dal form prima che qualcuno cerchi di inserire codice "sporco" nel tuo sito o nei messaggi e-mail.
    Questa e' la mia firma! Lo so, e' una mezza schifezza.
    Un sito
    - skype non è per consulenze online -

  3. #3
    ho provato ma mi ha restituito l'errore...

  4. #4
    ok questa è una *buona* notizia... vuol dire che l'errore è nella funzione o nei parametri che gli passi... dunque vediamo...

    dove ti da errore esattamente? Io ho fatto girare questo script sul mio webserver e mi dice che l'email è stata inviata correttamente..

    (sto diventando quello a cui funzionano anche le cose che agli altri non vanno :P)
    Questa e' la mia firma! Lo so, e' una mezza schifezza.
    Un sito
    - skype non è per consulenze online -

  5. #5
    ecco cosa mi dice:


    Nome Azienda: AAAAAAAA
    Referente: aaaaa
    Newsletter: Yes
    Comments: trfyuytf

    Errore durante l'invio del messaggio e-mailSe non sono stati trovati campi obbligatori non compilati, la tua richiesta è stata inoltrata a marino.michele@gmail.com in data Saturday, 5th August, 2006 - 2:36 PM GMT. Grazie per averci contattato, Michele Marino.
    Torna Indietro


    tu che webserver usi?

  6. #6
    ecco, ti ho detto una ca***ta.
    l'ho spostato su un altro sito(hostato su un altro server) e funziona.

    Cosa potrebbe essere il problema?

  7. #7
    io utilizzo apache e lo faccio girare su linux... ma non penso dipenda da quello...
    se mi lasci una mezz'oretta ti riscrivo il codice php da capo, che ogni volta che lo guardo trovo qualcosa che non mi garba... :P

    ah, mi risparmio il pezzo dell'orario (e magari anche quello del log, se non ti importa... dimmi tu)
    Questa e' la mia firma! Lo so, e' una mezza schifezza.
    Un sito
    - skype non è per consulenze online -

  8. #8
    fai tu come ti riesce piu comodo...
    log e ora/data li ho perchè l'ho trovato gia cosi...
    tanto lo devo modificare perche devo mettere i campi
    NOME AZIENDA * --> campo obbligatorio
    REFERENTE * --> campo obbligatorio
    TELEFONO * --> campo obbligatorio
    E MAIL * --> campo obbligatorio
    INDIRIZZO
    CITTA'
    FAX
    RICHIESTA * --> campo obbligatorio (text-area)
    al posto degli attuali

  9. #9
    io l'ho riscritto così e a me funziona... cmq passa a linux (è vero, son di parte, ma a mio dire funziona moooooolto meglio!)

    Codice PHP:
      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <TITLE>Richiesta Informazioni</TITLE>
    </HEAD>
    <BODY> 

    <?php

    if(!isset($_POST['FirstName'], $_POST['SecondName']) || $_POST['FirstName'] == '' || $_POST['SecondName'] = '')
    {
        echo 
    "Mancano alcuni dati necessari per l'invio della mail. Compila il modulo in tutte le sue parti e riprova per favore.\nGrazie\n\n";
        echo 
    "<a href=\"javascript:history.back(-1)\">Torna indietro</a>";
    }
    else
    {
      
    $firstnm strip_tags($FirstName); //Questo per pulire i dati inviati da eventuale codice html o php
      
    $newsltt strip_tags($Newsletter); 
      
    $secndnm strip_tags($SecondName);
      
    $commnts strip_tags($Comments);
      
      echo 
    "[b]Nome Azienda[/b]:\t " $firstnm;
      echo 
    "\n[b]Referente[/b]:\t " $secndnm;
      echo 
    "\n[b]Newsletter[/b]:\t ";
      if(
    $newsltt '') {
        echo 
    "No";
        
    $newsltt "no";
        }
      else {
        echo 
    "Si";
        
    $newsltt "si";
        }
      echo 
    "\n[b]Commenti[/b]:\t " $commnts;
      
      
    $testoemail "\nAzienda:\t$firstnm\nReferente:\t$secndnm\nNewsletter:\t$newsltt\n\nCommenti:\n$commnts\n\nIP:\t$REMOTE_ADDR\nBrowser:\t$HTTP_USER_AGENT\n\n";
      
    $to "tuaemail@tuodominio.com";
      
    $subject "info dal sito";
      
    $mailheaders "From: $firstnm $secndnm <> \n"//THE FROM FIELD OF THE E-MAIL
      
    $mailheaders .= "Reply-To: $to\n\n"
      
      if (
    mail($to$subject$testoemail$mailheaders))  echo "

    Messaggio inviato correttamente!"
    //MESSAGE SEND
      
    else echo "Errore durante l'invio del messaggio e-mail"
      
    }


    ?>




    [url="index.htm"]Torna Indietro[/url]



     </BODY>

    </HTML>
    Non prenderlo per buono perchè manca ancora di alcune parti (le variabili di un post andrebbero recuperate con $_POST['nomevariabile'], bisognerebbe controllare bene tutti i campi e soprattutto evitare spamming se lasci quel modulo pubblico... Però magari funziona anche a te che usi (a quanto ho capito) IIS... poi a te le eventuali personalizzazioni
    Questa e' la mia firma! Lo so, e' una mezza schifezza.
    Un sito
    - skype non è per consulenze online -

  10. #10
    perdonami, mi sono spiegato proprio male.

    io uso winzozz, ma x sviluppo web mi appoggio su un server in banda, non sono in locale (anche se uso easyphp). Il server al quale mi appoggio ha linux, ma non so come mai non mi manda le mail...invece su un altro server dove ho un altro sito lo script funziona..
    boh...misteri della vita!!

    Discorso linux:
    mi sono comprato un pc su ebay apposta x cominciare a smanettare un po su linux, ma ho paura che sia troppo poco potente.
    Intel Pentium II
    400 MHz
    64 MB RAM
    4 GB HD
    Scheda audio, USB, CD-ROM

    Vorrei metter qualcosa su tipo apache e php (preso apposta) ma non saprei da dove iniziare..e sopratutto, come tutti i linux-niubbi, non saprei la distro da metter su... ho provato la slax live che i piace un sacco, e ho installato la mandriva sul mio pc(Athlon xp 2800+, 1 gb ram). Molto bello anche mandriva ma penso nn girerà mai sul pII....

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.