Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   Помогите с игрой на php (https://javascript.ru/forum/server/70797-pomogite-s-igrojj-na-php.html)

Маууупа 03.10.2017 13:56

Помогите с игрой на php
 
if (is_object($_GET) && $_GET->['avg'] == (int)) {
$shots += $_GET->['avg'];
echo $shots;
} else {
die('1');
}

Хочу сохранить кол-во выстрелов в файл php. Но код не работает. Есть ошибки? Неужели php и вправду такой плохой язык?:(

Nexus 03.10.2017 14:28

Цитата:

Сообщение от Маууупа
Неужели php и вправду такой плохой язык

Дело совсем не в ЯП :)

Зачем $_GET превратили в объект?
Непонятно что это за конструкция: $_GET->['avg']
Нужно либо так: «$_GET->avg» либо так «$_GET->{'avg'}».
По-хорошему должно быть так: «$_GET['avg']».
Проверить является ли значение переменной числом можно так:
if(is_numeric($_GET['avg']))
    $avg=intval($_GET['avg']);

Никаких попыток сохранить результат в представленном коде нет.

Маууупа 03.10.2017 15:16

Цитата:

Сообщение от Nexus
Зачем $_GET превратили в объект?

Все опытные программисты кричат в один голос. Надо типизировать строки в объект для безопасности. Ваш код выдаает белый экран

Nexus 03.10.2017 15:24

Цитата:

Сообщение от Маууупа
Все опытные программисты кричат в один голос. Надо типизировать строки в объект для безопасности.

Скиньте ссылки почитать, кто и что кричит. Очень интересно :)

Цитата:

Сообщение от Маууупа
Ваш код выдаает белый экран

Неудивительно. Мой код ничего и не выводит на страницу.

Маууупа 03.10.2017 15:54

Цитата:

Сообщение от Nexus
Скиньте ссылки почитать, кто и что кричит. Очень интересно

Я не сохраняю закладки. Выписываю хорошие практики в свой блокнот.
Цитата:

Сообщение от Nexus
Неудивительно. Мой код ничего и не выводит на страницу.

Получается код не рабочий. Вы не протестировали.

Nexus 03.10.2017 16:04

Цитата:

Сообщение от Маууупа
Получается код не рабочий. Вы не протестировали.

Гениально :)
@session_start();
$global_get=(array)$_GET;
$shots=isset($_SESSION['shots'])?$_SESSION['shots']:0;
if(isset($global_get['avg']) and is_numeric($global_get['avg']))
	$shots+=intval($global_get['avg']);

$_SESSION['shots']=$shots;

echo $shots;

Можно все в 3 строки переписать.

Маууупа 03.10.2017 16:11

Цитата:

Сообщение от Nexus
Гениально

Спасибо большое! Вы гений, все работает!:)

Nexus 03.10.2017 16:20

Маууупа, что значит "типизировать строку в объект"?
Привести строку к типу Object? Как? Зачем?

Также осталось непонятно зачем из глобального массива get вы сделали объект.
Может кто объяснит ламеру? :)

Маууупа 03.10.2017 16:29

Nexus,
Ну не знаю, я прочитал на форуме phpsu. Сам пока программирую на css и html. Может есть спецы, которые объяснят. Уверен тут такие найдутся.

Rise 03.10.2017 18:54

Маууупа,
Игра на php? Это как? Это же серверный язык.


Часовой пояс GMT +3, время: 09:10.