[PHP] Delucidazioni Filter_sanitaze_string

elpirata

Utente Attivo
18 Mar 2009
264
7
18
Un saluto a tutti gli amici del forum,
grazie al supporto di un amico sto effettuando un porting di un gestionale da mysql a mysqli.

Avrei necessità del vostro supporto perchè sto riscintrando un problema con l'insert dei campi in un db, per l'esattezza se nei campi del form inserisco caratteri tipo slash / o un apostrofo (via d'annunzio), la query fallisce, se non utilizzo caratteri speciali tutto va liscio.

Devo recuperare tante variabili, stando alla vostra esperienza, come potrei ovviare al problema dei caratteri speciali ? Avevo sentito parlare di una nuova funzione Filter_sanitaze_string, ma non so come implementarla nel mio script.

PHP:
$itr1 = mysqli_real_escape_string($mysqli, $_POST['itr1']);
$itr2 = mysqli_real_escape_string($mysqli, $_POST['itr2']);
$for1 = mysqli_real_escape_string($mysqli, $_POST['for1']);
$for2 = mysqli_real_escape_string($mysqli, $_POST['for2']);
$itr1 = trim(strip_tags(stripslashes(strtoupper($itr1))));
$itr2 = trim(strip_tags(stripslashes(strtoupper($itr2))));
$for1 = trim(strip_tags(stripslashes(strtoupper($for1))));
$for2 = trim(strip_tags(stripslashes(strtoupper($for2))));
$q1 = mysqli_real_escape_string($mysqli, $_POST['q1']);
$q2 = mysqli_real_escape_string($mysqli, $_POST['q2']);
$iu1 = mysqli_real_escape_string($mysqli, $_POST['iu1']);
$iu2 = mysqli_real_escape_string($mysqli, $_POST['iu2']);
$sc1 = mysqli_real_escape_string($mysqli, $_POST['sc1']);
$sc2 = mysqli_real_escape_string($mysqli, $_POST['sc2']);
$imp_1 = mysqli_real_escape_string($mysqli, $_POST['imp_1']);
$imp_2 = mysqli_real_escape_string($mysqli, $_POST['imp_2']);


Avevo anche (forse assurdamente pensato) ad una funzione del genere:

PHP:
function sanitize ($string)
{
    $string = filter_var($string, FILTER_SANITIZE_STRING);
    $string = trim($string);
    $string = stripslashes($string);
    $string = strip_tags($string);

    return $string;
}


Grazie
 
Ciao, la funzione mysqli_real_escape_string() è più che sufficiente per fare l'escape. Potresti con un ciclo sistemare tutti i campi ricevuti.
PHP:
foreach ($_POST as $key => $value) {
    $_POST[$key] = mysqli_real_escape_string($value);
}
 
Ciao, la funzione mysqli_real_escape_string() è più che sufficiente per fare l'escape. Potresti con un ciclo sistemare tutti i campi ricevuti.
PHP:
foreach ($_POST as $key => $value) {
    $_POST[$key] = mysqli_real_escape_string($value);
}


Ciao criric,
nel ringraziarti per la risposta ti dico l'escape lo riesco a fare, ma il problema di query fallita si verifica con il tentativo si inserire backslash ( \ )
 
se inserisci un backslash l'escape te lo trasforma in \\
posta la query e l'errore sql che ti rstituisce
 
se inserisci un backslash l'escape te lo trasforma in \\
posta la query e l'errore sql che ti rstituisce

Buongiorno,
solo per una simulazione ho provato ad inserire nella input veicolo = \\ ALFA ROMEO \\\

se inserissi veicolo = \\ ALFA ROMEO \\ tutto ok la query cosi come sta va a buon fine.


Codice:
Ho trovato un errore nell'esecuzione della QUERY UPDATE appuntamenti SET veicolo = '\\ ALFA ROMEO \\\', data = STR_TO_DATE('21/05/2017', '%d/%m/%Y'), ora = '08:30:00', cliente = 'ANDREA D'ARIA D'ARIA', telefono = '3332511111 | 800122522', gestore = 'NESSUNO', tipo_pren = 'CLIENTE PRIVATO', stato_pren = 'ACCETTAZIONE', note = 'QUESTO E' \\\ SOLO UN COMMENTO DI TEST' WHERE idappuntamento = '1231

Grazie sempre per il prezioso supporto
 
Non mi sembra che venga eseguito l'escape dall'errore che hai postato.
Prendi come esempio questo codice :
PHP:
$conn = mysqli_connect("localhost", "root", "password", "database");
$query = mysqli_real_escape_string($conn, "\\\ D'ARIA \ ALFA ROMEO \\");
var_dump($query);
/**
 * output
 * string '\\\\ D\'ARIA \\ ALFA ROMEO \\' (length=29)
 */
nota come sono stati gestiti i backslash dalla funzione di escape.
Posta tutto lo script fino all'esecuzione della query.
 
Non mi sembra che venga eseguito l'escape dall'errore che hai postato.
Prendi come esempio questo codice :
PHP:
$conn = mysqli_connect("localhost", "root", "password", "database");
$query = mysqli_real_escape_string($conn, "\\\ D'ARIA \ ALFA ROMEO \\");
var_dump($query);
/**
 * output
 * string '\\\\ D\'ARIA \\ ALFA ROMEO \\' (length=29)
 */
nota come sono stati gestiti i backslash dalla funzione di escape.
Posta tutto lo script fino all'esecuzione della query.


Ciao criric buonasera,
e un saluto a tutti gli amici del forum,
ecco lo script che senza l'aiuto del mio amico non sarei mai riuscito a realizzare

PHP:
<?php

if (isset($_GET['id'])) {
$id = (int)$_GET['id'];
$sql1 = "SELECT * FROM appuntamenti WHERE idappuntamento = '$id'";
$res1 = $mysqli->query($sql1);
while ($row = $res1->fetch_array(MYSQLI_ASSOC)) {
$id = mysqli_real_escape_string($mysqli, $row['id']);
$cliente = mysqli_real_escape_string($mysqli, $row['cliente']);
$data = mysqli_real_escape_string($mysqli, $row['data']);
$ora = mysqli_real_escape_string($mysqli, $row['ora']);
$gestore = mysqli_real_escape_string($mysqli, $row['gestore']);
$veicolo = mysqli_real_escape_string($mysqli,$row['veicolo']);
$stato_pren = mysqli_real_escape_string($mysqli, $row['stato_pren']);
$tipo_pren = mysqli_real_escape_string($mysqli, $row['tipo_pren']);
$telefono = mysqli_real_escape_string($mysqli, $row['telefono']);
$note = mysqli_real_escape_string($mysqli, $row['note']);
$data = strtotime($data);
$data = date('d/m/Y', $data);
}

if (isset($_POST['submit'])) {
$id = (int)$_GET['id'];

/* RECUPERO I DATI DAL FORM INSERIMENTO COMMESSA */
$veicolo = filter_input(INPUT_POST, 'veicolo', FILTER_SANITIZE_STRING);
$cliente = filter_input(INPUT_POST, 'cliente', FILTER_SANITIZE_STRING);
$telefono = filter_input(INPUT_POST, 'telefono', FILTER_SANITIZE_STRING);
$note = filter_input(INPUT_POST, 'note', FILTER_SANITIZE_STRING);

$data = mysqli_real_escape_string($mysqli, $_POST['data']);
$ora = mysqli_real_escape_string($mysqli, $_POST['ora']);
$gestore = mysqli_real_escape_string($mysqli, $_POST['gestore']);
$tipo_pren = mysqli_real_escape_string($mysqli, $_POST['tipo_pren']);
$stato_pren = mysqli_real_escape_string($mysqli, $_POST['stato_pren']);

/* SETTO I MAIUSCOLI */
$veicolo = strtoupper($veicolo);
$cliente = strtoupper($cliente);
$note = strtoupper($note);

/* FILTRO LE ALTRE VARIABILI */
$data = trim(strip_tags(stripslashes($data)));
$ora = trim(strip_tags(stripslashes($ora)));
$telefono = trim(strip_tags(stripslashes($telefono)));
$gestore = trim(strip_tags(stripslashes(strtoupper($gestore))));
$tipo_pren = trim(strip_tags(stripslashes(strtoupper($tipo_pren))));
$stato_pren = trim(strip_tags(stripslashes(strtoupper($stato_pren))));
/* FINE FILTRI e CONVERSIONI SULLE VARIABILI POST */

$sql2 = "UPDATE appuntamenti SET veicolo = '$veicolo', data = STR_TO_DATE('$data', '%d/%m/%Y'), ora = '$ora', cliente = '$cliente', telefono = '$telefono', gestore = '$gestore', tipo_pren = '$tipo_pren', stato_pren = '$stato_pren', note = '$note' WHERE idappuntamento = '$id'";
$res2 = $mysqli->query($sql2);

if (!$res2) {
echo "<p style='margin-top: 40px;text-align:center;'>Ho trovato un errore nell'esecuzione della <b>QUERY</b> $sql2</p>";

}else{

$messaggio = "<div class='success'>Appuntamento aggiornato con successo! Attendi..</div>";
echo "<meta http-equiv='refresh' content='8;url=index.php?page=lista_appuntamenti_oggi&tipo=tutti&data=oggi'>";
 
  }
 }
}
?>
 
non fai l'escape di tutte le variabili, infatti l'escape sulla variabile $veicolo non c'è.
perchè fai una select prima ?
 
non fai l'escape di tutte le variabili, infatti l'escape sulla variabile $veicolo non c'è.
perchè fai una select prima ?

ma non lo faccio qua:
PHP:
$veicolo = mysqli_real_escape_string($mysqli,$row['veicolo']);

tramite la variabile superglobale $_GET recupero l'id dell'appuntamento che devo modificare,
effettuando una select che mi restituisce proprio quell'id, una volta recuperato mostro a video il form
per modificare i dati e tramite il submit aggiorno l'appuntamento.
 
li lo fai quando estrai i dati della query e non serve ma dopo l'invio del post non lo fai.
Io te lo sistemerei un po.
Non hai postato l'inizializzazione di Mysqli ma immagino che hai qualcosa simile a
PHP:
$mysqli = new mysqli($host, $user, $password, $database);
 
li lo fai quando estrai i dati della query e non serve ma dopo l'invio del post non lo fai.
Io te lo sistemerei un po.
Non hai postato l'inizializzazione di Mysqli ma immagino che hai qualcosa simile a
PHP:
$mysqli = new mysqli($host, $user, $password, $database);

L'inizializzazione avviene esattamente come da te indicato,
come potrei migliorare un pò il codice ?
 
intanto se invii il post non serve fare la select poi utilizzerei i cicli per fare l'escape come ti ho postato sopra.
Cosa manca al codice che hai postato a parte la connessione al db ? solo il form ? posta anche quello
 
intanto se invii il post non serve fare la select poi utilizzerei i cicli per fare l'escape come ti ho postato sopra.
Cosa manca al codice che hai postato a parte la connessione al db ? solo il form ? posta anche quello

Questo lo script completo:

PHP:
<?php

if (isset($_GET['id'])) {
$id = (int)$_GET['id'];
$sql1 = "SELECT * FROM appuntamenti WHERE idappuntamento = '$id'";
$res1 = $mysqli->query($sql1);
while ($row = $res1->fetch_array(MYSQLI_ASSOC)) {
$id = mysqli_real_escape_string($mysqli, $row['id']);
$cliente = mysqli_real_escape_string($mysqli, $row['cliente']);
$data = mysqli_real_escape_string($mysqli, $row['data']);
$ora = mysqli_real_escape_string($mysqli, $row['ora']);
$gestore = mysqli_real_escape_string($mysqli, $row['gestore']);
$veicolo = mysqli_real_escape_string($mysqli,$row['veicolo']);
$stato_pren = mysqli_real_escape_string($mysqli, $row['stato_pren']);
$tipo_pren = mysqli_real_escape_string($mysqli, $row['tipo_pren']);
$telefono = mysqli_real_escape_string($mysqli, $row['telefono']);
$note = mysqli_real_escape_string($mysqli, $row['note']);
$data = strtotime($data);
$data = date('d/m/Y', $data);
}

if (isset($_POST['submit'])) {
$id = (int)$_GET['id'];

/* RECUPERO I DATI DAL FORM INSERIMENTO COMMESSA */
$veicolo = filter_input(INPUT_POST, 'veicolo', FILTER_SANITIZE_STRING);
$cliente = filter_input(INPUT_POST, 'cliente', FILTER_SANITIZE_STRING);
$telefono = filter_input(INPUT_POST, 'telefono', FILTER_SANITIZE_STRING);
$note = filter_input(INPUT_POST, 'note', FILTER_SANITIZE_STRING);

$data = mysqli_real_escape_string($mysqli, $_POST['data']);
$ora = mysqli_real_escape_string($mysqli, $_POST['ora']);
$gestore = mysqli_real_escape_string($mysqli, $_POST['gestore']);
$tipo_pren = mysqli_real_escape_string($mysqli, $_POST['tipo_pren']);
$stato_pren = mysqli_real_escape_string($mysqli, $_POST['stato_pren']);

/* SETTO I MAIUSCOLI */
$veicolo = strtoupper($veicolo);
$cliente = strtoupper($cliente);
$note = strtoupper($note);

/* FILTRO LE ALTRE VARIABILI */
$data = trim(strip_tags(stripslashes($data)));
$ora = trim(strip_tags(stripslashes($ora)));
$telefono = trim(strip_tags(stripslashes($telefono)));
$gestore = trim(strip_tags(stripslashes(strtoupper($gestore))));
$tipo_pren = trim(strip_tags(stripslashes(strtoupper($tipo_pren))));
$stato_pren = trim(strip_tags(stripslashes(strtoupper($stato_pren))));
/* FINE FILTRI e CONVERSIONI SULLE VARIABILI POST */

$sql2 = "UPDATE appuntamenti SET veicolo = '$veicolo', data = STR_TO_DATE('$data', '%d/%m/%Y'), ora = '$ora', cliente = '$cliente', telefono = '$telefono', gestore = '$gestore', tipo_pren = '$tipo_pren', stato_pren = '$stato_pren', note = '$note' WHERE idappuntamento = '$id'";
$res2 = $mysqli->query($sql2);

if (!$res2) {
echo "<p style='margin-top: 40px;text-align:center;'>Ho trovato un errore nell'esecuzione della <b>QUERY</b> $sql2</p>";

}else{

$messaggio = "<div class='success'>Appuntamento aggiornato con successo! Attendi..</div>";
echo "<meta http-equiv='refresh' content='8;url=index.php?page=lista_appuntamenti_oggi&tipo=tutti&data=oggi'>";
 
  }
 }
}
?>


<? echo $messaggio; ?>

<form method="post" action="">

<fieldset>
<legend>Registra Appuntamento</legend>
<table id="add">
<tr>
<td><b>Veicolo</b></td>
<td><input type="text" name="veicolo" value="<?= $veicolo; ?>" required="required"></td>
<td><b>Stato Prenotazione</b></td>
<td><select name="stato_pren" required="required">
<?php
$sql5 = "SELECT * FROM stato_pren WHERE stato != '$stato_pren' ORDER BY stato ASC";
$rs5 = $mysqli->query($sql5);
echo "<option value='$stato_pren'>$stato_pren</option>";
while ($row = $rs5->fetch_array(MYSQLI_ASSOC)) {
$stato = mysqli_real_escape_string($mysqli, strtoupper($row['stato']));
echo "<option value='$stato'>$stato</option>";
}
?>
</select></td>
</tr>

<tr>
<td><b>Data Prenotazione</b></td>
<td><input type="text" name="data" id="datepicker" value="<?= $data; ?>" required="required"></td>
<td><b>Ora Prenotazione</b></td>
<td><input type="text" name="ora" class="timepicker" value="<?= $ora; ?>" required="required"></td>
</tr>

<tr>
<td><b>Cliente</b></td>
<td><input type="text" name="cliente" value="<?= $cliente; ?>" required="required"></td>
<td><b>Telefono</b></td>
<td><input type="text" name="telefono" value="<?= $telefono; ?>" required="required"></td>
</tr>

<tr>
<td><b>Gestore</b></td>
<td><select name="gestore">
<?php
$sql3 = "SELECT * FROM gestore WHERE gestore != '$gestore' ORDER BY gestore ASC";
$rs3 = $mysqli->query($sql3);
echo "<option value='$gestore'>$gestore</option>";
while ($row = $rs3->fetch_array(MYSQLI_ASSOC)) {
$nuovo_gest = mysqli_real_escape_string($mysqli, strtoupper($row['gestore']));
echo "<option value='$nuovo_gest'>$nuovo_gest</option>";
}
?>
</select></td>

<td><b>Tipo Cliente</b></td>
<td><select name="tipo_pren" required="required">
<?php
$sql4 = "SELECT * FROM tipoprenotazione WHERE tipopren != '$tipo_pren' ORDER BY tipopren ASC";
$rs4 = $mysqli->query($sql4);
echo "<option value='$tipo_pren'>$tipo_pren</option>";
while ($row = $rs4->fetch_array(MYSQLI_ASSOC)) {
$tipopren = mysqli_real_escape_string($mysqli, strtoupper($row['tipopren']));
echo "<option value='$tipopren'>$tipopren</option>";
}
?>
</select></td>
</tr>


<tr>
<td><b>Modifica Lamentato</b></td>
<td><textarea maxlength="90" name="note" required="required"><?= $note; ?></textarea></td>
</tr>
</table>
</fieldset>

<input type="submit" name="submit" class="bottone" value="Aggiorna Appuntamento">
<div class="clear"></div>
</form>
 
intanto ti schematizzo come farei io la struttura
PHP:
if (isset($_POST['submit'])) {
    // controllo dati
    // esecuzione query
    // messaggio
    die();
    // inutile andare avanti
}
if (isset($_GET['id'])) {
    // query per estrazione dati
    // form
} else {
    // senza id non puoi fare niente
    die("mi manca l'id");
}
dopo ti posto cosa farei nel submit.
Non serve l'escape quando estrai i dati dalla tabella.
 
non ho avuto modo di testare ma piu o meno avrei fatto cosi
PHP:
<?php
$mysqli = new mysqli($host, $user, $password, $database);
if (isset($_POST['submit'])) {

    function pulisci($stringa, $mysqli) {
        return $mysqli->real_escape_string(trim(strip_tags(strtoupper($stringa))));
    }

    foreach ($_POST as $key => $value) {
        $_POST[$key] = pulisci($value, $mysqli);
    }
    extract($_POST);

    $sql2 = "UPDATE appuntamenti SET "
            . "veicolo = '$veicolo', "
            . "data = STR_TO_DATE('$data', '%d/%m/%Y'), "
            . "ora = '$ora', "
            . "cliente = '$cliente', "
            . "telefono = '$telefono', "
            . "gestore = '$gestore', "
            . "tipo_pren = '$tipo_pren', "
            . "stato_pren = '$stato_pren', "
            . "note = '$note' "
            . "WHERE idappuntamento = '$id'";
    // l'id lo metti come input hidden nel form cosi ti arriva in post

    if (!$mysqli->query($sql2)) {
        echo "<div class='error'>errore nell'esecuzione della query : " . $mysqli->error . "</div>";
        echo "<a href='index.php?page=lista_appuntamenti_oggi&tipo=tutti&data=oggi'> torna alla lista </a>";
    } else {
        echo "<div class='success'>Appuntamento aggiornato con successo! Attendi..</div>";
        header("refresh:5;url=index.php?page=lista_appuntamenti_oggi&tipo=tutti&data=oggi");
    }
    die();
}
if (isset($_GET['id'])) {
    $id = (int) $_GET['id'];
    $sql1 = "SELECT * FROM appuntamenti WHERE idappuntamento = '$id' LIMIT 1";
    $res1 = $mysqli->query($sql1);
    extract($res1->fetch_assoc());
    ?>
    qui il form
    <?php
}
?>
il bello della programmazione è che lo stesso risultato lo puoi ottenere in cento modi diversi tutti più o meno validi.
Per risolvere il tuo problema senza stravolgere il codice basta che aggiungi l'escape dopo il post anche alla variabile $veicolo
ps
la mia versione per popolare le select
PHP:
<select name="stato_pren" required="required">
    <?php
    $sql5 = "SELECT * FROM stato_pren ORDER BY stato ASC";
    $rs5 = $mysqli->query($sql5);
    while ($row = $rs5->fetch_assoc()) {
        echo "<option value='" . $row['stato'] . "'";
        if ($row['stato'] == $stato_pren) {
            echo " selected='selected' ";
        }
        echo ">" . $row['stato'] . "</option>";
    }
    ?>
</select>
pps
evita di usare gli short tag di php <?= e usa la versione estesa <?php echo : non tutti i server li hanno abilitati
 
Un buon pomeriggio a tutti,
ho modificato tutto lo script applicando quanto suggerito, se effettuo il var_dump della query prima dell'esecuzione sembra essere ok

PHP:
string(286) "UPDATE appuntamenti SET veicolo = 'PEGOUT', data = STR_TO_DATE('2017-05-23', '%d/%m/%Y'), ora = '08:30:00', cliente = 'PINCO PALLI', telefono = '32451236521', gestore = 'NESSUNO', tipo_pren = 'CLIENTE PRIVATO', stato_pren = 'LAVORAZIONE', note = 'CAMBIO', WHERE idappuntamento = '1216' "

appena tolgo il var_dump ottengo questo errore:

PHP:
errore nell'esecuzione della query : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE idappuntamento = '1216'' at line 1

questa la query:

PHP:
if (isset($_POST['submit'])) {
   
        function pulisci($stringa, $mysqli){
            return $mysqli->real_escape_string(trim(strip_tags(strtoupper($stringa))));
        }
           
        foreach ($_POST as $key => $value) {
            $_POST[$key] = pulisci($value, $mysqli);
        }  
        extract($_POST);
       
       
        $sql2 = "UPDATE appuntamenti SET "
                . "veicolo = '$veicolo', "
                . "data = STR_TO_DATE('$data', '%d/%m/%Y'), "
                . "ora = '$ora', "
                . "cliente = '$cliente', "
                . "telefono = '$telefono', "
                . "gestore = '$gestore', "
                . "tipo_pren = '$tipo_pren', "
                . "stato_pren = '$stato_pren', "
                . "note = '$note', "
                . "WHERE idappuntamento = '$id'";
      
        var_dump ($sql2);
        exit;
 
hai messo una virgola in più
PHP:
. "note = '$note', "
essendo l'ultimo camp prima della where va tolta.
l'errore infatti ti suggerisce
syntax to use near 'WHERE
 
hai messo una virgola in più
PHP:
. "note = '$note', "
essendo l'ultimo camp prima della where va tolta.
l'errore infatti ti suggerisce

Grazieee mille criric, soprattuto per l'estrema pazienza ...
ci sono quasi, ho un problema nel formato della data, se trasformo la query eliminando
strtotime, recupero correttamente la data solo che nel formato 2017-05-23 e poi
non capisco il senso di quel die() dopo l'esecuzione della query ...

In sostanza se eseguo la query, gli appuntamenti adesso si aggiornano alla perfezione solo che resta
poi fermo sulla scritta "Appuntamento aggiornato con successo! Attendi.."

PHP:
        $sql2 = "UPDATE appuntamenti SET "
                . "veicolo = '$veicolo', "
                . "data = STR_TO_DATE('$data', '%d/%m/%Y'), "
                . "ora = '$ora', "
                . "cliente = '$cliente', "
                . "telefono = '$telefono', "
                . "gestore = '$gestore', "
                . "tipo_pren = '$tipo_pren', "
                . "stato_pren = '$stato_pren', "
                . "note = '$note' "
                . "WHERE idappuntamento = '$id' ";
        //var_dump ($sql2);
        //exit;
    
        if (!$mysqli->query($sql2)) {
            echo "<div class='error'>errore nell'esecuzione della query : " . $mysqli->error . "</div>";
            echo "<a href='index.php?page=lista_appuntamenti_oggi&tipo=tutti&data=oggi'> torna alla lista </a>";
        } else {
            echo "<div class='success'>Appuntamento aggiornato con successo! Attendi..</div>";
            header("refresh:5;url=index.php?page=lista_appuntamenti_oggi&tipo=tutti&data=oggi");
        }
        die();
    }
        if (isset($_GET['id'])) {
        $id = (int) $_GET['id'];
        $sql1 = "SELECT * FROM appuntamenti WHERE idappuntamento = '$id' LIMIT 1";
        $res1 = $mysqli->query($sql1);
        extract($res1->fetch_assoc());
    ?>

P.s
Purtroppo, ancora non utilizzo bootstrap e se non sbaglio la classe success fa parte del framework ...
 
die() serve per interrompere il flusso della pagina : inutile andare avanti una volta fatta la query e informato del risultato.
per la data puoi fare cosi
PHP:
. "data = STR_TO_DATE('" . strtotime($data) . "', '%d/%m/%Y'), "
l'header refresh dovrebbe funzionare, strano! prova a metterlo da solo in una pagian e vedi che fa. dovrebbe scattare dopo 5 secondi
 
die() serve per interrompere il flusso della pagina : inutile andare avanti una volta fatta la query e informato del risultato.
per la data puoi fare cosi
PHP:
. "data = STR_TO_DATE('" . strtotime($data) . "', '%d/%m/%Y'), "
l'header refresh dovrebbe funzionare, strano! prova a metterlo da solo in una pagian e vedi che fa. dovrebbe scattare dopo 5 secondi

Adesso passa la data cosi :
PHP:
errore nell'esecuzione della query : Incorrect datetime value: '1495490400' for function str_to_date

e quando la recupero nella input la mostra cosi:
http://clip2net.com/s/3KG2DNn
 

Discussioni simili