2014-05-09 47 views
0

好吧,我有一个基本的所有功能于一身的页面,我的用户配置文件在我的网站,像这样:混合代码中的错误

<?php 

if($_GET['p']=='pb'){ 

echo '<p>pb</p>'; 

}elseif($_GET['p']=='example2'){ 

echo '<p>Example Two'; 

}elseif($_GET['p']=='example1'){ 

echo '<p>Example One'; 

}else{ 
echo '<h3>Page not defined&#59 error!</h3>'; 

} 

?> 

我有一些内嵌的JavaScript,虽然问题,当我尝试添加‘PHP的混淆它,我尝试添加\”一的onclick =“location.href =’的正面和背面,但它似乎没有工作,这里是我有:

<?php 

if($_GET['p']=='pb'){ 

echo '<p>pb</p>'; 

}elseif($_GET['p']=='example2'){ 

echo ' 
<h1>Example Link One</h1> 
<p>You clicked Example Link One!</p> 
<table border="0" cellspacing="15" width="100%"> 
<tr> 
<td bgcolor="grey" onclick="location.href=\''/media/profiles/person/'\'"> 
<p>HOME</p> 
</td> 
</tr> 
</table>'; 

}elseif($_GET['p']=='example1'){ 

echo ' 
<h1>Example Link One</h1> 
<p>You clicked Example Link One!</p> 
<table border="0" cellspacing="15" width="100%"> 
<tr> 
<td bgcolor="grey" onclick="location.href=\''/media/profiles/person/'\'"> 
<p>HOME</p> 
</td> 
</tr> 
</table>'; 

}else{ 
echo '<h3>Page not defined&#59 error!</h3>'; 

} 

?> 

但我仍然有几个错误,包括: - 使用未定义的常量媒体 - 假设'媒体' - 警告:除以零 注意:使用未定义的常量配置文件 - 假定'配置文件' 注意:使用未定义的常量人员 - 假定'人员' 等等。

我知道它与它有什么关系,但我该如何解决它?

回答

0

您的报价错误。你正在逃避第一个单引号,而是跟随另一个单引号。第二个被php解释为字符串的结尾,这不是你想要的。只要删除这第二个单引号,它应该修复你的错误。

echo ' 
<h1>Example Link One</h1> 
<p>You clicked Example Link One!</p> 
<table border="0" cellspacing="15" width="100%"> 
<tr> 
<td bgcolor="grey" onclick="location.href=\'/media/profiles/person/\'"> 
<p>HOME</p> 
</td> 
</tr> 
</table>'; 

编辑:另外值得一提:如果您有混合了引号的字符串它往往更容易使用heredoc style

$str = <<<EOD 
Example of string 
spanning multiple lines 
using heredoc syntax. 
EOD; 
+0

你是第二个向我推荐heredoc风格的人,我会阅读它。 – Davie

1

为什么不直接关闭PHP标签?

<?php 

if($_GET['p']=='pb'){ 

echo '<p>pb</p>'; 

}elseif($_GET['p']=='example2'){ 

?> 
<h1>Example Link One</h1> 
<p>You clicked Example Link One!</p> 
<table border="0" cellspacing="15" width="100%"> 
<tr> 
<td bgcolor="grey" onclick="javascript:location.href='/media/profiles/person/'"> 
<p>HOME</p> 
</td> 
</tr> 
</table> 
<?php 

}elseif($_GET['p']=='example1'){ 

?> 
<h1>Example Link One</h1> 
<p>You clicked Example Link One!</p> 
<table border="0" cellspacing="15" width="100%"> 
<tr> 
<td bgcolor="grey" onclick="javascript:location.href='/media/profiles/person/'"> 
<p>HOME</p> 
</td> 
</tr> 
</table> 
<?php 

}else{ 
echo '<h3>Page not defined&#59 error!</h3>'; 

} 

?> 

而且,这将是更优雅的在应用程序中使用的设计模式 - 这个应用程序,如果你坚持你目前正在使用将成为一个负担,更新和维护“设计模式”。

+0

因为网页上有其他的PHP代码我不关闭标记,会抵消我的网页,并由用户自行维护。我网站的其余部分不使用这种设计模式。 – Davie

+0

另外,重要的是要提到这些回声被回显到页面的正文(或者大部分回复)中。我有用于通用布局的页眉和页脚页面。 – Davie