再问个mysql跟PHP的问题。

来源:百度知道 编辑:UC知道 时间:2024/06/13 14:24:08
第一个问题在这。http://zhidao.baidu.com/question/125830756.html
好像没办法解决,现在第二个解决方案是,在我网页读取数据库内容的时候,做个判断。比如表title中的url字段含有"<"这个符号,那我就不读取这个内容。
<?php if ($myrow[title]=='要排除的字符'){?><?echo '百度';?><?php } else {?><?echo(FSubstr($myrow[title]));?><?php }?>
要怎么写判断语句,只要包含要排除的字符就不要读取,而不是完全相等。有解决方案的请2边都回答。我都给你最佳。

没看懂你的问题。
不过像“<”这样的特殊,如果要显示在HTML里,要进行转换。
一般像“<”这样的字符,如果要显示在网页里,要先转换再存储到数据库里。如下:
"&", "& amp;"
";","& #59;"
"<", "& lt;"
">", "& gt;"
Chr(34), "& quot;"'双引号
CHR(39),"& #39;"'单引号
,"\","& #92;"
"--","& #45;& #45;"
" ", "& nbsp;"
CHR(10),"<br>"
前面的是正常的字符,后面是要转换对应的。注意,由于百度显示原因,请把&号后面的空格去掉。后面的代码放到HTML里显示出来,正好是前面的字符。

在写入数据库的时候,就对数据中特殊字符进行转换。在表单向服务器提交数据时,这样的转换一般都会有的。只要这个数据要显示在页上,就必须有。

你这个不是最好的解决方案!
你最好是在用户写入数据库的时候,就进行过滤!

如果你非要这么做,可以用stripos()函数
if(stripos($myrow['title'],"<")!==FALSE)
{
//正常读取
}
else
{
//不读取
}

其实这个问题,把那个得到的值,在写入数据库之前,进行判断就行了,用一个正则表达式进行判断,具体的代码我只给一个小小的提示吧;你自己到网上去找有关表达式的资料就会明白的啦。

转换就行了,奇怪了,这也算问题了?防注入一百年前都有了。<