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

    Inserire Data da form in db Mysql Per favore aiuto!

    Buon pomeriggio a tutti, ho un problema con l'inserimento in mysql di una data proveniente da un form. Premetto che prima di decidermi a scrivere e a disturbarvi ho visualizzato almeno un paio di centinaia tra siti e manuali e provato funzioni varie, explode vari, array vari e tutte le soluzioni che sono riuscito a trovare per convertire la data da dd-mm-yyyy in yyyy-mm-dd, ma senza risultato. Nessun errore nessun avviso, ma il campo data nella tabella resta 0000-00-00. Qui di seguito incollo il codice della pagina dove si trovano il form e il necessario per l'invio al DB, funziona tutto tranne la data. Spero possiate aiutarmi, vi ringrazio anticipatamente e mi scuso per il fastidio.

    Codice PHP:
    <?php
    if($_POST) {
                    
    inserisci_record();
    }
    else {
                    
    mostra_form();
    }
     
    function 
    inserisci_record()
    {
     
                    
    // richiamo il file di configurazione
                    
    require 'config.php';
     
                    
    // richiamo lo script responsabile della connessione a MySQL
                    
    require 'connect.php';
     
     
                    
    // recupero i campi di tipo "stringa"
                    
    $nome         trim($_POST['nome']);
                    
    $cognome      trim($_POST['cognome']);
                    
    $email        trim($_POST['email']);
                    
    $luogo        trim($_POST['luogo']);
                    
    $extra        trim($_POST['extra']);
                    
    $note         trim($_POST['note']);
                    
    $telefono     trim($_POST['telefono']);
                    
    $data         trim($_POST['data']);
                    
    $oranoleggio  trim($_POST['oranoleggio']);
     
                    
    // verifico se devo eliminare gli slash inseriti automaticamente da PHP
                    
    if(get_magic_quotes_gpc())
                    {
                                   
    $nome          stripslashes($nome);
                                   
    $cognome       stripslashes($cognome);
                                   
    $email         stripslashes($email);
                                   
    $luogo         stripslashes($luogo);
                                   
    $extra         stripslashes($extra);
                                   
    $note          stripslashes($note);
                                   
    $telefono      stripslashes($telefono);
                                   
    $data          stripslashes($data);
                                   
    $oranoleggio   stripslashes($oranoleggio);
                    }
     
                    
    $nome          mysql_real_escape_string($nome);
                    
    $cognome       mysql_real_escape_string($cognome);
                    
    $email         mysql_real_escape_string($email);
                    
    $luogo         mysql_real_escape_string($luogo);
                    
    $extra         mysql_real_escape_string($extra);
                    
    $note          mysql_real_escape_string($note);
                    
    $telefono      mysql_real_escape_string($telefono);
                    
    $data          mysql_real_escape_string($data);
                    
    $oranoleggio   mysql_real_escape_string($oranoleggio);
     
                    
    // recupero gli altri campi del form
                    
    $auto1  = isset($_POST['auto1']) ? 0;
                    
    $auto2  = isset($_POST['auto2']) ? 0;
                    
    $auto3  = isset($_POST['auto3']) ? 0;
                    
    $auto4  = isset($_POST['auto4']) ? 0;
                    
    $auto5  = isset($_POST['auto5']) ? 0;
     
                    
    // verifico la presenza dei campi obbligatori
                    
    if(!$nome)
                    {
                                   
    $messaggio urlencode("Non hai inserito il nome");
                                   
    header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);
                                   exit;
                    }
     
                    
    // preparo la query
                    
    $query "INSERT INTO noleggio (nome,cognome,email,luogo,extra,note,telefono,data,oranoleggio,auto1,auto2,auto3,auto4,auto5)
                                                     VALUES ('
    $nome','$cognome','$email','$luogo','$extra','$note','$telefono','$data','$oranoleggio',$auto1,$auto2,$auto3,$auto4,$auto5)";
     
                    
    // invio la query
                    
    $result mysql_query($query);
     
                    
    // controllo l'esito
                    
    if (!$result) {
                                   die(
    "Errore nella query $query: " mysql_error());
                    }
     
                    
    // recupero l'id autoincrement generato da MySQL per il nuovorecord inserito
                    
    $id_inserito mysql_insert_id();
     
                    
    // chiudo la connessione a MySQL
                    
    mysql_close();
     
                    
    $messaggio urlencode("Inserimento effettuato con successo (ID=$id_inserito)");
                    
    header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);
    }
     
    function 
    mostra_form()
    {
                    
    // mostro un eventuale messaggio
                    
    if(isset($_GET['msg']))
                                   echo 
    '<b>'.htmlentities($_GET['msg']).'</b><br /><br />';
                    
    ?><title>Senza Titolo</title>
    <table width="1024" border="1" align="center">
      <tr> 
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td align="left" valign="top"> 
          <form name="form_prenotazioni" method="post" action="">
            <p>&nbsp;</p>
            <table width="100%" border="1">
              <tr>
                <td><label>Nome: </label></td>
                <td><label> 
                  <input name="nome" type="text" size="40" />
                  </label>
                  (obbligatorio) </td>
              </tr>
              <tr>
                <td>Cognome</td>
                <td><input name="cognome" type="text" id="cognome" size="40" /></td>
              </tr>
              <tr> 
                <td>E-mail: </td>
                <td><input name="email" type="text" size="40" /> </td>
              </tr>
              <tr>
                <td>Telefono</td>
                <td><input name="telefono" type="text" id="telefono" /></td>
              </tr>
              <tr>
                <td>Data Noleggio</td>
                <td align="left"><input name="data" type="text" id="data" /> 
                </td>
              </tr>
              <tr>
                <td>Ora Noleggio</td>
                <td><input name="oranoleggio" type="text" id="oranoleggio" /></td>
              </tr>
              <tr> 
                <td align="left" valign="top">Luogo</td>
                <td><textarea name="luogo" cols="40" rows="5" id="luogo"></textarea></td>
              </tr>
              <tr> 
                <td>Auto: </td>
                <td> <table width="100%" border="1" align="left">
                    <tr> 
                      <td>Auto1 
                        <input name="auto1" type="checkbox" id="auto1" value="1" /></td>
                      <td>Auto2 
                        <input name="auto2" type="checkbox" id="auto2" value="1" /></td>
                      <td>Auto3 
                        <input name="auto3" type="checkbox" id="auto3" value="1" /></td>
                      <td>Auto4 
                        <input name="auto4" type="checkbox" id="auto4" value="1" /></td>
                      <td>Auto5 
                        <input name="auto5" type="checkbox" id="auto5" value="1" /></td>
                    </tr>
                  </table></td>
              </tr>
              <tr> 
                <td align="left" valign="top">Extra</td>
                <td><textarea name="extra" cols="40" rows="5" id="extra"></textarea></td>
              </tr>
              <tr> 
                <td align="left" valign="top">Note</td>
                <td><textarea name="note" cols="40" rows="5" id="note"></textarea></td>
              </tr>
              <tr> 
                <td align="left" valign="top">&nbsp;</td>
                <td>&nbsp;</td>
              </tr>
              <tr>
                <td align="left" valign="top"><table width="100%" border="1">
                    <tr>
                      <td><input name="invia" type="submit" value="Invia" /></td>
                      <td><input type="reset" name="Submit" value="Reset"></td>
                    </tr>
                  </table></td>
                <td>&nbsp;</td>
              </tr>
            </table>
            <p> 
              <label></label>
            </p>
            </form></td>
      </tr>
    </table>
    <?php
    }
    ?>
    Qui incollo il contenuto del file .sql che genera la tabella


    -- Struttura della tabella `noleggio`


    CREATE TABLE noleggio (
    id int(11) NOT NULL auto_increment,
    nome varchar(128) NOT NULL default '',
    cognome varchar(128) NOT NULL default '',
    email varchar(128) NOT NULL default '',
    luogo varchar(128) NOT NULL default '',
    extra text NOT NULL,
    note text NOT NULL,
    telefono varchar(128) NOT NULL default '',
    data date NOT NULL default '0000-00-00',
    oranoleggio varchar(128) NOT NULL default '',
    auto1 tinyint(4) NOT NULL default '0',
    auto2 tinyint(4) NOT NULL default '0',
    auto3 tinyint(4) NOT NULL default '0',
    auto4 tinyint(4) NOT NULL default '0',
    auto5 tinyint(4) NOT NULL default '0',
    PRIMARY KEY (id));


    Grazie ancora, aspetto fiducioso.


    P.S. Ho inserito (sbagliando) un messaggio identico in questa discussione
    http://forum.html.it/forum/showthrea...readid=1399800
    Mi scuso con gli admin.

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Codice PHP:
    //data in formato dd-mm-aaaa
    $data '28-06-2014';

    $data explode('-',$data1);

    //data in formato yyyy-mm-aa
    $data $data[2].'-'.$data[1].'-'.$data[0]; 

  3. #3
    Prima di ogni cosa, grazie infinite Alhazred per la risposta. Provo ad abusare ancora della tua disponibilità ed esperienza chiedendoti:
    Dove o come va inserito nel "mio" codice, la parte di codice che mi hai dato tu?
    Spero tu abbia la pazienza di rispondermi, ancora grazie.

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Esattamente dopo la definizione della tua variabile $data.
    Ovviamente la prima riga del mio codice non la devi usare, già ce l'hai quella.

    Ah, dentro l'explode() c'è scritto $data1, è un errore, togli 1, solo $data anche lì.

  5. #5
    Funzionaaa!!! Grazie!!! Grande!!!
    Ho provato anche ad inserire un controllo del formato data in modo tale da assicurare la presenza dei trattini, ma non c'è verso. Se invece dei trattini controllo la presenza delle slash va, con i trattini no.

    Codice PHP:
    // controllo trattini campo data
    if (!preg_match("/[0-9]{2}\-[0-9]{2}\-[0-9]{4}/"$data)){
    echo 
    "<h3>Errore!</h3><br>Inserisci data nel formato GG-MM-AAA<br><A HREF=\"javascript:history.go(-1)\">Torna indietro e corregi</A>. Grazie";
    exit;} 
    sicuramente è un errore di sintassi (ho detto niente :-D) a me basterebbe che controllasse anche solo la presenza dei trattini.

    Comunque, grazie mille ancora per l'aiuto e la disponibilità.

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.