2014-12-31 2 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): код eval() 'в строке 348 - –

ответ

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

был опечаткой здесь, а не в моем коде на сервере - мой браузер не покрасил его по какой-то причине. –

Смежные вопросы