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

    dubbio su funzione isset

    Salve, sono la solita principiante, poichè qualcuno è stato cosi' gentile da rispondermi in passato, espongo ancora un dubbio, sempre immagino un po' scarso. Io ho usato la funzione isset per controllare se l'utente ha inserito i dati in un form, ma mentre mi funziona benissimo con le caselle combinate, mi restituisce true anche se una casella di testo è vuota, o almeno cosi' mi pare. Vi mostro il seguente esempio:

    argomenti.html
    <html><head></head><body>
    <table align=center border><tr><td>
    <FORM METHOD="POST" ACTION=argomenti2.php>
    Seleziona dal menu l'argomento di sistemi sul quale ti servono chiarimenti

    <SELECT NAME=argomento[] SIZE="3" multiple>
    <OPTION value="sistemi operativi"> sistemi operativi
    <OPTION value="evoluzione dei microprocessori"> evoluzione dei microprocessori
    <OPTION value="linux"> linux
    <OPTION value="javascript"> javascript
    <OPTION value="php" > php
    </SELECT>
    <INPUT TYPE="reset" VALUE="Cancella tutto!">
    <INPUT TYPE="submit" VALUE="Invia i dati">
    </form></html>

    argomenti.php
    <html><head></head><body>
    <?php
    $flag=0;
    if (isset($email))
    echo "indirizzo:$email
    ";
    else
    {echo "manca l'indirizzo!
    ";
    $flag=1;}
    if (isset($argomento))
    {echo "hai richiesto chiarimenti sui seguenti argomenti:
    ";
    for ($i=0;$i<5;$i++)
    if (isset($argomento[$i]))
    echo "$argomento[$i]
    ";}
    else
    {echo "non hai inserito argomenti";
    $flag=1;}
    if ($flag==1)
    echo "
    <a href=argomenti2.html>clicca per reinserire</a>";
    ?>
    </body></html>

    Se non seleziono alcun argomento dalla casella combinata, mi da' il msg di errore, ma se lascio vuota la casella di testo no. Devo usare la funzione empty? Perchè? Qual è la differenza?
    Grazie, ciao a tutti.

  2. #2
    in tal caso vi è la funzione empty()

    In pratica una variabile anche se vuota (empty) può cmq esistere (isset)

    ad esempio

    Codice PHP:
    if( (!isset($_POST['campo_form'])) || (empty($_POST['campo_form])) )
      {
      echo "il campo_form è obbligatorio!";
      } 
    tradotto: se non essiste o è vuota la variabile $_POST['campo_form']

    Ad esempio

    Codice PHP:
    <?PHP
    $variabile1
    ="";

    if(isset(
    $variabile1))
      {
      echo 
    "la variabile 1 esiste
    "
    ;
      }
    else
      {
        echo 
    "la variabile 1 non esiste
    "
    ;
      }

    if(empty(
    $variabile1))
      {
      echo 
    "la variabile 1 è vuaota
    "
    ;
      }
    else
      {
      echo 
    "la variabile 1 non è vuaota
    "
    ;
      }
    prova questo script...

    dopo riprovalo modificando il primo rigo con
    $variabile2="qualsiasi cosa";

  3. #3
    http://it.php.net/manual/en/function.isset.php
    http://it.php.net/manual/en/function.empty.php

    credo che gli esempi del manuale siano sufficientemente esemplificativi

    ISSET()
    Return Values

    Returns TRUE if var exists and has value other than NULL, FALSE otherwise.

    ISSET()

    Return Values

    Returns FALSE if var has a non-empty and non-zero value.

    The following things are considered to be empty:

    * "" (an empty string)
    * 0 (0 as an integer)
    * "0" (0 as a string)
    * NULL
    * FALSE
    * array() (an empty array)
    * var $var; (a variable declared, but without a value in a class)
    Da notare che le variabili superglobali come $_POST, $_GET etc. sono sempre settate anche se vuote.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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.