2014-12-31 111 views
-1

我正在写一些PHP代码在我的Wordpress网站工作直到我尝试在脚本中使用一个变量。操作的说明:变量导致意外的T_VARIABLE错误

  • 系统被示出,需要作为可点击元素
  • iframe的iframe中需要几秒钟来加载,使其覆盖所述标签,以使得iframe是不点击。
  • 最后重置css并在延迟后分配href属性,使iframe再次可点击。
  • 如果我硬编码的URL,一切都很好,但如果我使用一个变量,(这样的URL可以动态分配),我得到一个“意外”$ MYURL'(T_VARIABLE)“错误。
  • 在这个脚本段没有设置所有的变量都事先设定,以及所有作品,未经$ MYURL变量

有问题的行是348,或者接近底部,并且是

$(this).attr('href', '<?php echo $MYURL; ?>');

这在线314,这是

前面所定义的

$MYURL = "http://trailmeister.com/TOPO_VIEWS/showmap.php?gpx={$row[gpx_file]}&trail={$_GET[tname]}";

我很难过。在对我进行投票之前,如果您需要更多信息,请告诉我。该代码的关键部分在最后的部分。下面的代码:

<?php 
if (is_user_logged_in()) { 
    $routequery = mysql_query("SELECT * from wp_routes WHERE trail_id = ".$trailid.""); 
    $MYURL = "http://example.com/showmap.php?gpx=$row[gpx_file]&trail=$_GET[tname]"; 
    echo "<h2>Rider's Routes</h2><a href='/submit-route?trail=$_GET[trail]'><b>"; 
    echo "[ Submit a new route ]</b></a><br>"; 
    if (mysql_num_rows($routequery)){ 
     require_once('GPXIngest.class.php');  
     while ($row = mysql_fetch_array($routequery)) { 
      $user = get_user_by('id', '1'); 
      echo "<div style='float:left;margin-right:5px;'>"; 
      $smallmap = '[iframe  src="http://trailmeister.com/TOPO_VIEWS/showmap2.php'; 
      $smallmap .= '?gpx='.$row[gpx_file].'&trail='.$_GET[tname].'"]'; 
      echo "<a id='bigmap' href='http://trailmeister.com/TOPO_VIEWS/showmap.php?"; 
      echo "gpx=$row[gpx_file]&trail=$_GET[tname]' style='border:1px red solid; "; 
      echo "margin-right: -150px; z-index:999; position:absolute; display:inline-block;"; 
      echo " width:150px; height:150px;'></a>"; 
      echo do_shortcode($smallmap); 
      echo "</div>"; 
      echo "<div><a href='http://trailmeister.com/TOPO_VIEWS/GPX/download.php?"; 
      echo "gpx=$row[gpx_file]'><b>[ Download this route ]</b></a><br>"; 
      echo "Submitted $row[submitted] by " .$user->user_nicename."<br>"; 
      echo "Route Difficulty: $row[difficulty]   |  "; 
      echo "Trail Length: $row[trail_length] <br>"; 
      echo "<i>$row[comments]</i></div>"; 
      } 
     } 
    } 
?> 
<script> 
$('#bigmap') 
      .delay(4000) 
      .queue(function(next){  
        $(this).css({ 
    'border':'1px red solid', 
'margin-right': '-150px', 
'z-index':'999', 
'position':'absolute', 
'display':'inline-block', 
'width':'150px', 
'height':'150px' 
}); 
$(this).attr('href', '<?php echo $MYURL; ?>'); 
  
        next();   
      }); 
</script> 
+1

看颜色编码。这看起来相当错误的。 –

+0

什么是线数字和确切的错误信息? – Amber

+0

解析错误:语法错误,意外的'$ MYURL'(T_VARIABLE)在E:\ web \ public_html \ case42 \ TRAILMEISTER \ wp-content \ plugins \ php-code-for-posts \ PHPPostCode.php(85):线348上的eval()'d代码 - –

回答

1

这一切首先是挺乱的,这是问题的一个重要组成部分,我会建议清洗它开始与使用的模板语法while循环

while ($row = mysql_fetch_array($routequery)) { 
     $user = get_user_by('id', '1'); 
     echo "<div style='float:left;margin-right:5px;'>"; 
     $smallmap = '[iframe src="http://trailmeister.com/TOPO_VIEWS/showmap2.php'; 
     $smallmap .= '?gpx='.$row[gpx_file].'&trail='.$_GET[tname].'"]'; 
     echo "<a id='bigmap' href='http://trailmeister.com/TOPO_VIEWS/showmap.php?"; 
     echo "gpx=$row[gpx_file]&trail=$_GET[tname]' style 
//... 

变为

<?php 
     $user = get_user_by('id', '1'); //why is this in the loop with static values? 

     while($row = mysql_fetch_array($routequery)): 
    ?> 

     <div style='float:left;margin-right:5px;'> 
     <?php 
      $smallmap = '[iframe src="http://trailmeister.com/TOPO_VIEWS/showmap2.php'; 
      $smallmap .= '?gpx='.$row["gpx_file"].'&trail='.$_GET["tname"].'"]'; 
     ?> 
     <a id='bigmap' href='http://trailmeister.com/TOPO_VIEWS/showmap.php? "gpx=$row["gpx_file"]&trail=$_GET["tname"]' style 
//... 
    <?php endwhile; ?> 

一旦你这样做,问题会更容易看到。模板语法是这样的:

<?php while($bla) : ?> 
     html 
    <?php endwhile; ?> 

    <?php if($bla) : ?> 
     html 
    <?php endif; ?> 

寻找到一个语法高亮甚至notpad ++,其他都表示把在你的数组键报价

$_GET["tname"] 

=$_GET[tname] 

PHP会看到后来作为一个未定义的常量。在“双引号块,但它是一个不好的做法,使用此may工作,使用" text { $_GET['tname'] } text "代替" text $_GET[tname] text ",它是向后兼容的,而不是依赖于可变插值

+0

静态值使得此功能现在仅对管理员可见。我会尝试模板语法。 –

+0

这帮助我排除故障,而且我基本上重新构建了整个事情。我仍然需要在代码中创建和引用变量,并且JavaScript一直给我带来麻烦。原来是一个简单的不平衡报价。感谢大家看着这个。没有任何治疗方法,但一次只能编码太多小时的疲倦眼睛。 –

0
$smallmap = '[iframe src="http://trailmeister.com/TOPO_VIEWS/showmap2.php"; 

请注意,您正在打开的线用单引号,但用双引号将其关闭。使它们保持一致 - 无论是单引号还是双引号。

+0

这是我的一个拼写错误,试图使代码在这个狭窄的视口中更具可读性 - 我在引语中保持一致。 –

0

你的第一个$ smallmap没有关闭(注意一下之后,所有的回声的是绿色的?)

+0

在这里是一个错字,而不是在我的服务器上的代码 - 我的浏览器出于某种原因没有对它进行颜色编码。 –

相关问题