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

    Verificare che una variabile sia un numero intero

    Ciao a tutti , vorrei verificare se una variabile che ricevo da un form è intera o meno.
    Allora ho eseguito il seguente codice
    http://www.narakuprova.altervista.org/reg.php

    Codice PHP:
    /* Recupero i dati */
    $nome $_POST['nome'];
    $pass $_POST['pass'];
    $mail $_POST['mail'];
    $villo $_POST['villaggio'];
    $sex $_POST['genere'];

    $mente $_POST['mente'];
    $forza $_POST['forza'];
    $destrezza $_POST['destrezza'];

    $abi1 $_POST['abi1'];
    $abi2 $_POST['abi2'];
    $abi3 $_POST['abi3'];
    $abi4 $_POST['abi4'];

            
    /*2d]a Verifico che siano numeri */
                
    if (is_int($mente) || is_int($forza) || is_int($destrezza) || is_int($abi1) || is_int($abi2)) || is_int($abi3) || is_int($abi4))
                {
                    
    $oktrue;
                }
                else
                {
                    
    $ok false;
                    echo 
    " Le abilità devono contenere valore numerici ";
                } 
    Ho incollato le parti inerenti al problema il codice di errore che compare è
    Parse error: syntax error, unexpected T_BOOLEAN_OR in /membri/narakuprova/ricevi.php on line 124

  2. #2
    Ci sono diversi errori.

    Prima di tutto quello di sintassi:
    codice:
    is_int($abi2))
    qui ci sono due parentesi tonde chiuse, che terminano l'if prematuramente.

    In secondo luogo is_int() verifica che il dato passato sia di TIPO integer, non che contenga solo numeri (una stringa come '1234' secondo is_int() non e' un intero). Usa ctype_digit().

    Infine, ed alla fine piu' grave, c'e' l'errore logico di usare OR invece di AND. Se usi l'operatore OR verifichi che ALMENO UNO dei valori testati corrisponda al criterio che vuoi tu, non che corrispondano tutti.

  3. #3
    scusami è che la mia idea originale era questa
    ( e appunto funziona )
    Codice PHP:
    if (!is_numeric($mente) || !is_numeric($forza) || !is_numeric($destrezza) || !is_numeric($abi1) || !is_numeric($abi2) || !is_numeric($abi3) || !is_numeric($abi4) )
                {
                    
    $ok false;
                    echo 
    " Le abilità devono contenere valore numerici ";
                } 
    ma il punto è , in questo modo posso inserire anche valori con la virgola no ? io invece volevo che fossero solo interi , senza virgola.

    Grazie per la risposta.

  4. #4
    Io ti ho suggerito di usare ctype_digit(), se tu usi is_numeric() non protestare con me

  5. #5
    Scusami , xD
    Solo che avevo letto la descrizione su un sito di ctype_digit e credevo che ciclasse solo gli array per verificare che siano numerici
    invece funziona
    Codice PHP:
                if (!ctype_digit($mente) || !ctype_digit($forza) || !ctype_digit($destrezza) || !ctype_digit($abi1) || !ctype_digit($abi2) || !ctype_digit($abi3) || !ctype_digit($abi4) ) 
    Ancora grazie, sai non sono molto esperto di php , sto imparando , oggi pomerigio per esercitami ho creato questa registrazione
    http://www.narakuprova.altervista.org/reg.php

    sta venendo benino , credo , anche grazie ai vostri aiuti sul forum
    ( vedi consigli per renderlo più sicuro - o sbuggature varie )
    Grazie ^^

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.