• User

    Come inserire un form contatti?

    Ciao Ragazzi!
    Sto sviluppando un tema wordpress per conto mio, ho quasi finito e non mi aspettavo di inciampare proprio sul form dei contatti.
    Ho provato con vari plugin (contat form 7, fast secure contact form) ma senza risolvere.

    Se inserisco la stringa dall'edit page dell'amministrazione funziona solo se cambio tema, se uso il mio non appare nulla.
    A cosa può essere dovuto? Ci dev'essere qualche errore, forse legato anche a questo: prima se cliccavo su una pagina statica mi visualizzava il contenuto di loop-index.php, richiamato sulla index con get_template_part(..).
    Ora ho risolto quello strano comportamento creando page.php con il div content vuoto.

    Per il form ho creato un template personalizzato collegando il file contatti.php alla pagina che mi interessava, ma non riesco ad andare avanti.
    Dove potrebbe essere l'errore?
    L'alternativa potrebbe essere creare un modulo senza plugin, se avete qualche tutorial da consigliarmi ve ne sarei grato..anche perchè ne ho provati parecchi per ora senza risultati! :bho:

    Scusate se sono stato lungo, spero di aver chiarito un pochino la situazione! 🙂


  • User Attivo

    Ciao Lord Casco,
    in effetti l'uso del plugin per un form contatti secondo me non vale la pena.
    Il problema è che il codice del plugin verrebbe caricato in ogni pagina, appesantendo un po' il codice. Credo esista un secondo plugin che consente di caricare gli altri plugin solo quando necessari ma trovo la soluzione un po' contorta.
    Meglio quindi un semplice form gestito da due pagine, il form html appunto e lo script php.
    Non conosco in realtà dei buoni tutorial, però posso postarti il codice di uno e, se hai dei dubbi, puoi chiedere spiegazioni.
    Ovviamente puoi cambiare i campi "nome", "password", ecc, semplicemente sostituendo i valori. Inoltre bada tu alla formattazione perché essendo una prova, non ho curato il css.

    MODULO

    [php]<?php
    session_start();
    if ($_SESSION['sessione'] == "si") {}
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Form</title>
    </head>

    <body style="background-color:#69F">
    <center><h1>Form</h1></center>
    <pre style="text-align:center;font-size:26px;">
    <form action="modulo.php" method="post" name="modulo">

    Nome <input name="nome" id="nome" type="text" value="<?php if(isset($_SESSION['nome']) && (!empty($_SESSION['nome']))) echo $_SESSION['nome']; ?>"/><br />
    <?php if(isset($_SESSION['nome']) && empty($_SESSION['nome'])) echo "Non hai inserito il campo NOME<br />"; ?>
    Cognome <input name="cognome" id="cognome" type="text" value="<?php if(isset($_SESSION['cognome']) && !empty($_SESSION['cognome'])) echo $_SESSION['cognome']; ?>" /><br />
    <?php if(isset($_SESSION['cognome']) && empty($_SESSION['cognome'])) echo "Non hai inserito il campo COGNOME<br />"; ?>
    Nickname <input name="nick" id="nick" type="text" /><br />
    Password <input name="password" id="password" type="password" /><br />
    Password 2 <input name="password2" id="password2" type="password" /><br />
    Email <input name="mail" id="mail" type="text" /><br />
    Messaggio <textarea name="messaggio" id="messaggio" cols="15" rows="5"></textarea><br />
    <input name="bottone" type="submit" value="Iscriviti" />
    </form>
    </pre>
    </body>
    </html>[/php]

    SCRIPT

    [php]<?php
    session_start();
    ?>

    <?php

    /* if(!(isset($_POST['nome']) && isset($_POST['cognome']) && isset($_POST['nick']) && isset($_POST['password']) && isset($_POST['password2']) && isset($_POST['email']) && isset($_POST['messaggio']))) {
    header('Location: form.php');
    } */

    if(!isset($_POST)) {
    header('Location: form.php');
    }

    $_SESSION['sessione'] = "si";

    if(empty($_POST['nome'])) {
    $_SESSION['nome'] = $_POST['nome'];
    $_SESSION['cognome'] = $_POST['cognome'];
    header('Location: form.php');
    }
    if(empty($_POST['cognome'])) {
    $_SESSION['nome'] = $_POST['nome'];
    $_SESSION['cognome'] = $_POST['cognome'];
    header('Location: form.php');
    }
    if(empty($_POST['nick'])) {
    $_SESSION['nome'] = $_POST['nome'];
    $_SESSION['cognome'] = $_POST['cognome'];
    header('Location: form.php');
    }
    if(empty($_POST['password'])) {
    $_SESSION['nome'] = $_POST['nome'];
    $_SESSION['cognome'] = $_POST['cognome'];
    header('Location: form.php');
    }
    if(empty($_POST['password2'])) {
    $_SESSION['nome'] = $_POST['nome'];
    $_SESSION['cognome'] = $_POST['cognome'];
    header('Location: form.php');
    }
    if(empty($_POST['mail'])) {
    $_SESSION['nome'] = $_POST['nome'];
    $_SESSION['cognome'] = $_POST['cognome'];
    header('Location: form.php');
    }
    if(empty($_POST['messaggio'])) {
    $_SESSION['nome'] = $_POST['nome'];
    $_SESSION['cognome'] = $_POST['cognome'];
    header('Location: form.php');
    }

    if($_POST['password'] != $_POST['password2']) {
    header('Location: form.php');
    }

    if(!((strlen($_POST['password']) >= 😎 && (strlen($_POST['password']) <= 16))) {
    header('Location: form.php');
    }

    $nome = strip_tags(ucfirst(strtolower(trim($_POST['nome']))));

    $cognome = strip_tags(ucfirst(strtolower(trim($_POST['cognome']))));

    $nick = strip_tags(trim($_POST['nick']));

    $password = strip_tags(trim($_POST['password']));

    $password2 = strip_tags(trim($_POST['password2']));

    $email = strip_tags(trim($_POST['mail']));

    $messaggio = strip_tags(nl2br(trim($_POST['messaggio'])), '<h1></h1>');

    echo "<h1>MESSAGGIO INVIATO</h1>";

    echo "Nome: $nome<br />";
    echo "Cognome: $cognome<br />";
    echo "Email: $email<br />";
    echo "Messaggio: $messaggio";

    ?>[/php]