Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [ Validazione form ] ..in caso di tanti campi vuoti: meglio if/elseif oppure switch?

    Ciao a tutti,

    mi farebbe piacere rivecere un parere da voi tutti. Ho una pagina web con un form con diversi campi da compilare (Nome, Cognome, Telefono, ecc.).

    Attualmente utilizzo una (a mio parere lunga) serie di if/elseif per controllare se i campi rimangono vuoti.

    Esempio:

    Codice PHP:
    <?php

    if ($nome == "") {

     echo (
    "Nome vuoto");

    } elseif (
    $cognome == "") {

     echo (
    "Cognome vuoto");

    } elseif .. 
    // E così via per gli altri campi..

    ?>

    Secondo voi è meglio utilizzare uno switch oppure andrebbe bene questo metodo?

    Faccio questa domanda perchè la pagina in questione attualmente pesa 19Kb ed è destinata a salire di peso. Considerate che tutto lo script (generale) di controllo/validazione è implementato nella pagina stessa: quindi il form non ha un 'action="" ' , bensì fa tutto sulla stessa pagina.

    Il motivo? Perchè se l'utente sbaglia, operando sulla stessa pagina, lo script php fa apparire una modale con jQuery con l'avviso legato all'errore commesso (Esempio: "Nome vuoto!" oppure "Cognome vuoto!")...cosa che non saprei fare se i dati fossero processati nell'action, e quindi in una pagina a parte..

    ..cosa ne pensate?

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Tu pensi che uno script da 19KB sia pesante per un server?
    Non porti il problema, continua con gli if/elseif, anche perché non vedo come potresti fare la stessa cosa con uno switch, su quale variabile lo fai? Ti servirebbe uno switch per ogni campo della form.

  3. #3
    No no 'spetta...perchè lo stavo facendo. Solo che poi non ho adoperato questo metodo perchè non sapevo come procedere dopo lo switch (e quindi in caso non ci fossero stati errori).

    Ti faccio vedere come avevo fatto:

    Codice PHP:
    <?php

    $campo_vuoto 
    "";

    $nome $_POST['nome'];
    $cognome $_POST['cognome'];
    // ..gli altri campi..

    // Ora metto le variabili in un array..che, se n'è parlato in una discuss precedente, conterrà i valori dei campi soprastanti.

    $array = array($nome$cognome$altri_campi);

    switch (
    $array) {

      case (
    $nome == ""):  echo ("Nome vuoto!");
      break;

      case (
    $cognome == ""): echo ("Cognome vuoto!");
      break;

      
    //..ecc, ecc..
    }
    ?>
    ..non saprei, mi sono posto il problema per il motivo che ho detto. Abituato a leggere in giro che è preferibile mantenere le pagine web a pesi leggeri (7Kb, 9Km, ecc..), avendo la mia pagina, attualmente, a 19Kb mi sono un pò spaventato per le future performances.

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    La pagina web che arriva sul browser non è tutto lo script, la pagina di cui parli viene interpretata dal server, è questo che gestisce i 19KB, sul browser arriva solo il risultato della manipolazione dello script.

  5. #5
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Dimenticavo: if/elseif e switch effettuano lo stesso numero di controlli, entrambi si fermano alla prima condizione che risulta verificata.

    l'if/elseif non viene eseguito fino alla fine, ma appena entri in una delle condizioni le altre vengono ignorate.

  6. #6
    Bene bene..allora lascerò il metodo if/elseif

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.