2015-10-03 3 views
1

Я «обновил» мой сервер, и следующее не работает.Конфигурация php (я думаю)

Он находится в верхней части страницы и должен устанавливать некоторые файлы cookie и перезагружать страницу пустой строкой запроса (и установленными cookie), если исходный URL имеет правильную строку запроса.

Теперь происходит то, что страница загружается, а затем немедленно заменяется попыткой загрузить несуществующую страницу.

Как я уже сказал, я переустановил свой сервер, и теперь тот же код работает правильно на моем рабочем сервере, но не на переустановленном сервере. Сейчас я работаю на Ubuntu 15.04. Я предполагаю, что я пренебрег некоторыми аспектами установки php/apache, но я действительно не знаю.

Спасибо за любую помощь, которую вы можете дать. - Len

<?php 
if (array_key_exists('rId',$_GET) && $_GET['rId'] == 'auth'){ 
    setcookie('authCode',$_GET['authCode']); 
    setcookie('rId',$_GET['rId']); 
    setcookie('GP_UID',$_GET['GP_UID']); 
    if (array_key_exists('license',$_GET)) 
      setcookie('license',$_GET['license']); 
    else 
      setcookie('license',0); 
    $pth = $_SERVER['REQUEST_URI']; 
    $pth = substr($pth, 0, strrpos($pth,'/')+1)."index.html"; 
    $url = $_SERVER['SERVER_NAME'].$pth; 
    echo "<!DOCTYPE HTML><html><head><META http-equiv='refresh' content='0;URL=http://" .$url. "'></head></html>"; 
    return; 
    exit; 
} 
?>  
<html> 
<body id="view2"> 
    <h1> Loaded </h1> 
</body> 
</html> 
+0

Этот «выход» никогда не был достигнут. Если приложение одинаково на обоих серверах, оно не должно иметь никакого значения, поскольку другое работает. Но вы можете попытаться удалить это 'return' и посмотреть, что произойдет. –

+0

SAame поведение удаление возврата. Очень странная вещь (для меня) заключается в том, что даже если я использую URL-адрес без строки запроса, чтобы PHP не выполнялся, используя хром, я получаю такое же поведение. Очень короткое отображение «Loaded», а затем я перенаправлен на: blank. В firefox (на linux без строки запроса) он отображает: «; return; exit;}?> Loaded. Загружен – LenB

+1

Была проблема с конфигурацией. Http://stackoverflow.com/questions/17495382/apache-2-server- на Ubuntu-жаргоне-синтаксический-PHP-код-внутри-HTML-файл – LenB

ответ

0

Я бы поставил это в комментарий, но я не могу этого сделать ^^. Тем не менее я уверен, вы можете решить ваши проблемы thatway:

header('Location: '.$url); 
die(); 

После того, как я должен был этот тип вывода контента, потому что я должен был отправить что-то где-то после добавления/сохранения/экономии значения:

... 
<html> 
<head> 
</head> 
<body>  
    <form name='foo' action='<? echo $url; ?>' method=POST> 
    <input type=hidden name='bla' value='blubb' /> 
    </form> 
    <SCRIPT FOR=window EVENT=onload LANGUAGE='JavaScript'> 
    document.foo.submit(); 
    </SCRIPT> 
</body> 
</html> 

Тогда попробуйте бросить свой PHP, как вы делали или с exit(); или die();

Другое дело: Каждый раз, когда вы переключаете ваш сервер, вы должны проверить, если $ _SERVER [хххх] ▲ и ▼ все еще доступны, и как т эй были. У меня было много неприятностей, потому что иногда могут быть небольшие различия.

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