我可以帮您进行翻译。以下是需要翻译的内容:
如果用户输入类似于
在我的注册表单中,有一个包含例如名称
字段的字段,它将存储在名为user_name varchar(20)
的数据库字段中。很明显,我应该验证用户输入。如果我首先使用下面的代码验证此字段:
<?php
if(emptiy($_pos['name']) || strlen($_post['name'])>20)
//send an not valid input error
else{
$name=htmlspcialchars($_post['name']);
//check for sql injection;
//insert name into database;}
?>
如果用户输入类似于
<i> some one </i>
这样的名称,字符串长度为17,那么else部分将执行,名称将变为<i> some one </i>
,长度为28,这将在插入到数据库时产生错误。此时,如果我向用户发送一个错误,告诉他/她的输入太长了,他/她会感到困惑。我该怎么办?最好的方法是什么?
mysqli_real_escape_string
或类似方法),并在输出时进行编码。这是因为如果您将其作为HTML或JSON或其他任何内容输出,则需要不同的编码。 - Niet the Dark Absolmysqli_real_escape_string()
这样的函数,我使用 PDO,它更加安全。 - naazanin