То, что я пытаюсь сделать, это проверить, зарегистрирован ли пользователь, чтобы игра могла загружаться, чтобы играть. Страница работает, если я не проверю статус входа, но оператор 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">« created with <a href="http://unity3d.com/unity/" title="Go to unity3d.com">Unity</a> »</p>
</body>
</html>
}
?>
</li>
</ol>
</div>
Прежде чем пытаться распечатать явный 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
}
?>
В качестве альтернативного метода вы можете сами проверить, что ваша игра Unity проверяет ваш статус аутентификации на вашем сервере сайта. Это, возможно, выше, потому что игрок единства в противном случае продолжал бы функционировать после того, как php-сессия, возможно, истекла, если страница не перезагружена.
См. Unity Web Player и связь с браузером.
В качестве побочного эффекта вы теперь внедрили DRM в свою игру. Поздравляю.