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']) ? 1 : 0;
$auto2 = isset($_POST['auto2']) ? 1 : 0;
$auto3 = isset($_POST['auto3']) ? 1 : 0;
$auto4 = isset($_POST['auto4']) ? 1 : 0;
$auto5 = isset($_POST['auto5']) ? 1 : 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> </td>
</tr>
<tr>
<td align="left" valign="top">
<form name="form_prenotazioni" method="post" action="">
<p> </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"> </td>
<td> </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> </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.