佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1021|回复: 15

html + php 疑问

[复制链接]
发表于 13-2-2009 12:29 PM | 显示全部楼层 |阅读模式
想请问...

1)
在html text field..
那边..
如果有人输入

Hello's

如果我不mysql_real_escape_string() 和 get_magic_quotes_gpc
Hello's是不能顺利进入database..对吗??

现在问题是...
我还没进database时,
我要validate user.. 输入时的权限...

preg_match("#^[A-Za-z0-9-'.()&,/ ]+$#",$bname)

我写了这个code..
但是.. 在html里..
当user 输入 ' 就会自动变成 \'
我试过在preg_match加入 \
但是preg_match好像不接受 \
那我应该怎么办呢??


2)
除此之外...
我的database顺利进入 Hello's
因为我用了 get_magic_quotes_gpc 和 mysql_real_escape_string()
当user去edit page.. 我从database呼叫 Hello's
我在textfield.... <input type='text' class='' name='bankName' maxlength='40' size='40' value='$bankName'>
结果我的data就变成 Hello
's 不见了..

有什么办法可以解决呢??

[ 本帖最后由 wcpon 于 13-2-2009 01:20 PM 编辑 ]
回复

使用道具 举报


ADVERTISEMENT

发表于 13-2-2009 12:42 PM | 显示全部楼层
Go to find about this http://www.php.net/manual/en/function.get-magic-quotes-gpc.php

it would be help for you.


版主按:請用中文發表!
回复

使用道具 举报

 楼主| 发表于 13-2-2009 01:18 PM | 显示全部楼层
原帖由 junkiet 于 13-2-2009 12:42 PM 发表
Go to find about this http://www.php.net/manual/en/function.get-magic-quotes-gpc.php

it would be help for you.


现在不是这个问题..
我已经有了这个function code..
可以顺利把 '  "  进入database..
现在问题是 HTML text field问题..

希望你可以读清楚我的问题...
帮帮忙....
回复

使用道具 举报

发表于 13-2-2009 01:39 PM | 显示全部楼层
preg_match 是用 // 吧

在 input 里用 "$xxxx"

[ 本帖最后由 vampcheah 于 13-2-2009 01:42 PM 编辑 ]
回复

使用道具 举报

 楼主| 发表于 13-2-2009 02:40 PM | 显示全部楼层
原帖由 vampcheah 于 13-2-2009 01:39 PM 发表
preg_match 是用 // 吧

在 input 里用 "$xxxx"


你的意思是什么呢?
preg_match 可以用 //
但是 \ 就不可以...
你知道还有什么方法吗??

你说的 input $xxx 是什么意思???
如果你的data 里面有 "he"llo
怎么办?
回复

使用道具 举报

发表于 13-2-2009 02:57 PM | 显示全部楼层
I know your problem

don't use "'" single quote, it will get <input value='Hello's'>, did you see got 3 single quote?so it will display only "Hello", and miss "'s"

try to make it like, <input value="Hello's">, so it will not confuse by itself, but it also cant work for  double quote too.

[ 本帖最后由 junkiet 于 13-2-2009 03:31 PM 编辑 ]
回复

使用道具 举报

Follow Us
 楼主| 发表于 13-2-2009 04:44 PM | 显示全部楼层
原帖由 junkiet 于 13-2-2009 02:57 PM 发表
I know your problem

don't use "'" single quote, it will get , did you see got 3 single quote?so it will display only "Hello", and miss "'s"

try to make it like, , so it will not confuse by itsel ...


为什么会这样的呢??
我刚才有试过 facebook...我尝试 changed profile...
我输入 "kuala lumpur", 'kuala lumpur', "kuala" lumpur, or 'kuala' lumpur
但是都没有问题... 都很顺利 display it from input field..

php 有没有一些special code 是可以解决这个问题的呢???
因为如果有user 要输入 Sister's
到时edit的时候在input field 就会显示 Sister 而已...
而 's 就不见了....
我试过 str_replace(" ' "," \' ",$swifts);
但是还是不可以....
回复

