2014-05-09 50 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