2015-09-09 10 views
0

Я пытался перенаправить html-страницу на два разных php-файла. Файл html, который я создал, - redirect.html. Когда я перейду на эту страницу, он будет проверять, был ли я зарегистрирован или нет, если бы я не был, это привело бы меня к ucplogin.php , с другой стороны, если бы я вошел в систему, это привело бы меня к ucphome.php. Здесь проблема кода я пытаюсь явно перепутались, потому что я пытался какое-то время и до сих пор не работаетПеренаправление не работает должным образом

<?php 
session_start(); 
?> 

<!DOCTYPE HTML> 
<html lang="en-US"> 
    <head> 
     <meta charset="UTF-8"> 
     <meta http-equiv="refresh" content="1;url=http://example.com"> 
     <script type="text/javascript"> 


      <?php 
      if(!isset($_SESSION['playername'])) 
      { 
      ?> 
      window.location.href = "http://localhost/working/ucplogin.php" 
      <?php 
      } 
      else 
      { 
      ?> 
      window.location.href = "http://localhost/working/ucphome.php" 
      <?php 
      } 
      ?> 

     </script> 
     <title>Page Redirection</title> 
    </head> 
</html> 

EDIT: Я видел все эти ответы и получил некоторые моменты, но я переписать код этой

<?php 
session_start(); 
?> 

<?php 
    if(!isset($_SESSION['playername'])) 
    { 
    ?> 
    header('Location: http://localhost/working/ucplogin.php'); 
    <?php 
    } 
    else 
    { 
    ?> 
    header('Location: http://localhost/working/ucphome.php'); 
    <?php 
    } 
?> 

, когда я иду в redirect.php это дает мне заголовок ('Location: http://localhost/working/ucphome.php'); когда я вошел в систему и это, когда я не header('Location: http://localhost/working/ucplogin.php');

По-видимому, это работает, но технически нет, оно не перенаправляет меня на точную страницу.

+0

вы пишете PHP в файл .html ??? это неприемлемо –

+0

@ Peyman.H уверен, что это так. Если указание Apache рассматривать их как PHP, почему бы и нет? редактируйте: вы даже написали это в своем ответе. –

+0

Вы внедряете PHP в JavaScript. Это невозможно! Вы можете повторить JavaScript с помощью PHP, например. echo ''. – Sun

ответ

1

Html файл, который я создал это redirect.html

Вы не можете запустить PHP код в простой HTML-файл, если вы не проинструктировать Apache для запуска HTML-файлы как PHP (спасибо @ Fred-ii- для указания этого. Также см. @ Peyman.H ответ, как это сделать). Причина, по которой существует расширение php, заключается в том, чтобы сообщить серверу, что код PHP должен обрабатываться. Переименуйте расширение на .php, и все будет хорошо.

Кроме того, что, если пользователь отключен JavaScript? Это безопаснее использовать функцию PHP header() для редиректа вместо:

if(!isset($_SESSION['playername'])) { 
    header('Location: http://localhost/working/ucplogin.php'); 
} // etc... 
+1

* «Вы не можете запустить PHP-код в виде простого HTML-файла». * - это не совсем так. Вы можете, если поручить Apache обрабатывать файлы .html, как PHP. –

+0

Спасибо, что указали, что я обновил свой ответ – samrap

+0

, пожалуйста. –

0

Вы также можете использовать в файле код JavaScript, просто набрав следующую

<script> 
window.location="redirect.php" ; 
    </script> 
Смежные вопросы