2010-05-10 3 views
1

Я пытаюсь передать переменную (в данном случае IP-переменную пользователя) в URL-адрес, поэтому, когда она отображается в Интернете, это автоматическая ссылка. Ниже приведен код, который у меня есть, и я получаю сообщение об ошибке. Ищу PHP Guru, чтобы помочь n00b.Размещение переменной PHP в URL-адресе

$user_tracking_vars = "<br /><br /><strong>Browser and Operating System:</strong> ".$browser."<br /><br /><strong>IP:</strong> <a href=""http://urbangiraffe.com/map/?ip=".$ip."&from=drainhole"">".$ip."</a><br /><br /><strong>Page Visited Before Contact Form:</strong> ".$referred."<br />"; 
+0

Какая ошибка вы получаете? –

+0

Ошибка анализа: ошибка синтаксиса, неожиданный T_CONSTANT_ENCAPSED_STRING в /var/www/vhosts/liquor.com/subdomains/dev/httpdocs/wp-content/plugins/contact-form-7/includes/classes.php on line 348 – HollerTrain

+0

Он имеет где находится область IP. Когда я вставляю URL/переменную combo, я делаю это неправильно ... – HollerTrain

ответ

3

Похоже, вы неправильно спасаясь ваши котировки с помощью Basic-подобный (href=""..."") синтаксис. Эквивалентный символ в PHP является обратным слэшем (href=\"...\").

$user_tracking_vars = "<br /><br /><strong>Browser and Operating System:</strong> ".$browser."<br /><br /><strong>IP:</strong> <a href=\"http://urbangiraffe.com/map/?ip=".$ip."&from=drainhole"\>".$ip."</a><br /><br /><strong>Page Visited Before Contact Form:</strong> ".$referred."<br />"; 

Вы можете также чередовать котировки, используемые для достижения того же эффекта (href='...'):

$user_tracking_vars = "<br /><br /><strong>Browser and Operating System:</strong> ".$browser."<br /><br /><strong>IP:</strong> <a href='http://urbangiraffe.com/map/?ip=".$ip."&from=drainhole'>".$ip."</a><br /><br /><strong>Page Visited Before Contact Form:</strong> ".$referred."<br />"; 
+0

Вы также можете чередовать цитату между href (определяется с помощью) и определением строки (определяется с помощью). Строка не будет анализироваться для переменных (бесполезно, поскольку переменные собираются с использованием точки), это намного эффективнее. – snowflake

+0

@snowflake: не знаю, сколько * более эффективно * это, но я просто ленился - было легче изменить кавычки вокруг значения 'href', чем искать ближайшие разделители строк и изменять их на' '' :-) –

+0

так много GURU. Я сейчас навсегда запомню, что URLS должен использовать одну цитату в синтаксисе PHP. – HollerTrain

1

Если вы не хотите неприятностей избежать длинных строк HTML, вы должны попробовать сделать это:

$ip = "..."; 
$browser = "..."; 
$referred = "..."; 

$user_tracking_vars =<<<text 
    <br/> 
    <br/> 
    <strong>Browser and Operating System:</strong> 
    $browser 
    <br/><br/> 
    <strong>IP:</strong> 
    <a href="http://urbangiraffe.com/map/?ip={$ip}&from=drainhole">$ip</a> 
    <br/><br/> 
    <strong>Page Visited Before Contact Form:</strong> 
    $referred 
    <br/> 
text; 
// remember the text; from line above must start @ char 0... 

или это:

<?php 
$ip = "..."; 
$browser = "..."; 
$referred = "..."; 
?> 

<br/> 
<br/> 
<strong>Browser and Operating System:</strong> 
<?php echo $browser; ?> 
<br/><br/> 
<strong>IP:</strong> 
<a href="http://urbangiraffe.com/map/?ip=<?php echo $ip;?>&from=drainhole"><?php echo $ip;?></a> 
<br/><br/> 

<strong>Page Visited Before Contact Form:</strong> 
<?php echo $referred; ?> 
<br/> 

Любое из вышеперечисленных поможет вам сэкономить драгоценное время, ускоряя кавычки. Поскольку я не знаю, в каком контексте вы используете $ user_tracking_vars, нет необходимости обсуждать преимущества наличия логики и вывода. :-)

+0

+1, второй - отличный пример использования PHP в его стиле «шаблонов». –

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