[PHP] echo meta

Cosina

Utente Attivo
27 Dic 2016
44
0
6
Buongiorno a tutti. Sto compilando il file php di un modulo di contatto in cui c'e` questa parte di codice:

PHP:
echo "<meta http-equiv=\"refresh\" content=\"2; url=./page.html\">";
Vorrei sapere a cosa si riferisce il numero 2 che si trova dopo la voce content (content=\"2)
Grazie mille per l'aiuto
 

Cosina

Utente Attivo
27 Dic 2016
44
0
6
Ciao Migo80 e grazie per la risposta. Ne approfitto anche per chiederti quando e perche` e` necessario impostare questa ricarica, dato che ho visto, in alcuni casi, il valore messo a 0. Grazie di nuovo
 

migo80

Utente Attivo
25 Apr 2013
224
3
18
Nei casi in cui in una pagina si hanno dei contenui che cambiano e quindi per mostrarli hai bisogno di farla aggiornare automaticamente.
Impostata a zero vuol dire che si aggiorna in continuazione senza un ritardo di tot secondi tra un agg. E l'altro.
 

Cosina

Utente Attivo
27 Dic 2016
44
0
6
Ok. Quindi, se, come nel mio caso, la pagina di arrivo ha contenuti fissi che non cambiano e non c'e` necessita` di ricaricarla, come devo impostare il codice?
 

migo80

Utente Attivo
25 Apr 2013
224
3
18
Basta eliminare questa parte
PHP:
echo "<meta http-equiv=\"refresh\" content=\"2; url=./page.html\">";
 

Cosina

Utente Attivo
27 Dic 2016
44
0
6
No, scusa, cambio risposta, perche` mi sa che non avevo capito. Nel mio caso, si tratta di portare il visitatore ad una pagina con un avviso, qualora un certo campo del form non venisse compilato correttamente. In questo caso con che criterio imposto il tempo di ricarica? Grazie
 

Cosina

Utente Attivo
27 Dic 2016
44
0
6
Il codice sarebbe questo. In pratica serve a non permettere l'inserimento di link nella textarea e voglio rimandare ad una pagina del sito in cui do alcune spiegazioni ai clienti.

Codice:
if(preg_match("/\b(?:(?:https?|ftp|http):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$_POST['message'])){
echo "<meta http-equiv=\"refresh\" content=\"2; url=./pag.html\">";
}
 
Ultima modifica:

Cosina

Utente Attivo
27 Dic 2016
44
0
6
Tra l'altro, vorrei anche chiederti se e` possibile utilizzare lo stesso codice per ottenere la stessa cosa negli altri campi del form. Adesso e` impostato per la textarea ['message'], posso aggiungere altre voci di seguito? E se si`, come le separo?
 

migo80

Utente Attivo
25 Apr 2013
224
3
18
Puoi farlo ma per un utente e' bruttissimo e vedere...hai pensato di usare Ajax per gestire il Form?
Comunque prova a sostituire l'echo con questo:
header( "refresh:5;url=pagina.php" );
exit;
 

migo80

Utente Attivo
25 Apr 2013
224
3
18
Se non vai di fretta nel tardo pomeriggio ti posto un esempio con Ajax ok?
Postami solo il tuo form
 

Cosina

Utente Attivo
27 Dic 2016
44
0
6
Va bene, grazie. Come faccio a postarti il form? Posso allegare delle cartelle compresse?
 

Cosina

Utente Attivo
27 Dic 2016
44
0
6
Ah, ok. Il codice html del form di base e` quello che segue. Vuoi anche il codice php?


HTML:
<!DOCTYPE html>

<html lang=it>

    <head>
        
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
        <meta name="viewport" content="width=device-width, initial-scale=1">

        <title>Modulo di contatto</title>

        <meta name="robots" content="noindex">   

    <link rel="stylesheet" type="text/css" href="./contact.css" />

    </head>
    
    <body>
    
    <div style="text align:center;">

    <form class="form-contact" action="contact.php" method="post" enctype="multipart/form-data">
        <p><span class="star">*</span> <span style="font-size:0.8em">Campi obbligatori</span></p>
        
        <p><label>Nome e cognome:<span class="star">*</span><br></label><input class="field" type="text" name="name" required /></p>
        
        <p><label>E-mail:<span class="star">*</span><br></label><input class="field" type="text" name="email" required /></p>
        
        <p><label>Conferma e-mail: <span class="star">*</span><br></label><input class="field" type="text" name="remail" autocomplete="off" required /></p>
        
        <p><label>Sito web:<br></label><input class="field" type="text" name="website" /></p>
        
        <p><label>Titolo:<span class="star">*</span><br></label><input class="field" type="text" name="title" required /></p>
        
        <p><label>Messaggio: <span class="star">*</span><br></label><textarea class="form-text" rows="15" cols="40" name="message" required ></textarea></p>
        
        <p style="padding: 0 12px">Cliccando sul pulsante di invio, dichiari di aver letto e di accettare le modalit&agrave; di trattamento dei tuoi dati personali come descritto nella <a style="color: #2C80FF" href="/doc/privacy" target="_blank">&quot;Privacy policy.&quot;</a>
        </p>
        
        <!-- filtro anti-spam -->
        <input type="text" id="fred" name="fred" style="visibility: hidden;"/>
        <!-- end filtro anti-spam -->

        <div class="button-container">
        <input class="button" type="reset" value="Reset">&nbsp;
        <input class="button" type="submit" value="Send">
        </div>
    </form>
    
    </div>

    </body>
</html>
 

Cosina

Utente Attivo
27 Dic 2016
44
0
6
Eccolo:

PHP:
<?php

//filtro anti-spam
if($_POST['fred'] != "") {
    echo('<p style="color: #8B2323; font-size: 16px; font-weight: bold;">Forse stai usando un browser testuale, oppure sei uno spammer. Questo non puoi inviarlo.<br>You may be using a text-only browser or you are a spambot. This has not been submitted</p>');   
}

//impostazioni email
else {
    if(isset($_POST['name'])) {

        $name = $_POST['name'];
        $email = $_POST['email'];
        $remail = $_POST['remail'];
        $website = $_POST['website'];
        $title = $_POST['title'];
        $formmessage = ($_POST['message']);
        $emailmessage = "Hai ricevuto una richiesta dal tuo modulo di contatto.

Name: $name
Email: $email
Confirm email: $remail
Website: $website
Title: $title
Message: $formmessage
        ";   

        $to = "mail@mail";   //cambia questo indirizzo con il tuo
        $subject = "Richiesta di contatto";  //oggetto email
        $headers = "From: $email";
        $confirm = "./thankyou";  //collegamento al file di conferma


            if(isset($name)) {
                mail($to,$subject,$emailmessage,$headers);


}

}

}

?>
    
    <?php if(isset($name)) {
    
    echo "<META HTTP-EQUIV=\"refresh\" content=\"0;URL=".$confirm."\">";
            exit;
    
    } ?>
 

migo80

Utente Attivo
25 Apr 2013
224
3
18
Allo ora ti posto il codice della pagina del form modificata ovviamente devi adattare il tuo css per questo div "<div id="esito_invio" class="esito_invio"></div>"

HTML:
<!DOCTYPE html>

<html lang=it>

    <head>
        
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
        <meta name="viewport" content="width=device-width, initial-scale=1">

        <title>Modulo di contatto</title>

        <meta name="robots" content="noindex">   

    <link rel="stylesheet" type="text/css" href="./contact.css" />
    
    <!-- Ho richiamato la libreria Jquery da un file esterno-->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    
    </head>
    
    <body>
    <!-- aggiunto questo div-->
    <div id="esito_invio" class="esito_invio">
    <!-- quì verrà mstrato il messaggio di risposta dopo il click sul pulsante invio del form -->
    </div>
    
    <div style="text align:center;">

    <form id="frm_contact" class="form-contact" method="post">
        <p><span class="star">*</span> <span style="font-size:0.8em">Campi obbligatori</span></p>
        
        <p><label>Nome e cognome:<span class="star">*</span><br></label><input class="field required_input" type="text" name="name" /></p>
        
        <p><label>E-mail:<span class="star">*</span><br></label><input class="field required_input" type="text" name="email" /></p>
        
        <p><label>Conferma e-mail: <span class="star">*</span><br></label><input class="field required_input" type="text" name="remail" autocomplete="off" /></p>
        
        <p><label>Sito web:<br></label><input class="field required_input" type="text" name="website" /></p>
        
        <p><label>Titolo:<span class="star">*</span><br></label><input class="field required_input" type="text" name="title" /></p>
        
        <p><label>Messaggio: <span class="star">*</span><br></label><textarea class="form-text required_input" rows="15" cols="40" name="message"  ></textarea></p>
        
        <p style="padding: 0 12px">Cliccando sul pulsante di invio, dichiari di aver letto e di accettare le modalit&agrave; di trattamento dei tuoi dati personali come descritto nella <a style="color: #2C80FF" href="/doc/privacy" target="_blank">&quot;Privacy policy.&quot;</a>
        </p>
        
        <!-- filtro anti-spam -->
        <input type="text" id="fred" name="fred" style="visibility: hidden;"/>
        <!-- end filtro anti-spam -->

        <div class="button-container">
        <input class="button" type="reset" value="Reset">&nbsp;
        <input id="send" class="button" type="submit" value="Send">
        </div>
    </form>
    
    </div>
    <!-- aggiunto instruzione javascript e funzione ajax per invio form contatto -->
<script>
    $(document).ready(function() {
        $("#send").click(function(e) {
         e.preventDefault(); // inibisce il normale funzionamento del tasto submit del form
        
         var inputs = $('input'); // intercetta tutti gli input del form e controlla se sono vuoti
        var isError = false;
        for (var i = 0; i < inputs.length; i++) {
            var input = inputs[i];
            if ($(input).hasClass('required_input') && !validateRequired($(input).val())) {
                isError = true;
            }
        }
        if (isError === true) {
                alert("ATTENZIONE!\nCi sono dei campi vuoti");
        }
        if (isError === false) {
            
        var dati = $("#frm_contact").serialize(); //recupera tutti i valori del form automaticamente
        
            $.ajax({
            type: "post",
            url: "contact.php",
            data: dati,
            dataType: "html",
            success: function(msg)
            {
            $("#esito_invio").html(msg); // riempe in div esito_invio con gli echo della pagina contact.php

            },
            error: function()
            {
            alert("errore");
            }
        });
        }
        
    });
    });
    
    function validateRequired(value) {
    if (value == "") return false;
    return true;
}
</script>
    </body>
</html>

Questo è il codice della pagina contact.php

PHP:
<?php


//filtro anti-spam
if($_POST['fred'] != "") {
    echo('<p style="color: #8B2323; font-size: 16px; font-weight: bold;">Forse stai usando un browser testuale, oppure sei uno spammer. Questo non puoi inviarlo.<br>You may be using a text-only browser or you are a spambot. This has not been submitted</p>');   
    exit;
}elseif(isset($_POST['name'])){
//impostazioni email
        $name = $_POST['name'];
        $email = $_POST['email'];
        $remail = $_POST['remail'];
        $website = $_POST['website'];
        $title = $_POST['title'];
        $formmessage = $_POST['message'];
        
if(preg_match("/\b(?:(?:https?|ftp|http):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i", $formmessage)){
        echo "<h3>Non puoi inserire un indirizzo web</h3>";
        exit;
}else{
        
        if($name !="" && $email !="" && $remail !="" && $website !="" && $title !="" && $formmessage !=""){
        
        $emailmessage = "
                        Hai ricevuto una richiesta dal tuo modulo di contatto.

                        Name: $name
                        Email: $email
                        Confirm email: $remail
                        Website: $website
                        Title: $title
                        Message: $formmessage
        ";   

            $to = "mail@mail";   //cambia questo indirizzo con il tuo
            $subject = "Richiesta di contatto";  //oggetto email
            $headers = "From: $email";
            $confirm = "./thankyou";  //collegamento al file di conferma

          
                mail($to,$subject,$emailmessage,$headers);
    

        echo"<h3>La tua richiesta di contatto è stata inviata.</h3>";
        
    }else{
        echo "<h3>Controlla di aver compilato tutti i campi del form!</h3> ";
    }
        
}
}

?>
 
  • Like
Reactions: Cosina

Cosina

Utente Attivo
27 Dic 2016
44
0
6
Grazie Migo80, sei stato davvero gentilissimo. Oggi ci lavoro. Ciao e buona giornata