Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di nourdine
    Registrato dal
    Nov 2005
    Messaggi
    1,130

    input non compilati e tipo di dato

    quando spedisco (a uno script che accede e scrive nel db) un form e alcuni campi non li compilo proprio che cosa arriva a mysql in relazioni a quei campi? NULL?

    grazie

  2. #2
    Utente di HTML.it L'avatar di PaoloC
    Registrato dal
    Jul 2007
    Messaggi
    21

    dipende

    Ciao,
    dipende da come li tratti nel backend ... se l'inserimento in mysql lo gestisci con dei comandi INSERT potresti anche avere degli errori su alcuni tipi di dato. Mi spiego meglio:
    ...
    //associazioni
    $campoNumerico = $_POST["campoNumerico"];
    $campoStringa = $_POST["campoStringa"];
    $campoBoolean = $_POST["campoBoolean"];
    ...
    //query
    ... 'INSERT INTO (campoNumerico, campoStringa, campoBoolean) VALUES ('.$campoNumerico.', \''.$campoStringa.'\', '.$campoBoolean.');' ...
    ...

    in questo caso se i due dati campoNumerico e campoBoolean non sono imputati la query va in errore.
    Se invece fai una serie di controlli puoi impostare a NULL i valori non inputati es:
    //associazioni
    ...
    //controlli
    if(isNull($campoNumerico) || ($campoNumerico=='')) $campoNumerico = 'NULL';
    if(isNull($campoBoolean) || ($campoBoolean=='')) $campoBoolean= 'NULL';
    ...
    //query
    ...

    Saluti

  3. #3
    Utente di HTML.it L'avatar di nourdine
    Registrato dal
    Nov 2005
    Messaggi
    1,130

    Re: dipende

    Scusa ma non hai riposto alla mia domanda! è null o no il dato che arriva al php?

  4. #4
    Utente di HTML.it L'avatar di PaoloC
    Registrato dal
    Jul 2007
    Messaggi
    21
    La tua domanda era "che cosa arriva a mysql" non al php ... comunque la risposta è che dentro l'array $_GET o $_POST, puntando con un key non presente il risultato è: non definito.

    Guarda questo esempio:
    14 - if(is_null($_GET["test"])) print "test is null
    ";
    15 - if($_GET["test"]=="") print "test is \"\"
    ";
    16 - if(!isset($_GET["test"])) print "test is not set
    ";
    17 - $val = "test: ".$_GET["test"]."
    ";
    18 - print $val;

    da come risultato:
    Notice: Undefined index: test in ...\test.php on line 14
    test is null
    Notice: Undefined index: test in ...\test.php on line 15
    test is ""
    test is not set
    Notice: Undefined index: test in ...\test.php on line 17
    test:

    n.b.:"i Notice appaiono solo se nel php.ini hai impostato il livello di output con i Notice"
    a mysql quindi arriveranno i dati concatenati nella INSERT e quindi vuoti (la concatenzazione di un dato non settato con una stringa restituisce un Notice in output e la stringa di partenza) ... sta quindi a come controlliamo i dati letti da $_POST e $_GET ...
    Saluti

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.