background image

百思不得其解后,求救,

 

在网友提出的一系列解决方案中,终于以这种方式运行成功:

以下为引用的内容:

<?

$aa='my name is yyy!';
$str='<input type="text" name="textfield" value="\'$aa\'">';

eval( "\$str = \"$str\";" );
echo $str;

?>

可是,当我把$str 插入如下一个表中然后又提取出时,又出错了。

 

数据库 evaltest

 

表结构 'envtest'

以下为引用的内容:

CREATE TABLE envtest (
   id tinyint(4) NOT NULL auto_increment,

   sour mediumtext,
   PRIMARY KEY (id),

   UNIQUE id (id),
   KEY id_2 (id)

);

#

 

表内容 'envtest'

以下为引用的内容:

INSERT INTO envtest VALUES( '1', '<input type=\"text\" name=\"textfield\" 
value=\"$aa\">');

php 文件如下:

以下为引用的内容:

<?

$aa='my  name  is yyy!';
$conn=mysql_connect('localhost','root','');

$sele='select sour from envtest where id=1';
$res=mysql_db_query('evaltest',$sele);

$arra=mysql_fetch_array($res);
$str=$arra['sour'];

eval( "echo  \"$str\";" );
?>

再看看 php

 

中文手册,发现这么一句话: 待处理的字串要符合 PHP 

的字串格式 ,什

 

么叫 符合 PHP 

的字串格式 (有谁知道,麻烦告诉一声)。我不知道,也无从查找,只好看

看字串处理函数。发现 htmlspecialchars()好像可用,于是试了一把:

以下为引用的内容:

<?