使用道具 举报

发表于 13-2-2009 06:03 PM | 显示全部楼层
你要先明白为什么会消失
你的 <input> 里 已经变成  value='kuala lumpur's'
那么你的 s 就不见了咯
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 14-2-2009 03:18 PM | 显示全部楼层
原帖由 vampcheah 于 13-2-2009 06:03 PM 发表
你要先明白为什么会消失
你的  里 已经变成  value='kuala lumpur's'
那么你的 s 就不见了咯


就是咯..
我就是知道这个问题..
但是我想了很多方法都解决不到....
所以想请教你...
回复

使用道具 举报

发表于 14-2-2009 05:32 PM | 显示全部楼层

回复 9# wcpon 的帖子

<?php
echo "<form method=post action='index1.php'><input type=text name='x' value=''><input type=submit name='cmdok' value='ok'></form>";
if(isset($_POST['cmdok']) && $_POST['cmdok']== 'ok'){
$y = $_POST['x'];
echo $y;
}
?>

放kuala lumpur's是可以的。
回复

使用道具 举报

 楼主| 发表于 14-2-2009 07:31 PM | 显示全部楼层
你这个方法..
很不全面....

但是也谢谢你的协助...
这里没有人会了吗??
回复

使用道具 举报

 楼主| 发表于 15-2-2009 01:33 PM | 显示全部楼层
有没有人会解决我的问题啊??
回复

使用道具 举报

发表于 15-2-2009 02:14 PM | 显示全部楼层

回复 12# wcpon 的帖子

应该是这个吧?
<?php
$str = "Kuala Lumpur's";
echo htmlspecialchars($str, ENT_QUOTES);
echo "<input type=text name='x' value='".htmlspecialchars($str, ENT_QUOTES)."'>";
?>

[ 本帖最后由 asimo 于 15-2-2009 02:25 PM 编辑 ]
回复

使用道具 举报

 楼主| 发表于 17-2-2009 02:30 PM | 显示全部楼层
等我试下先..
谢谢你...
回复

使用道具 举报

发表于 17-2-2009 03:07 PM | 显示全部楼层
不是说了吗?
<input value="Kuala Lumpur's">

注意 “ 和 ' 的运用
回复

使用道具 举报

发表于 18-2-2009 03:38 AM | 显示全部楼层

回复 15# vampcheah 的帖子

你要知道(')tag是HTML的key symbol. 要用它只有变成& #039;

其次,他所要问的是
1)
在html text field..
那边..
如果有人输入

Hello's

如果我不mysql_real_escape_string() 和 get_magic_quotes_gpc
Hello's是不能顺利进入database..对吗??

现在问题是...
我还没进database时,
我要validate user.. 输入时的权限...

preg_match("#^[A-Za-z0-9-'.()&,/ ]+$#",$bname)

我写了这个code..
但是.. 在html里..
当user 输入 ' 就会自动变成 \'
我试过在preg_match加入 \
但是preg_match好像不接受 \
那我应该怎么办呢??

答: 可以直接转换 input  (')去& #039;才输入数据库. 这样就没什么麻烦了.
2)
除此之外...
我的database顺利进入 Hello's
因为我用了 get_magic_quotes_gpc 和 mysql_real_escape_string()
当user去edit page.. 我从database呼叫 Hello's
我在textfield.... <input type='text' class='' name='bankName' maxlength='40' size='40' value='$bankName'>
结果我的data就变成 Hello
's 不见了..

有什么办法可以解决呢??

答: 如果数据库里的是& #039;而不是 ('),不是哪输出的时候就没问题了

注: & #039; 是连在一起的 (没有space的...

[ 本帖最后由 asimo 于 18-2-2009 03:42 AM 编辑 ]
回复

使用道具 举报


ADVERTISEMENT

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 18-12-2025 06:10 AM , Processed in 0.119395 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表