El tema es que en mi web hay usuarios que empiezan o terminan en espacios y si uso los forms con mi función anti inyección, esos espacios no son reconocidos.
Por lo tanto si yo escribo el usuario " pepe" (sin las comillas), me lo reconoce como "pepe" y eso hace que se intente acceder a otro usuario.
Yo no quiero prohibir la crecion de cuentas con espacios, sino que los forms los reconozcan.
Mis forms tiene el siguiente formato:
Código PHP:
<td><FORM METHOD=POST ACTION="<?php require 'config.php'; echo $_SERVER['PHP_SELF']; ?>?act=register">
Usuario:
<input name="user" type="text" id="user" />
Contraseña:
<input name="pass" type="text" id="pass" />
<input type="submit" name="Submitreg" value="Crear Cuenta" />
</form>
</td>
</tr>
<tr>
<td>Resultados: <?php require 'config.php';
if ($_GET['act'] == 'register')
{
$user = anti_injection($_POST['user']);
$pass = anti_injection($_POST['pass']);
if (valida(Array($user,$pass)) == true)
{
Código PHP:
<?php require 'config.php';
function anti_injection($sql)
{
$sql = preg_replace(sql_regcase("/(from|select|insert|delete|where|drop table|show tables|#|\*|--|\\\\)/"),"",$sql);
$sql = trim($sql);
$sql = strip_tags($sql);
$sql = addslashes($sql);
return $sql;
}
// Verificar Campos Vacios
function valida($campos){
foreach($campos as $c){
if(empty($c)){
echo "Llena todos los campos.";
return false;
}else{
return true;
}
}
}
?>
Muchas Gracias.