Встраивание игры Unity на веб-страницу после проверки заявления

0

То, что я пытаюсь сделать, это проверить, зарегистрирован ли пользователь, чтобы игра могла загружаться, чтобы играть. Страница работает, если я не проверю статус входа, но оператор else в приведенном ниже коде просто отображает белую страницу, на которой ничего нет. Код в выражении else копируется прямо из сгенерированного html файла из единицы. Я новичок в php и html, поэтому я не знаю, какие изменения мне нужно сделать, чтобы он работал в моем текущем макете, поэтому любая помощь была бы очень полезной. Я знаю, что код в инструкции else работает, если его просто в отдельном html файле без проверки входа.

<div id="main">
<h3>Get started with your website</h3>
<ol class="round">
<li class="one">

    <?php if(!logged_on()) { //This if statement works
        echo '<li><a href="/logon.php">Please login to play</a></li>' . "\n";
    }

    else //This doesnt work
    {

         <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
        <html xmlns="http://www.w3.org/1999/xhtml">
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
            <title>Unity Web Player | Cool Ninja Platformer</title>
            <script type='text/javascript' src='https://ssl-webplayer.unity3d.com/download_webplayer-3.x/3.0/uo/jquery.min.js'></script>
            <script type="text/javascript">
            <!--
            var unityObjectUrl = "http://webplayer.unity3d.com/download_webplayer-3.x/3.0/uo/UnityObject2.js";
            if (document.location.protocol == 'https:')
                unityObjectUrl = unityObjectUrl.replace("http://", "https://ssl-");
            document.write('<script type="text\/javascript" src="' + unityObjectUrl + '"><\/script>');
            -->
            </script>
            <script type="text/javascript">
            <!--
                var config = {
                    width: 960, 
                    height: 600,
                    params: { enableDebugging:"0" }

                };
                config.params["disableContextMenu"] = true;
                var u = new UnityObject2(config);

                jQuery(function() {

                    var $missingScreen = jQuery("#unityPlayer").find(".missing");
                    var $brokenScreen = jQuery("#unityPlayer").find(".broken");
                    $missingScreen.hide();
                    $brokenScreen.hide();

                    u.observeProgress(function (progress) 
                    {
                        switch(progress.pluginStatus) 
                        {
                            case "broken":
                                $brokenScreen.find("a").click(function (e) 
                                {
                                    e.stopPropagation();
                                    e.preventDefault();
                                    u.installPlugin();
                                    return false;
                                });
                                $brokenScreen.show();
                            break;
                            case "missing":
                                $missingScreen.find("a").click(function (e) 
                                {
                                    e.stopPropagation();
                                    e.preventDefault();
                                    u.installPlugin();
                                    return false;
                                });
                                $missingScreen.show();
                            break;
                            case "installed":
                                $missingScreen.remove();
                            break;
                            case "first":
                            break;
                        }
                    });
                    u.initPlugin(jQuery("#unityPlayer")[0], "game.unity3d");
                });
            -->
            </script>
            <style type="text/css">
            <!--
            body {
                font-family: Helvetica, Verdana, Arial, sans-serif;
                background-color: white;
                color: black;
                text-align: center;
            }
            a:link, a:visited {
                color: #000;
            }
            a:active, a:hover {
                color: #666;
            }
            p.header {
                font-size: small;
            }
            p.header span {
                font-weight: bold;
            }
            p.footer {
                font-size: x-small;
            }
            div.content {
                margin: auto;
                width: 960px;
            }
            div.broken,
            div.missing {
                margin: auto;
                position: relative;
                top: 50%;
                width: 193px;
            }
            div.broken a,
            div.missing a {
                height: 63px;
                position: relative;
                top: -31px;
            }
            div.broken img,
            div.missing img {
                border-width: 0px;
            }
            div.broken {
                display: none;
            }
            div#unityPlayer {
                cursor: default;
                height: 600px;
                width: 960px;
            }
            -->
            </style>
        </head>
        <body>
            <p class="header"><span>Unity Web Player | </span>Cool Ninja Platformer</p>
            <div class="content">
                <div id="unityPlayer">
                    <div class="missing">
                        <a href="http://unity3d.com/webplayer/" title="Unity Web Player. Install now!">
                            <img alt="Unity Web Player. Install now!" src="http://webplayer.unity3d.com/installation/getunity.png" width="193" height="63" />
                        </a>
                    </div>
                </div>
            </div>
            <p class="footer">&laquo; created with <a href="http://unity3d.com/unity/" title="Go to unity3d.com">Unity</a> &raquo;</p>
        </body>
    </html>
    }

    ?>

</li>
</ol>
</div>
  • 0
    HTML не является допустимым PHP, вам нужно закрыть тег php после else, а затем снова открыть его для окончательной фигурной скобки ... tbh вы должны читать журналы ошибок, прежде чем даже зайти на этот сайт
Теги:
unity3d
login

2 ответа

0
Лучший ответ

Прежде чем пытаться распечатать явный HTML без использования echo вы должны закрыть свой блок php code с помощью ?>. И прежде чем делать больше php-кода, вам нужно снова открыть его <?php.

Другая проблема заключается в том, что вам нужно <!DOCTYPE html... быть первой строкой вашей страницы. Поэтому, имея <div id="main"> и так далее, это вызовет большую проблему. Так что положите это наверху всегда.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<?php 
if(!logged_on()) 
{ 
    echo '<li><a href="/logon.php">Please login to play</a></li>' . "\n";
}
else 
{
?>
    <head>
    all whatever html you want to have explit
<?php
}
?>
  • 0
    спасибо, потребовалось некоторое время, чтобы понять, почему <? php и?> находятся на этих позициях, но теперь я понимаю, и это помогло мне решить мою проблему.
1

В качестве альтернативного метода вы можете сами проверить, что ваша игра Unity проверяет ваш статус аутентификации на вашем сервере сайта. Это, возможно, выше, потому что игрок единства в противном случае продолжал бы функционировать после того, как php-сессия, возможно, истекла, если страница не перезагружена.

См. Unity Web Player и связь с браузером.

  1. Выполните произвольный javascript из своей игры, чтобы отправить запрос ajax на ваш сервер. Запрос будет включать все файлы cookie вашего локального браузера, включая токен php-сессии.
  2. Ajax url - это служба данных на сервере, которая отвечает статусом аутентификации.
  3. Разберите результат, измените поведение своей игры на основе состояния веб-аутентификации.

В качестве побочного эффекта вы теперь внедрили DRM в свою игру. Поздравляю.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню