Я пытаюсь создать блок кода 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'; ?>
без печати сгенерированного адреса электронной почты.
<? 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
кроме того, что вы определили эту переменную раньше.
Судя по тому, что видно закрытие ?>
Я пришел к выводу, что ваш код PHP не работает вообще и интерпретируется как обычный HTML.
Причин может быть несколько (плохо настроенный Apache — одна из них), но я подозреваю, что вы отключили короткие теги PHP. Попробуйте использовать <?php
вместо <?
,
Вы неправильно использовали синтаксис 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()
звонки, чтобы держать строки короткими и читабельными. Очевидно, что это также работает с традиционной конкатенацией строк. )