Visualizzazione dei risultati da 1 a 9 su 9

Discussione: da location a alert

  1. #1

    da location a alert

    Ciao a tutti sono nuovo del forum.
    Sto inserendo un form mail php in un sito web, ma di php non ne so molto, l'ho trovato in giro per il web. E' una semplice pagina inviamail.php dove vorrei(se possibile) cambiare la location, cioè quando fa il controllo della mail o del nome, se sbagliato non deve aprire un'altra pagina ma darmi un alert javascript tipo "email mancante ecc ecc", e quando invece è tutto giusto un messaggio alert con "grazie"
    Vi posto il codice per intero così sicuramente saprete dirmi dove intervenire:


    <?php
    $email=$_POST['email'];

    #######################################
    # IMPOSTAZIONI DA CONFIGURARE #
    #######################################

    //(1) indirizzo email del destinatario del modulo
    $destinatario = "tuamail@tuosito.com";

    //(2) indirizzo email del mittente, campo FROM
    // non toccare se desiderate che l'indirizzo email inserito nel modulo sia
    // riportato nel campo DA del messaggio che sarà ricevuto.
    // Se invece desiderate un campo fisso annullare la prima riga e abilitare
    // la seconda inserendo la dicitura desiderata (per annullare mettere //
    // all'inizio della prima riga e per abilitare togliere // dalla seconda riga)
    $nome_mittente = "$email";
    // $nome_mittente = "Dal Modulo";

    //(3) oggetto del messaggio
    $oggetto_email = "Modulo inviato dal sito ....";

    //(4) se si vogliono rendere tutti i campi NON OBBLIGATORI impostare su "y".
    // (valori possibili: "y" e "n")
    $all_free = "n";

    //(5) se avete messo "n" al punto (4) inserire tra virgolette, separati
    // da virgola, i nomi dei campi da rendere OBBLIGATORI
    // Esempio: $campi_req = array("nome","telefono","via");
    $campi_req = array("nome","email");

    //(6) controllo validità del campo email. (valori possibili: "y" e "n")
    $obbligo_email = "y";

    //(7) obbligare l'utente ad accettare le condizioni.
    // (valori possibili: "y" e "n")
    $accetta_condizioni = "n";

    //(8) URL della pagina di ringraziamento
    $pagina_grazie = "http://www.tuo_sito.tld/grazie.htm";

    //(9) URL della pagina errore campi vuoti
    $pagina_error_empty = "http://www.tuo_sito.tld/errore_campi_vuoti.htm";

    //(10) URL della pagina errore email
    $pagina_error_email = "http://www.tuo_sito.tld/errore_email.htm";

    //(11) URL della pagina errore condizioni non accettate
    $pagina_error_condizioni = "http://www.tuo_sito.tld/errore_condizioni.htm";

    //(12) URL della pagina errore invio non autorizzato (mancanza di referer)
    $pagina_error_referer = "http://www.tuo_sito.tld/errore_referer.htm";

    #######################################
    # FINE IMPOSTAZIONI DA CONFIGURARE #
    #######################################

    //ora e data
    $ora = date ("H:i:s");
    $data = date ("d/m/Y");

    //intestazione email che arriva al destinatario
    $corpo = "
    Modulo inviato il $data alle ore $ora
    Riepilogo dati:\n\n";

    //============== NON TOCCARE NULLA OLTRE QUESTA RIGA ==================\


    ########### CODICI ###########

    //variabili per rendere lo script compatibile anche con la versione PHP 4.2 e maggiori
    if(!isset($_SERVER) OR !$_SERVER OR !is_array($_SERVER) OR count(array_diff($_SERVER, $HTTP_SERVER_VARS))){
    $_POST = &$HTTP_POST_VARS;
    }

    //prende IP ADDRESS
    if(isset($_SERVER["HTTP_X_FORWARDED_FOR"])){

    if ($_SERVER["HTTP_X_FORWARDED_FOR"] == "") {

    $ipnumb = getenv("REMOTE_ADDR");

    }else {

    $ipnumb = getenv("HTTP_X_FORWARDED_FOR");

    }

    } else {

    $ipnumb = getenv("REMOTE_ADDR");
    }
    ###################################

    //controllo referer
    if(empty($_SERVER["HTTP_REFERER"])){

    header ("Location: $pagina_error_referer");
    exit();

    }

    ########### CONTROLLO DEI CAMPI ###########
    $control_campi = 0;

    if($all_free != "y"){

    foreach($_POST as $key => $valore){

    if(in_array($key,$campi_req)){

    if(trim($valore) == ""){

    $control_campi++;

    }

    }

    }

    } else {

    $control_campi = 0;

    }

    ########### CONTROLLO EMAIL ###########
    $control_email = 0;

    if($obbligo_email == "y"){

    if(isset($_POST['email'])){

    if(!eregi("^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9_-])+.)+[a-z]{2,6}$", $_POST['email'])){

    $control_email++;

    }

    } else {

    $control_email = 0;

    }

    }

    ########### CONTROLLO CONDIZIONI ###########
    $control_condizioni = 0;

    if($accetta_condizioni == "y"){

    if(isset($_POST['trattamento_dati']) && $_POST['trattamento_dati'] == "accetto"){

    $control_condizioni = 0;

    } else {

    $control_condizioni ++;

    }

    }

    ########### INVIO EMAIL ###########
    if($control_campi == 0){

    if($control_email == 0){

    if($control_condizioni == 0){

    foreach($_POST as $key => $valore){

    $key = ucfirst(stripslashes(trim($key)));
    $valore = stripslashes(trim($valore));
    $key = str_replace("_"," ",$key);

    if(trim($valore) == "") $valore = "Non compilato";

    $corpo .= $key .": ". $valore ."\n\n";

    }

    $corpo .= "Numero IP: $ipnumb"."\n";

    $corpo .= "_________________________________________________ ___________ \n\n

    ";


    // invio e-mail
    // Header Mail
    $headmail.="From: $nome_mittente <$nome_mittente>\n";
    $headmail.="Return-Path: $nome_mittente\n";
    $headmail.="User-Agent: Php Mail Function\n";
    $headmail.="X-Accept-Language: en-us, en\n";
    $headmail.="MIME-Version: 1.0\n";
    $headmail.="X-Priority: 1 (Highest)\n";
    $headmail.="Content-Type: text/plain; charset=ISO-8859-1; format=flowed\n";
    $headmail.="Content-Transfer-Encoding: 7bit\n";

    ini_set('sendmail_from', "$destinatario");
    mail("$destinatario", "$oggetto_email", "$corpo", "$headmail");

    header ("Location: $pagina_grazie");

    } else {

    header ("Location: $pagina_error_condizioni");

    }

    } else {

    header ("Location: $pagina_error_email");

    }

    } else {


    header ("Location: $pagina_error_empty");

    }

    ?>

    Grazie!!!

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    142
    Codice PHP:
    header ("Location: $pagina_grazie"); } else { header ("Location: $pagina_error_condizioni"); } } else { header ("Location:$pagina_error_condizioni"); } } else { header ("Location: $pagina_error_empty"); 
    queste veriabili stabiliscono dove reindirizzare l'utente al momento dell'invio del modulo .

    se è tutto giusto lo manda a: $pagina_grazie
    se no a:
    $pagina_error_condizioni

    oppure
    $pagina_error_empty

    io all'inizio della tu pagina per la compilazione del form inserirei la lettura di una variabile passata in get del tipo

    Codice PHP:

    <?php if(isset($_GET['messaggio'])){

    //$_GET['messaggio'] conterrà un valore in base a se ho fatto giusto o se ho sbagliato qualcosa

        
    if($_GET['messaggio']=="campivuoti"){  //se il valore è ad esempio la stringa campi vuoti  la pagina darà un messaggio di allerta in javascript dicendo di controllare i campi
            
    echo "
            <script type=\"text/javascript\" language=\"javascript\">
            function loadalert () 
            {alert(\"Messaggio non inviato, controlla di aver compilato tutti i campi necessari\")

    }

    // --End Hiding Here -->

    </script>

    <body onLoad=\"loadalert()\">
    "
    ;
        }
    }

    ?>
    Il punto è che tutto funziona se al posto di usare una pagina diversa per ogni tipo di errore usi semplicemente la stessa pagina del form della mail passando in get una stringa diversa

    es :

    Codice PHP:

    $pagina_grazie
    ="http://www.tuosito.it/mail.php?messaggio=grazie";

    $pagina_error_condizioni="http://www.tuosito.it/mail.php?messaggio=campivuoti"
    Morale
    io finito lo script di invio della mail richiamo la pagina stessa
    e passo un valore in get che la pagina usa per capire se è andato tutto a buon fine e nel caso avvisa il visitatore

  3. #3
    Grazie mille per la risposta, ho provato con i campi vuoti funziona tutto..
    Ora,scusa se ti rubo altro tempo, per inserire il messaggio grazie e quello per accettare le condizioni della privacy, devo riscrivere lo stesso script altre 2 volte sostituendo campivuoti con "grazie" e "accetta le condizioni" e metterlo sotto alla chiusura </script>, oppure riscrivere if(isset{&_GET('MESSAGGIO' ECC ECC?

    tipo così:

    if($_GET['messaggio']=="grazie"){ //se il valore è ad esempio la stringa campi vuoti la pagina darà un messaggio di allerta in javascript dicendo di controllare i campi
    echo "
    <script type=\"text/javascript\" language=\"javascript\">
    function loadalert ()
    {alert(\"Messaggio inviato,grazie per averci contattato\")

    }

    // --End Hiding Here -->

    </script>
    if($_GET['messaggio']=="condizioni"){ //se il valore è ad esempio la stringa campi vuoti la pagina darà un messaggio di allerta in javascript dicendo di controllare i campi
    echo "
    <script type=\"text/javascript\" language=\"javascript\">
    function loadalert ()
    {alert(\"Accetta le condizioni della privacy ecc ecc\")

    }

    // --End Hiding Here -->

    </script>

    Grazie ancora...

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    142
    Si ^^ esatto

    alla fine dovrest ottenere un risultato simile al mio

    http://www.cartapietra.it/contatti.php

    Se vedi cliccando sul link apro il modulino per l'invio , e se provi ad inviarlo sbagliato restituisco un errore.


    Non solo, facendo così puoi anche dire alla pagina di colorare o inserire alcune scritte in rosso ad esempio per evidenziare i campi , sempre facendo quel controllo.

    ricordati che nella configurazione php devi dire cosa passare in get nel messaggio in modo da distinguere i vari errori

  5. #5
    si ho visto le scritte in rosso che indicano i campi da inviare... bello così...ma diventa complicato...sono alle prime armi con php e non vorrei combinare casini
    mi restituisce errore se creo la pagina così, non so che punteggiatura va messa tra i vari script...:

    <?php if(isset($_GET['messaggio'])){

    //$_GET['messaggio'] conterrà un valore in base a se ho fatto giusto o se ho sbagliato qualcosa

    if($_GET['messaggio']=="campivuoti"){ //se il valore è ad esempio la stringa campi vuoti la pagina darà un messaggio di allerta in javascript dicendo di controllare i campi
    echo "
    <script type=\"text/javascript\" language=\"javascript\">
    function loadalert ()
    {alert(\"Messaggio non inviato, controlla di aver compilato tutti i campi necessari\")


    // --End Hiding Here -->


    if($_GET['messaggio']=="grazie"){ //se il valore è ad esempio la stringa campi vuoti la pagina darà un messaggio di allerta in javascript dicendo di controllare i campi
    echo "
    <script type=\"text/javascript\" language=\"javascript\">
    function loadalert ()
    {alert(\"Messaggio inviato,grazie per averci contattato riceverai una risposta nel più breve tempo possibile\")

    }

    // --End Hiding Here -->

    if($_GET['messaggio']=="condizioni"){ //se il valore è ad esempio la stringa campi vuoti la pagina darà un messaggio di allerta in javascript dicendo di controllare i campi
    echo "
    <script type=\"text/javascript\" language=\"javascript\">
    function loadalert ()
    {alert(\"Accetta le condizioni della privacy ecc ecc\")

    }


    }

    // --End Hiding Here -->


    </script>

    <body onLoad=\"loadalert()\">
    ";
    }
    }

    ?>

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    142
    dopo ogni

    // --End Hiding Here -->

    mancherebbe


    se no non chiudi gli echo
    Codice PHP:
    </script> 
    <body onLoad=\"loadalert()\"> "; 

    prova e dimmi al limite correggiamo ^^

  7. #7
    Non mi restituisce più nessun alert...nella barra degli indirizzi vedo php?messaggio=grazie o php?messaggio=campivuoti ma niente avvisi

    la pagina è così adesso:


    <?php if(isset($_GET['messaggio'])){

    //$_GET['messaggio'] conterrà un valore in base a se ho fatto giusto o se ho sbagliato qualcosa

    if($_GET['messaggio']=="campivuoti"){ //se il valore è ad esempio la stringa campi vuoti la pagina darà un messaggio di allerta in javascript dicendo di controllare i campi
    echo "
    <script type=\"text/javascript\" language=\"javascript\">
    function loadalert ()
    {alert(\"Messaggio non inviato, controlla di aver compilato tutti i campi necessari\")


    // --End Hiding Here -->

    </script>
    <body onLoad=\"loadalert()\"> ";
    }

    if($_GET['messaggio']=="grazie"){ //se il valore è ad esempio la stringa campi vuoti la pagina darà un messaggio di allerta in javascript dicendo di controllare i campi
    echo "
    <script type=\"text/javascript\" language=\"javascript\">
    function loadalert ()
    {alert(\"Messaggio inviato,grazie per averci contattato riceverai una risposta nel più breve tempo possibile\")


    // --End Hiding Here -->
    </script>

    <body onLoad=\"loadalert()\"> ";
    }

    if($_GET['messaggio']=="condizioni"){ //se il valore è ad esempio la stringa campi vuoti la pagina darà un messaggio di allerta in javascript dicendo di controllare i campi
    echo "
    <script type=\"text/javascript\" language=\"javascript\">
    function loadalert ()
    {alert(\"Accetta le condizioni della privacy ecc ecc\")

    }


    }

    // --End Hiding Here -->


    </script>

    <body onLoad=\"loadalert()\">
    ";
    }
    }

    ?>

  8. #8
    Smanettando un pò sono riuscito a risolvere...grazie ancora per la disponibilità...

    la sintassi giusta è questa:


    <?php if(isset($_GET['messaggio'])){

    //$_GET['messaggio'] conterrà un valore in base a se ho fatto giusto o se ho sbagliato qualcosa

    if($_GET['messaggio']=="campivuoti"){ //se il valore è ad esempio la stringa campi vuoti la pagina darà un messaggio di allerta in javascript dicendo di controllare i campi
    echo "
    <script type=\"text/javascript\" language=\"javascript\">
    function loadalert ()
    {alert(\"Messaggio non inviato, controlla di aver compilato tutti i campi necessari\")

    }

    // --End Hiding Here -->

    </script>

    <body onLoad=\"loadalert()\">


    ";

    }
    }

    if($_GET['messaggio']=="erroremail"){ //se il valore è ad esempio la stringa campi vuoti la pagina darà un messaggio di allerta in javascript dicendo di controllare i campi
    echo "
    <script type=\"text/javascript\" language=\"javascript\">
    function loadalert ()
    {alert(\"Messaggio non inviato, inserisci un indirizzo email valido!\")

    }

    // --End Hiding Here -->

    </script>

    <body onLoad=\"loadalert()\">


    ";

    }

    if($_GET['messaggio']=="condizioni"){ //se il valore è ad esempio la stringa campi vuoti la pagina darà un messaggio di allerta in javascript dicendo di controllare i campi
    echo "
    <script type=\"text/javascript\" language=\"javascript\">
    function loadalert ()
    {alert(\"Messaggio non inviato,accetta le condizioni della privacy!\")

    }

    // --End Hiding Here -->

    </script>

    <body onLoad=\"loadalert()\">


    ";

    }



    if($_GET['messaggio']=="grazie"){ //se il valore è ad esempio la stringa campi vuoti la pagina darà un messaggio di allerta in javascript dicendo di controllare i campi
    echo "
    <script type=\"text/javascript\" language=\"javascript\">
    function loadalert ()
    {alert(\"Grazie per averci contattato, riceverai una risposta nel più breve tempo possibile\")

    }

    // --End Hiding Here -->

    </script>

    <body onLoad=\"loadalert()\">


    ";

    }

    ?>

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    142
    sorry
    ieri sera mentre controllavo la sintassi un mio collega ha fatto saltare tutti i pc degli uffici server compresi ...

    contento che tu abbia risolto ^^

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.