PDA

Visualizza la versione completa : Evitare SQL injection e altro...inserimento dati non corretto


jabjoint
30-01-2021, 17:34
Ciao a tutti,

Rifacendomi alla guida qui:

https://www.html.it/pag/64447/pdo-operazioni-in-scrittura-sul-database/

Tramite il seguente codice:




$query = "INSERT INTO Iscritti (nome, cognome, cellulare) VALUES (':name',':surn',':cell')";

$stmt = $pdo->prepare($query);

$stmt->bindParam(':name', $nome, PDO::PARAM_STR);
$stmt->bindParam(':surn', $cognome, PDO::PARAM_STR);
$stmt->bindParam(':cell', $cellulare, PDO::PARAM_STR);

$stmt->execute();

$pdo = null;

echo "Iscrizione avvenuta con successo!";



Tento di inserire i dati, tuttavia vengono inseriti al posto dei dati contenuti nelle variabili i seguenti: ":name", ":surn" e ":cell"
Come se il bindParam non abbia effetto...dovrei usare bindValue?

$nome, $cognome, $cellulare sono le variabili contenenti i dati. Ed anche i nomi relativi nel database.

optime
30-01-2021, 18:06
è più un problema di php, IMHO

sspintux
30-01-2021, 18:24
per quanto di PHP ne sappia meno di una sfoglia di cipolla , ad occhio sembra giusta;
non è che per il db che stai usando , come segnaposto per i parametri devi usare il '?';

tipo così ?

SELECT name, colour, calories
FROM fruit
WHERE calories < ? AND colour = ?')

HTH

jabjoint
30-01-2021, 19:29
per quanto di PHP ne sappia meno di una sfoglia di cipolla , ad occhio sembra giusta;
non è che per il db che stai usando , come segnaposto per i parametri devi usare il '?';

tipo così ?

SELECT name, colour, calories
FROM fruit
WHERE calories < ? AND colour = ?')

HTH

Intendi nella ricerca a posteriori del codice?
LA ricerca e' effettuata nel phpADMIN.

jabjoint
30-01-2021, 19:30
@optime Quindi?

jabjoint
30-01-2021, 20:06
Risolto COMUNQUE...

sspintux
30-01-2021, 20:18
Risolto COMUNQUE...

COMUNQUE,
anche se non obbligatorio,
è buona norma in ossequio allo spirito dei forum
riportare la soluzione per chi avesse lo stesso problema

jabjoint
31-01-2021, 10:51
COMUNQUE,
anche se non obbligatorio,
è buona norma in ossequio allo spirito dei forum
riportare la soluzione per chi avesse lo stesso problema
Tolti gli apici nella query superflui funziona.

optime
31-01-2021, 11:19
@optime Quindi?

quindi sarebbe dovuto essere postato nella sezione PHP :ciauz:

jabjoint
31-01-2021, 14:17
quindi sarebbe dovuto essere postato nella sezione PHP :ciauz:

In verità è un problema di mysql e quelli son backtik non apici, ma l'ho scoperto in seguito. Almeno spero di aver capito...

Loading