我有一个函数,它是在PHP页面的主体加载时调用的。
<script>
function testConnection()
{
var sDataLoader = readCookie('DataLoader');
<?php connTest(sDataLoader); ?>
}
</script>
connTest()是一个php函数,它接受javascript变量并执行某些操作。这一切看起来都是错误的,但它在我的一个LAMP服务器上工作,在另一个服务器上完全崩溃(正如我所料)。
未知错误类型:[8]使用未定义的常量sDataLoader-假定为"sDataLoader"
服务器的配置非常不同,所以这显然产生了巨大的差异,但我不明白它为什么/如何工作,所以我不知道如何在两台服务器上工作。
当<script>
标记在客户端上执行时,代码的PHP部分(在服务器上运行)已经完全完成。鳍消失了,失去了记忆,再也看不到或听不到了!
除非放弃线性时间的所有概念,否则调用connTest
并传递Javascript变量sDataLoader
的概念是没有意义的。
如果你想在服务器上执行更多的代码,你需要发出一个新的HTTP请求,并发送相关的数据。有很多方法可以做到这一点,包括AJAX、IFrames、回发等。
至于为什么这在另一台服务器上"有效",显而易见的答案是它没有。可能只是碰巧有一个名为sDataLoader
的服务器端变量,它做了一些可能与工作混淆的事情。