Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    16

    Balore booleniano array post con if

    Scusate sono alle prime armi con il PHP ho fatto questo semplice script in allegato per testare il principio del valore booleniano per l'aray post.

    La mia domanda è semplice:
    come mai se non riempio la casella di testo, dopo aver premuto il pulsante non ottengo il messaggio di cui all' else, ma ottengo 0?

    Grazie per l'aiuto.
    Amos

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    non c'è alcuno script allegato... aggiungilo con gli appositi tag CODE o PHP
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    16
    Grazie per il consiglio:
    <code>

    <?php
    function lire($euro)
    {
    return ($euro*1936.27);
    }
    ?>
    <form name="form_function" method="post" action="">


    Immetti valore €:

    <input type="text" name="valore_€">
    </p>



    <input type="submit" name="Submit_function" value="Invia">
    </p>
    </form>
    <?php
    if($_POST)
    {
    $euro = htmlspecialchars($_POST['valore_€']);
    $valore=lire($euro);
    echo("varole equivalente in Lit: $valore");
    }
    else
    {
    $altrimenti="immetti valore in €";
    print($altrimenti);
    }
    ?>

    </code>

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Ora che hai postato il codice la cosa è evidente: tu controlli solo se esiste il vettore $_POST -il che è vero sempre- non se una specifica variabile di $_POST sia settata ad uno specifico valore...

    Per esempio, potresti incominciare con il provare a sistemare la condizione nel if...

    codice:
    if (isset(!$_POST['valore_€']) || !is_numeric($_POST['valore_€'])) {
     ...
    }
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    La risposta è semplice,

    i dati POST vengono cmq inviati con valori vuoti quindi $_POST esiste dopo l'invio.

    Per la precisazione sono valorizzati:

    $_POST['valore_€'] con una stringa vuota
    $_POST['Submit_function'] con la stringa "Invia"

    Come vedi anche se tu rimuovessi l'input dal form, il tasto di submit invierebbe comunque un valore in post.
    Michele Castellucci
    Sviluppatore Web del Consorzio CottonBit
    Consorzio Cottonbit
    Risorse per la programmazione
    Dire Fare Programmare!

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    16
    Scusate, ho cercato di adattare il codice come da risposta di Andrea

    <code>
    <?php
    function lire($euro)
    {
    return ($euro*1936.27);
    }
    ?>
    <form name="form_function" method="post" action="">


    Immetti valore €:

    <input type="text" name="valore_€">
    </p>



    <input type="submit" name="Submit_function" value="Invia">
    </p>
    </form>
    <?php
    if (isset(!$_POST['valore_€']) || !is_numeric($_POST['valore_€']))
    {
    $altrimenti="immetti un valore numerico";
    print($altrimenti);
    }
    else
    {
    $euro = htmlspecialchars($_POST['valore_€']);
    $valore=lire($euro);
    echo("varole equivalente in Lit: $valore");
    }
    ?>
    </code>

    ma ottengo il seguente errore:
    Parse error: syntax error, unexpected '!', expecting T_STRING or T_VARIABLE or '$' in C:\Programmi\Apache Software Foundation\Apache2.2\htdocs\function+return.php on line 16

    Grazie di nuovo.

    Amos

  7. #7
    Va scritto

    if (!isset($_POST['valore_€']) || !is_numeric($_POST['valore_€']))
    Michele Castellucci
    Sviluppatore Web del Consorzio CottonBit
    Consorzio Cottonbit
    Risorse per la programmazione
    Dire Fare Programmare!

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Originariamente inviato da ghiaccio84
    Va scritto

    if (!isset($_POST['valore_€']) || !is_numeric($_POST['valore_€']))
    ooops l'ora tarda!
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

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.