"...Y otra cosa lo del https ¿encripta los datos mas relevantes? ¿es un servicio por el cual hay que pagar?..."
Si y si; pero este ultimo si puede ser un no, depende de si sabes como crear un certificado e instalarlo en tu propio servidor de validacion; normalmente los servidores de alojamiento no te dejaran instalar tus propios certificados sino que tendras que comprarselos, puede que haya alguna excepcion, pero si que permiten la direccion de la validacion. Si tienes la web en tu propio servidor puedes obtener algun certificado gratis (buscando por ahi seguro que encontraras alguna web que lo haga) e instalartelo en tu propio servidor. Puedes buscar mas informacion acerca de todo esto.
Ahora lo otro: planteate usar indices para las busquedas y olvidar los textos. Si aun asi quieres seguir usando textos en teoria comprovando lo basico no tendría que saltarte ningun error, y ademas son las mismas comprovaciones que tendrias que hacer si usaras indices.
Replantea tu sistema: evita las comparaciones contra texto entrado manualmente:
Código PHP:
Ver originalif ($selectapar != "Todos los artículos" or "niños" etc...
Esto no vale, es decir que funciona pero mejor no lo hagas. Usa un array o mejor usa una nueva tabla donde tengas definidos los tipos, cada tipo con un indice y una descripcion. Luego implementas una funcion que determine si el tipo solicitado existe en la lista.
Si te da un error de mysql es que no has validado correctamente los valores de retorno. En cualquier consulta SELECT debes esperar que retorne 2 tipos de dato: o un result o un boleano falso:
Código PHP:
Ver original//construyes la query con los datos escapados
$selectapar = $mysqli->real_escape_string($selectapar);
$query = sprintf("SELECT * FROM tabla WHERE selectapar=\"%s\"", $selectapar);
//ejecutas y evaluas la consulta
if(($result = $mysqli->query($query)) === FALSE) {
//se produjo un error
}
else {
while($fila = $result->fetch_array(MYSQLI_ASSOC)) {
//volcado de datos
}
$result->free();
}
Saludos
vosk