Ver Mensaje Individual
  #2 (permalink)  
Antiguo 09/08/2006, 09:15
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
Lo importante para evitar problemas de SQL sería "escapar" los caracteres tipo comillas dobles o simples .. etc.

Esto en PHP se hace con "addslashes()" siempre y cuando no vengan ya esos caracteres "escapados" (por uso por ejemplo de "magic_quote_gpc o runtime")

En los comentarios de la función addslashes() de PHP tienes ejempolos interesantes como:

Cita:
Luiz Miguel Axcar (lmaxcar at yahoo dot com dot br)
01-Sep-2005 09:16
Hello,

If you are getting trouble to SGDB write/read HTML data, try to use this:

Código PHP:
<?php

//from html_entity_decode() manual page
function unhtmlentities ($string) {
   
$trans_tbl =get_html_translation_table (HTML_ENTITIES );
   
$trans_tbl =array_flip ($trans_tbl );
   return 
strtr ($string ,$trans_tbl );
}

//read from db
$content stripslashes (htmlspecialchars ($field['content']));

//write to db
$content unhtmlentities (addslashes (trim ($_POST['content'])));

//make sure result of function get_magic_quotes_gpc () == 0, you can get strange slashes in your content adding slashes twice

//better to do this using addslashes
$content = (! get_magic_quotes_gpc ()) ? addslashes ($content) : $content;

?>
En general .. se trata de ver si el estado de "magic_quote_gpc" para ver si corresponde añadir más "escapes" o no (es la última línea de este código).

(De la referencia de php.net sobre get_magic_quote_gpc():)
Cita:
Ejemplo 1. Ejemplo de get_magic_quotes_gpc()

Código PHP:
<?php
echo get_magic_quotes_gpc();        // 1
echo $_POST['apellido'];            // O\'reilly
echo addslashes($_POST['apellido']); // O\\\'reilly

if (!get_magic_quotes_gpc()) {
   
$apellido addslashes($_POST['apellido']);
} else {
   
$apellido $_POST['apellido'];
}

echo 
$apellido// O\'reilly
$sql "INSERT INTO apellidos (apellido) VALUES ('$apellido')";
?>


Por otro lado .. Si usas Mysql por ejemplo tiene una función equivalente diseñada para Mysql denominada:

mysql_real_escpape_string()
www.php.net/mysql_real_escpape_string


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.