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

Discussione: form

  1. #1

    form

    Volevo sapere come fare a mostrare gli errori nei campi del form generati attraverso la validazione del file php.
    Il tutto deve avvenire senza che si veda il file esterno php.
    Viringrazio anticipatamente per il tuo aiuto

  2. #2
    i campi di testo hanno l'attributo value...
    Nel momento in cui c'e' l'errore fai in modo che php inizializzi una variabile di errore tipo

    Codice PHP:
    $errore "Compila questo campo"
    poi tranquillamente nel form, e particolarmente nel campo di testo che desideri, scrivi così :

    Codice PHP:
    <input type="text" name="campo_testo" value="<?php echo $errore?>">

  3. #3
    Grazie per la risposta ma non ho capito bene cosa fare.... invio codice file php...
    come dovrei inizializzare le variabili $errori?

    <?php
    isset($_POST['nome'])? $nome = $_POST['nome'] : $nome = "";
    isset($_POST['cognome'])? $cognome = $_POST['cognome'] : $cognome = "";
    isset($_POST['indirizzo'])? $indirizzo = $_POST['indirizzo'] : $indirizzo = "";
    isset($_POST['anno'])? $anno= $_POST['anno'] : $anno = "";
    isset($_POST['mail'])? $mail= $_POST['mail'] : $mail = "";
    isset($_POST['curriculum'])? $curriculum= $_POST['curriculum'] : $curriculum = "";
    isset($_POST['trattamento_dati'])? $trattamento_dati= $_POST['trattamento_dati'] : $trattamento_dati = "";

    // Validation
    if (strlen($nome)>0)
    $nome = filter_var($nome, FILTER_SANITIZE_STRING);
    if ($nome == "")
    echo ("<p align='center'><font face='Arial' size='2' color='#FF0000'>Inserire Nome</font></p>");

    if (strlen($cognome)>0)
    $cognome = filter_var($cognome, FILTER_SANITIZE_STRING);
    if ($cognome == "")
    echo("<p align='center'><font face='Arial' size='2' color='#FF0000'>Inserire Cognome</font></p>");

    if (strlen($indirizzo)>0)
    $nome = filter_var($indirizzo, FILTER_SANITIZE_STRING);
    if ($indirizzo== "")
    echo("<p align='center'><font face='Arial' size='2' color='#FF0000'>Inserire indirizzo</font></p>");

    if (strlen ($anno)>0)
    {
    $anno = filter_var($anno, FILTER_SANITIZE_STRING);
    if (!filter_var($anno, FILTER_VALIDATE_INT))
    echo("<p align='center'><font face='Arial' size='2' color='#FF0000'>Inserire Data di nascita valida</font></p>");
    }
    if ($anno == "")
    echo("<p align='center'><font face='Arial' size='2' color='#FF0000'>Inserire Data di nascita</font></p>");

    if (strlen($mail)>0)
    {
    $mail = filter_var($mail, FILTER_SANITIZE_EMAIL);
    if (!filter_var($mail, FILTER_VALIDATE_EMAIL))
    echo("<p align='center'><font face='Arial' size='2' color='#FF0000'>Inserire un indirizzo mail valido</font></p>");
    }
    if ($mail == "")
    echo("<p align='center'><font face='Arial' size='2' color='#FF0000'>Inserire un indirizzo mail</font></p>");

    // VERIFICA DI COMPATIBILITA CON I FORMATI SUPPORTATI
    $allowed_types = array("application/msword","application/pdf","application/plain");
    if(!in_array($_FILES["curriculum"]["type"],$allowed_types)) {

    die("Inserire curriculum, sono ammessi solo i seguenti formati: .doc .txt .pdf");
    }

    //trttamento dati
    if ( strcasecmp($trattamento_dati,"Accetto") != 0 && strcasecmp($trattamento_dati,"Non Accetto") != 0 )
    {
    echo ("<p align='center'><font face='Arial' size='2' color='#FF0000'>Leggere Privacy</font></p>");
    }

    if (strlen($trattamento_dati) == 0 )
    {
    echo ("<p align='center'><font face='Arial' size='2' color='#FF0000'>Leggere Privacy</font></p>");
    }

    require_once("class.phpmailer.php");
    //require_once("class.smtp.php");

    $mail = new PHPMailer();

    $mail->From = "gionathan@email.it"; // from mail
    $mail->FromName = "nome"; // from name
    $mail->SMTPDebug = 1;
    $mail->IsHTML(true);
    $mail->host = "smtp.aruba.it ";
    $mail->isSMTP();
    $mail->Timeout= 30;
    $mail->SMTPAuth = true;
    $mail->Port = 25;
    $mail->Username = "info@residenzaifaggi.it";
    $mail->Password = "promoservice1518";

    // con AddAddress aggiungi tutti gli indirizzi a cui lo vuoi inviare
    $mail->AddAddress("gionathan@email.it", "Nome");
    $mail->Subject = "curriculum";
    $mail->Body = "nome"; // qui metti il tuo testo

    /*
    AGGIUNGIAMO L'ALLEGATO:
    devi passare il file selezionato quindi usi l'array globale
    $_FILES passandogli come chiave il nome del tuo campo di upload
    [se noti in form io l'ho chiamato file],
    e poi il nome del file, lasciando la chiave a name
    */
    $attach = $_FILES["curriculum"]["tmp_name"];
    $file_name = $_FILES["curriculum"]["name"];
    $mail->AddAttachment($attach, $name = $file_name, $encoding = "base64", $type = "application/octet-stream");

    if(!$mail->Send()) {
    echo "Message was not sent.";
    echo "Mailer error: " . $mail->ErrorInfo;
    } else {
    echo "Message has been sent.";
    }
    //chiudiamo la connessione
    //$mail->SmtpClose();
    //unset($mail);}

    ?>

  4. #4
    Codice PHP:
    if ($nome == "")
    echo (
    "<p align='center'><font face='Arial' size='2' color='#FF0000'>Inserire Nome</font></p>"); 
    ecco anziche' fare una echo qui... inizializza una variabile con l'errore sul nome in questo modo :

    Codice PHP:
    if ($nome == "")
    $errore_nome "<p align='center'><font face='Arial' size='2' color='#FF0000'>Inserire Nome</font></p>"
    e di conseguenza scriverai :

    Codice PHP:
    <input type="text" name="nome" value="<?php echo $errore_nome?>">
    In questo modo, andando nell'if relativa all'errore sul nome, il campo di testo nome verrà valorizzato con la variabile errore.... e cosi' via

    ------

    chiaramente se sei sempre nella stessa pagina. se lavori su due pagine devi trasportare la variabili dalla seconda alla prima pagina

  5. #5
    Grazie per la sollecita risposta.....io ho due pagine mi dai ancora un input quando dici devi trasportare la variabili dalla seconda alla prima pagina?

    grazie ancora

  6. #6
    Allora, succede questo :

    Nella prima pagina hai la form, l'utente la compila e, premendo invio, va alla seconda pagina dove presumo fai dei controlli, giusto?!

    In base all'esito dei controlli, farai una header alla pagina precedente portando la variabile errore sul campo stabilito...

    es. l'utente non compila il campo nome, nella seconda pagina, sarai nella condizione (nome = vuoto), all'interno di questa condizione fai una header in questo modo:

    Codice PHP:
    header("Location: pagina_con_form.php?error_type=errore_nome"); 
    In questo modo avrai nella prima pagina una variabile di tipo GET che dovrai recuperare e stampare con una echo nel campo di testo che ti interessa come ti ho descritto precedentemente.

  7. #7
    Grazie ancora per l'aiuto
    Non capisco come mai mettendo value="<?php echo $errore_nome; ?>" mi appare sempre nel form ...non c'è la possibilità di nasconderlo?

    grazie

  8. #8
    Ma tu non volevi mostrare gli errori all'interno dei campi del form?
    Comunque se non vuoi mostrarli lì basta spostare la echo al di fuori dell'attributo value...

    scrivi <?php echo $errore_nome; ?> dove vuoi che si veda l'errore....

  9. #9
    Ho inserito il codice.....ma ricevo nel form l'errore

    Notice: Undefined variable: errore_nome


    Grazie ancora per il tuo prezioso aiuto

  10. #10
    Codice PHP:
    header("Location: pagina_con_form.php?error_type=errore_nome"); 
    Questo codice ti spedisce alla pagina con la form e porta la variabile error_type come variabile GET...Tu la recuperi questa variabile? Se non la recuperi, è chiaro che non sarà definita...

    per recuperala fai così (nella pagina dove hai la form):

    Codice PHP:
    $errore_nome $_GET['error_type'];
    if(isset(
    $errore_nome)){
    echo 
    "Il nome non è stato compilato";

    E via via per gli altri campi...

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.