apache — создание PHP-кода в HTML

Я пытаюсь создать блок кода PHP в HTML, чтобы при загрузке страницы пользователь отображал свой IP-адрес и время / дату в качестве пользователя в адресе электронной почты.

Я использую apache на fedora21 и включил PHP (протестирован с функцией phpinfo () в том же HTML-файле).

Вот код, который я пытаюсь выполнить:

<? echo '<a href="mailto:'.$REMOTE_ADDR.'_'.date('y-m-j').'[email protected]"  title="There is no spoon">For stupid spambots'; ?>

Это просто печатает For stupid spambots'; ?> без печати сгенерированного адреса электронной почты.

1

Решение

<? echo '<a href="mailto:'.$_SERVER['REMOTE_ADDR'].'_'.date('y-m-j').'[email protected]"  title="There is no spoon">For stupid spambots</a>'; ?>

Нужно закрыть <a href во-первых, и если вы хотите вернуть IP его $_SERVER['REMOTE_ADDR'] не $REMOTE_ADDR кроме того, что вы определили эту переменную раньше.

2

Другие решения

Судя по тому, что видно закрытие ?>Я пришел к выводу, что ваш код PHP не работает вообще и интерпретируется как обычный HTML.

Причин может быть несколько (плохо настроенный Apache — одна из них), но я подозреваю, что вы отключили короткие теги PHP. Попробуйте использовать <?php вместо <?,

1

Вы неправильно использовали синтаксис html-якоря. Учти это:

<?php
$address = sprintf('%s_%[email protected]', $_SERVER['REMOTE_ADDR'], date('y-m-j'));
echo sprintf('<a href="mailto:%1$s" title="%2$s">%3$s: %1$s</a>',
$address,
'There is no spoon',
'For stupid spambots');
?>

Вы должны напечатать адрес в видимом текстовом содержимом определения привязки, если вы хотите, чтобы он был видимым. У вас есть только строка «Для глупых спам-ботов», которая отображена.

(Обратите внимание, что я только что использовал sprintf() звонки, чтобы держать строки короткими и читабельными. Очевидно, что это также работает с традиционной конкатенацией строк. )

0
По вопросам рекламы [email protected]