Buenas,
Les comento que se me hace imposible asegurar el siguiente código, pertenece a un live search. Al colocar el símbolo de porcentaje (%) la query devuelve todos los resultados posibles, osea es inseguro.
Código PHP:
$q = $_REQUEST['email'];
$q = mysqli_real_escape_String($con, $q);
$sql = mysqli_query($con, "SELECT id, email FROM web_cert WHERE activa = 0 and email LIKE '%$q%' ORDER BY id LIMIT 0,5");
$i = 0;
$num = mysqli_num_rows($sql);
if($num)
{
while($i < $num and $row = mysqli_fetch_assoc($sql))
{
$id = $row['id'];
$email = $row['email'];
echo "<li><a href=./vercertificacion?id=".$id." >".$email."</a></li>";
}
}
else { echo "<li>No hay resultados</li>"; }
Intenté asegurar la consulta de las siguientes maneras, pero ninguna dio resultado. También intenté usando sprintf pero la consulta se "distorciona", osea en la parte del "LIKE '%$q%'" no funciona el "LIKE %%s%".
Código PHP:
$q = htmlentities($q, ENT_QUOTES,'UTF-8');
$q = preg_replace("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/", " ", $q);
$q = stripslashes($q);