告诉你的代码是工作在服务器端,以便:
<?php $abc = "<script>document.write(jvalue)</script>"?>
集$abc
到"<script>document.write(jvalue)</script>"
你写就会有客户端上运行的JavaScript,浏览器。不要混合使用它们...
好澄清所发生的事情:
本文是在一个PHP文件服务器调用,所以当:
Line Action on Server
<form name="form1"/> //->sent to client
<input type="text" name="code1" value="D50"//->sent to client
<input type="text" name="code2" value="" //->sent to client
<form/> //->sent to client
<script type="text/javascript"> //->sent to client
var jvalue = form1.code1.value; //->sent to client(will run on client)
<?php //->php takes control on server
$abc = "<script>document.write(jvalue)</script>"; //php runs this on server
//php sets $abc to "<script>document.write(jvalue)</script>" on server...
//php does not process javascript, php sees it as text...
?> //->ends php control
</script> //->sent to client
<?PHP //->php takes control on server again
$con = mysql_connect("localhost","abc_one","pass"); // php runs this on server
mysql_select_db("abc_one", $con); // php runs this on server
echo $abc; // php echoes $abc
含义,包含
线
<script>document.write(jvalue)</script>
发送给客户端。
它被写入到客户端的文件...
它不会在服务器客户端计算机上进行评估。
,并将在不久的将来,没有为什么你看到浏览器D50发生....
?让我们看看未来:
那么当客户端(浏览器)解析javascripts会发生什么?
浏览器将执行
var jvalue = form1.code1.value;
线并设置jvalue到D50,当然当浏览器遇到
<script>document.write(jvalue)</script>
它将运行它,并显示jvalue 的值上的客户端这是D50 ..
所有这些都会发生在客户端计算机上t在服务器上。
因此,这将在不久的将来,还没有发生....
现在回到你的PHP文件
//$c = 'D50'; // lets ignore this
$c = $abc; // php runs this on server.
// guess what now $c is '<script>document.write(jvalue)</script>'
// then php tries to run this:
$result2 = mysql_query("SELECT * FROM tblmycode where code='$c';");
现在你的查询变得非常有趣:
SELECT * FROM tblmycode where code='<script>document.write(jvalue)</script>';
我希望你现在明白发生了什么...
PS:mysql接口被弃用使用mysqli或P请请...
问题是...? – Shoe 2013-04-05 13:46:06
尝试回显$ abc的长度来诊断,有可能是空值或其他空格。如果是这样修剪它... – Ihsan 2013-04-05 13:46:33
请指定什么不工作或你卡在哪里? – 2013-04-05 13:47:40