这是一个MySQL驱动的应用程序及其网页(PHP),我花了2天的时间调试了下面代码中的问题。2“didn 't work”注解当然不适用于源服务器(在那里一切正常),但适用于目标服务器,那里什么都不工作!这些网页不加区别地混合使用单(十六进制27),双(十六进制22)和“有趣”(十六进制e2 80 99)。
我该怎么办?“sed'ing”每一个页面将是容易的,但下次当我不得不重新迁移这些页面呢?
非常感谢您!
<?php
echo "Welcome to a quote adventure<BR><HR>";
$_SESSION['number1']=1;
$_SESSION['number2']=2;
$_SESSION['number3']=3;
echo "my number1 (single-to-single quotes) is: ".$_SESSION['number1']."<BR>";
echo "my number2 (single-to-double quotes) is: ".$_SESSION["number2"]."<BR>";
echo "my number3 (single-to-funny quotes) is: ".$_SESSION[’number3’]."-------didn't work!<HR>";
$_SESSION["number1"]=1;
$_SESSION["number2"]=2;
$_SESSION["number3"]=3;
echo "my number1 (double-to-single quotes) is: ".$_SESSION['number1']."<BR>";
echo "my number2 (double-to-double quotes) is: ".$_SESSION["number2"]."<BR>";
echo "my number3 (double-to-funny quotes) is: ".$_SESSION[’number3’]."-------didn't work!<HR>";
$_SESSION[’number1’]=1;
$_SESSION[’number2’]=2;
$_SESSION[’number3’]=3;
echo "my number1 (funny-to-single quotes) is: ".$_SESSION['number1']."<BR>";
echo "my number2 (funny-to-double quotes) is: ".$_SESSION["number2"]."<BR>";
echo "my number3 (funny-to-funny quotes) is: ".$_SESSION[’number3’]."-------worked!<HR>";
?>
我希望网页在目标服务器上也能不加修改地工作
1条答案
按热度按时间7gcisfzg1#
如果您更改了服务器,但没有彻底检查PHP设置,那么很可能您依赖的是已更改的默认设置,特别是与error reporting相关的默认设置。你的代码从来没有完全正确,它的工作部分纯粹是偶然的,但你现在才意识到。
PHP已经强化了一些错误条件,因为它们是令人沮丧的bug的来源,并且没有真正起到任何作用。特别是,从不存在的常量中阅读已从通知升级为警告:
1.早期的PHP:假设你错过了引号,实际上想要一个字符串,触发器通知。
.关键区别在于致命错误会中止脚本,因此不能轻易错过或忽略。
这个不存在的持续性问题如何适用于这里?好吧,事实证明
’
是常量的有效标识符,只要你不在解析器阻塞的位置使用它:Demo