Sto leggendo il libro "Sviluppare applicazioni con php e mysql" di Kevin Yank e trovo difficoltà a capire le magic_quotes_gpc.
Allora ho capito che è un sistema di protezione contro Sql injection che analizza i valori inviati dal browser e inserisce dei backslash davanti a qualsiasi carattere "pericoloso" come l'apostrofo.
Il libro dice che bisogna disabilitare l'opzione magic_quotes_gpc nel file php.ini e poi gestirla nel codice php.
Quindi da come ho capito,lasciando abilitata l'opzione magic_quotes_gpc,nel momento in cui scrivo in un input text un nome ed inserisco un apostrofo automaticamente viene aggiunto un backslash,ma perchè a me non succede?
Esempio. scrivo nal campo di testo: d'alessandro e salvo il valore in una tabella.
Ma quando vado a verificare nella tabella il valore inserito viene scritto correttamente d'alessandro,invece secondo il libro dovrebbe essere d\'alessandro.
Perchè non aggiunge il backslash?
Allora ho capito che è un sistema di protezione contro Sql injection che analizza i valori inviati dal browser e inserisce dei backslash davanti a qualsiasi carattere "pericoloso" come l'apostrofo.
Il libro dice che bisogna disabilitare l'opzione magic_quotes_gpc nel file php.ini e poi gestirla nel codice php.
Quindi da come ho capito,lasciando abilitata l'opzione magic_quotes_gpc,nel momento in cui scrivo in un input text un nome ed inserisco un apostrofo automaticamente viene aggiunto un backslash,ma perchè a me non succede?
Esempio. scrivo nal campo di testo: d'alessandro e salvo il valore in una tabella.
Codice:
$sql = 'INSERT INTO tabella SET
valore="' . $_POST['nome'] . '"';
$pdo->exec($sql);
Ma quando vado a verificare nella tabella il valore inserito viene scritto correttamente d'alessandro,invece secondo il libro dovrebbe essere d\'alessandro.
Perchè non aggiunge il backslash?