Ver Mensaje Individual
  #4 (permalink)  
Antiguo 29/10/2008, 08:45
neogabo
 
Fecha de Ingreso: junio-2008
Mensajes: 31
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Warning: sprintf() [function.sprintf]: Too few arguments

Te hago ver un par de detalles

1 - addslashes no te asegura evitar sql injection( si no sabes q es eso averigualo! )
2 - Snd234 te explico bien que como funciona sprintf


lo q tenes que hacer es :

Código PHP:

$colname_to 
"1";
if (isset(
$_POST['nombre']))
{
   if ( 
get_magic_quotes_gpc() )
   {
      
$nameToSearch mysql_real_escape_stringstripslashes($_POST['nombre']) , $objConex );
   }else{
      
$nameToSearch mysql_real_escape_string$_POST['nombre'] , $objConex );
   }
}
//OJO: $radiobuttom no esta verificado!

$query"

SELECT nombre, icono FROM perros WHERE nombre LIKE '%"
.$nameToSearch."%'
UNION SELECT nombre, icono FROM gatos WHERE nombre LIKE '"
.$radiobutton."'";


/// 
en el caso de que quieras usar sprintf:

Código PHP:
$query =  sprintf"

SELECT nombre, icono FROM perros WHERE nombre LIKE '%s'
UNION SELECT nombre, icono FROM gatos WHERE nombre LIKE '%s'  "
mysql_real_escape_string$_POST['nombre'] , $objConex )
mysql_real_escape_string$_POST['radiobuttom'] , $objConex )

   ) 
Otros detalles, radiobuttom puede tener la informacion que cualquiera quiera, al igual que $_POST['nombre']. Quiero decir que verifiques q los 2 campos no tengan valores extraños antes de meterlos en una sentencia Sql.

Esto que te puse arriva:
Código PHP:
mysql_real_escape_string$_POST['nombre'] , $objConex 
tambien es incorrecto. Tenes que verificar antes que $_POST['nombre'] no posea valores que no deseas. Si es un nombre usa la Funcion ctype_alnum.

A los radio ( los inputs html ) no le pongas mas que valores numericos. Despues con php hace lo q tengas q hacer. Por Ej:

Código PHP:
If ( $_POST['radio'] == )
{
     
//HACER ALGO1
}else{
     
//HACER ALGO2

Otra cosa
Cuando haces un FROM table WHERE nombre LIKE 'algo', el LIKE necesita los valores '%$variable%' para buscar por izq y por derecha aproximaciones a datos q esten en la bse de datos. Si pones LIKE '%$variable' buscara por izq, si pones '$variable%' buscara por derecha y si pones '%$variable%' por los 2 lados.