apache — & lt ;? и & lt;? php оба не работают, что должно работать?

запуск php5.5.9 на apache2.4 под Ubuntu 14.04.2 LTS сервер x86_64 мой старый код php имеет <? в середине, чтобы переключиться с HTML обратно на PHP, но он больше не работает, и <? просто вывод, как если бы это был HTML. если я изменю это на <?php тогда вся страница становится пустой. curl в этом случае показывает, что сервер ничего не выводит. это где я пытаюсь вывести IP-адрес клиента.

веб-страница: http://linuxhomepage.com/
или же: http://linuxhomepage.com/index.php

Вы можете увидеть сырой PHP-код здесь: http://linuxhomepage.com/index.txt

если вы получите IPv6-адрес, он не будет работать, так как apache не позволяет мне связать его (я все еще копаюсь с более низким приоритетом).

<? а также <?php оба терпят неудачу по-разному. так как я могу сделать эту работу?

Редактировать:
IPv6 работает на Apache сейчас, затем, чтобы получить DNS на IPv6.

1

Решение

Вопрос симилара: PHP 5.5 short_open_tag = на дыре безопасности?

Вы должны изменить короткий открытый тег в вашем php ini на:
short_open_tag=on

2

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

<? вероятно, терпит неудачу, потому что это осуждается.

<?php Вероятно, это не сбой, но, возможно, где-то в вашем коде ошибка, и отчеты об ошибках на вашем сервере отключены, так что вы просто получаете пустой экран.

Чтобы убедиться в этом, попробуйте что-то простое, например:

<?php
echo 'test';
?>

И убедитесь, что это работает.

4

<? просто вывод, как если бы это был HTML.

это потому что short_tags не рекомендуются и отключены по умолчанию

PHP также позволяет открывать короткие теги <? (что не рекомендуется, поскольку он доступен только в том случае, если он включен с помощью директивы конфигурационного файла short_open_tag php.ini или если PHP был настроен с параметром —enable-short-tags).

если я изменю это на <?php тогда вся страница становится пустой.

это, вероятно, потому что у вас есть ошибки на вашей странице PHP (особенно если вы запускаете старый код в новой версии PHP)

пожалуйста, включите отчёт об ошибках — директивы php.ini error_reporting а также display_errors

2

Пожалуйста, попробуйте удалить часть, которая вызывает проблему.

На ваш текстовый файл это будет

<?
echo $_SERVER['REMOTE_ADDR']
?>

Если это работает без попытки добавления

<?php echo "TEST"; ?>

Если это также работает, вы можете заменить "TEST" от $_SERVER['REMOTE_ADDR'] и посмотреть, если это работает.

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