Visualizzazione risultati 1 fino 5 di 5
Like Tree1Likes
  • 1 Post By mzanella

Discussione: input type="date" non mi passa il record

  1. #1
    OMGFRENK non è connesso Utente giovane
    Data registrazione
    22-01-2020
    Messaggi
    30

    Predefinito input type="date" non mi passa il record

    salve ho creato una tabella nel mio db
    id A.I.
    data_inizio
    id_id
    om
    data_fine
    poi in un file ho creato un form
    inserisco solo input date
    Codice HTML:
     <input class="form-control" id="data_inizio" name="data_inizio" type="date" >
    nel db mi passa sempre il record 0000.00.00
    ho provato a cambiare il tipo mettendo DATE 7 varchar
    ma da sempre valore 0000.00.00
    ora vi chiedo come faccio ad inserire la data con l input creato?e se possibile cambiare in gg.mm.yyyy
    specifico che non mi serve la data d'invio ma una data da scegliere dal calendario che mi apre..
    grazie in anticipo a chi potrà aiutarmi
    edit
    facendo un echo mi stampa la data
    Ultima modifica di OMGFRENK : 15-11-2020 alle ore 19.17.52

  2. #2
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Il tipo date nel form HTML va bene, da specifiche viene già codificata nel formato ISO8601, che è lo stesso usato dal tipo DATE di SQL.

    Se viene inserito 0000-00-00 è probabile che il problema sia piuttosto nel codice PHP usato per l'inserimento.

    I suggerimenti che do più spesso:


  3. #3
    OMGFRENK non è connesso Utente giovane
    Data registrazione
    22-01-2020
    Messaggi
    30

    Predefinito

    Citazione Originalmente inviato da mzanella Visualizza messaggio
    Il tipo date nel form HTML va bene, da specifiche viene già codificata nel formato ISO8601, che è lo stesso usato dal tipo DATE di SQL.

    Se viene inserito 0000-00-00 è probabile che il problema sia piuttosto nel codice PHP usato per l'inserimento.

    grazie per l aiuto
    ecco la query
    Codice PHP:
    $invio = "INSERT INTO liquidi (id_id, omologa, data_inizio, cer) VALUES($_POST[id_id],$_POST[omologa],$_POST[data_inizio],$_POST[cer])";


    if (
    mysqli_query($conn, $invio)) {
    echo
    "";
    } else {
    echo
    "Error: " . $invio . "" . mysqli_error($conn);
    }
    $conn->close();
    }

  4. #4
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    In effetti mancano gli apici sia attorno a $_POST[data_inizio] che alla chiave del vettore. Inoltre il codice così è vulnerabile a SQL Injection, meglio usare un prepared statement:
    Codice PHP:
    $query = 'INSERT INTO liquidi (id_id, omologa, data_inizio, cer) VALUES(?, ?, ?, ?)';
    $stmt = mysqli_prepare($conn, $query);
    if (
    $stmt === false) {
    die(
    "Cannot prepare query: " . mysqli_error($conn));
    }

    mysqli_stmt_bind_param($stmt, "ssss", $_POST['id_id'], $_POST['omologa'], $_POST['data_inizio'], $_POST['cer']);
    if (
    mysqli_stmt_execute($stmt) === false) {
    die(
    "Cannot insert data: " . mysqli_error($conn));
    }
    mysqli_stmt_close($stmt);
    mysqli_close($conn);
    Come secondo parametro di mysqli_stmt_bind_param dovrai utilizzare un codice che rappresenta i tipi delle colonne in cui effetti l'inserimento: ho dato per scontato che fossero tutte stringhe (i campi DATE sono gestiti come stringhe), per i valori interi va usato i, per quelli in virgola mobile d.
    OMGFRENK likes this.

    I suggerimenti che do più spesso:


  5. #5
    OMGFRENK non è connesso Utente giovane
    Data registrazione
    22-01-2020
    Messaggi
    30

    Predefinito

    Citazione Originalmente inviato da mzanella Visualizza messaggio
    In effetti mancano gli apici sia attorno a $_POST[data_inizio] che alla chiave del vettore. Inoltre il codice così è vulnerabile a SQL Injection, meglio usare un prepared statement:
    Codice PHP:
    $query = 'INSERT INTO liquidi (id_id, omologa, data_inizio, cer) VALUES(?, ?, ?, ?)';
    $stmt = mysqli_prepare($conn, $query);
    if (
    $stmt === false) {
    die(
    "Cannot prepare query: " . mysqli_error($conn));
    }

    mysqli_stmt_bind_param($stmt, "ssss", $_POST['id_id'], $_POST['omologa'], $_POST['data_inizio'], $_POST['cer']);
    if (
    mysqli_stmt_execute($stmt) === false) {
    die(
    "Cannot insert data: " . mysqli_error($conn));
    }
    mysqli_stmt_close($stmt);
    mysqli_close($conn);
    Come secondo parametro di mysqli_stmt_bind_param dovrai utilizzare un codice che rappresenta i tipi delle colonne in cui effetti l'inserimento: ho dato per scontato che fossero tutte stringhe (i campi DATE sono gestiti come stringhe), per i valori interi va usato i, per quelli in virgola mobile d.
    sono commosso...ti abbraccerei...grazie

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •