working sirve que para not mysql_real_escape_string escapar apostrofe alternative php html post get

php - sirve - mysql_real_escape_string pdo



$_POST y $_GET convertir comillas('') a barras invertidas+comillas(/') (5)

Deberías llamar a esta función al principio.
Ya no tiene que preocuparse por las barras diagonales inversas, independientemente de la configuración de php.ini .

function gpc_clean() { if (get_magic_quotes_gpc()) { $arr = array(); if (isset($_GET)) $arr[] =& $_GET; if (isset($_POST)) $arr[] =& $_POST; if (isset($_COOKIE)) $arr[] =& $_COOKIE; array_walk_recursive($arr, function (&$v) { $v = stripslashes($v); }); } }

Tengo este código:

<?php echo $_GET[''user'']; ?> <html > <head> </head> <body> <form method = "GET" action="file.php"> <input type = "text" name = "user"><br> <input type = "submit" value ="submit"><br> </form> </body> </html>

cuando escribo '' en el cuadro de texto, imprime /' lugar de '' .
por ejemplo, si ''hello'' , imprimo /'hello/' .
Entonces, ¿cómo puedo arreglar eso?


Las barras se agregaron porque tiene magic_quotes_gpc=On en su php.ini . Tenga en cuenta que esta característica se ha eliminado y debe desactivarla en su php.ini . Era una antigua característica de seguridad, pero no debería confiar en ella. En su lugar, escriba un código para usted que valide todas las entradas y use declaraciones preparadas cuando pase entradas a consultas SQL o use escapeshellarg() si pasa entradas a scripts de shell.

Sin embargo, use stripslashes() para eliminar las barras inclinadas:

echo stripslashes($_GET[''user'']);


Parece que tienes citas mágicas establecidas en tu intérprete de PHP. Se pueden desactivar a través de la configuración ini.


Use este código para que funcione independientemente de si la función está activada o desactivada:

function remove_magic_quotes($input) { if(get_magic_quotes_gpc()) $input= stripslashes($input); return $input; }


echo stripslashes($_GET[''user'']);