PDA

View Full Version : [PHP] errore su modifica dati


prinzart
24-02-2007, 19:51
ciao la modifica dei dati mi da errore:


<?
if ($riga==4){
$sql = "UPDATE schedario SET corso_base='$corso_base', corso_avanzato='$corso_avanzato', corso_deco='$corso_deco', giorno1_base='$giorno1_base', giorno2_base='$giorno2_base', giorno1_avanzato='$giorno1_avanzato', giorno2_avanzato='$giorno2_avanzato', giorno1_deco='$giorno1_deco', luogo_base='$luogo_base', luogo_avanzato='$luogo_avanzato', luogo_deco='$luogo_deco', nome='$nome', cognome='$cognome', n_attestato_base='$n_attestato_base', n_attestato_avanzato='$n_attestato_avanzato', n_attestato_deco='$n_attestato_deco', attitudine1_base='$attitudine1_base', tip1_base='$tip1_base', limatura1_base='$limatura1_base', limatura1_avanzato='$limatura1_avanzato', gel1_base='$gel1_base', gel1_avanzato='$gel1_avanzato', cap_diagnosi_avanzato='$cap_diagnosi_avanzato', mont_cartina1_avanzato='$mont_cartina1_avanzato', fresa1_avanzato='$fresa1_avanzato', lav_finito1_base='$lav_finito1_base', lav_finito1_avanzato='$lav_finito1_avanzato', attitudine2_base='$attitudine2_base', tip2_base='$tip2_base', limatura2_base='$limatura2_base', limatura2_avanzato='$limatura2_avanzato', gel2_base='$gel2_base', gel2_avanzato='$gel2_avanzato', mont_cartina2_avanzato='$mont_cartina2_avanzato', fresa2_avanzato='$fresa2_avanzato', lav_finito2_base='$lav_finito2_base', lav_finito2_avanzato='$lav_finito2_avanzato', disegno1_deco='$disegno1_deco', disegno2_deco='$disegno2_deco', disegno3_deco='$disegno3_deco', disegno4_deco='$disegno4_deco', disegno5_deco='$disegno5_deco', lib_interpretazione1_deco='$lib_interpretazione1_deco', lib_interpretazione2_deco='$lib_interpretazione2_deco', lib_interpretazione3_deco='$lib_interpretazione3_deco', pulizia_lavoro_deco='$pulizia_lavoro_deco', WHERE id=$id";
mysql_query($sql,$conn) or die ("errore");
$msg = "modifiche effettuate";
}
?>


e nel pulsante della modifica ho messo questo:


<input type="hidden" name="id" value="<?=$allievo?>"><input type="hidden" name="riga" value="4">
<input type="submit" class="pulsante" value="modifica">


perņ quando clicco sul pulsante mi compare la scritta "errore" PERCHE'?

andbin
24-02-2007, 20:42
ciao la modifica dei dati mi da errore:Ma le varie variabili che usi, es. $corso_base, $corso_avanzato, ecc... ti arrivano direttamente dalla request?? (allora hai register_globals on ... cosa che non č il massimo).
Ma non č questo il punto. Non vedo alcuna operazione di "escape" delle stringhe! Se ad esempio nella stringa contenuta in $corso_base ci fosse un apice singolo??? Patatrac!!
Dovresti validare le stringhe e farne l'escape prima di comporre la query.

prinzart
24-02-2007, 20:54
Grazie di avermi risposto, perņ sono un neofita di php, e non ho capito niente di quello che hai scritto.

andbin
24-02-2007, 21:04
Grazie di avermi risposto, perņ sono un neofita di php, e non ho capito niente di quello che hai scritto.Ok, facciamo un passo indietro: tutte quelle variabili come $corso_base, $corso_avanzato ecc.., da dove ti arrivano? (č giusto per capire ... ora posso solo immaginare)

prinzart
24-02-2007, 21:25
ho risolto, dovevo levare la virgola che stava prima di WHERE id=$id";
Grazie :) ciao

Stiwy.NET
27-02-2007, 15:41
ho risolto, dovevo levare la virgola che stava prima di WHERE id=$id";
Grazie :) ciao

Quello che ti consigliava Andbin č di studiare cosa sono le sqlinjection... informati su queste brutte cose perchč prima o poi ci sbatterai il muso...:sofico: