Иллюстрированный самоучитель по PHP

Файл niz.php

В РНР до четвертой версии функция round могла округлять числа только до целых, поэтому в том случае, если вы располагаете только такой версией РНР, то команда округления до десятых должна выглядеть как:

$sred=(round ($sred*10))/10;

…и вывести на страницу.

echo ("$sred.");
}

Имя cookie, в котором будет находиться информация о том, голосовал ли посетитель за данную статью или нет, тоже будет образовываться из имени файла статьи. Запишем это имя в переменную $haveestim…

$haveestim=$nom."haveest";

…и проверим, определена ли переменная с таким именем – т. е. установлен ли одноименный cookie или нет (рис. 10.2). Можно было бы также проверять, какое значение имеет данная переменная, но для нашего сценария это неважно – если переменная установлена и cookie определен, то посетитель уже голосовал за данную статью: ведь cookie с данным именем устанавливается ему в этом и только в этом случае.

if ($$haveestim=="")

Обратите внимание на имя проверяемой переменной – это имя само является значением переменной Shaveestim (подобную конструкцию допускают правила РНР, подробнее смотрите в Главе 3).

Иллюстрированный самоучитель по PHP › Система оценки материалов › Файл niz.php
Рис. 10.2. Содержимое cookie – пометки о состоявшемся голосовании

Поскольку значения cookies доступны и через массив $HTTP_COOKIE_VARS[], то проверить наличие cookie можно и на основе анализа значений этого массива:

if ($HTTP_COOKIE_VARS[$haveestim]=="")

…или в РНР версии 4.1 и выше:

if ($_COOKIE[$haveestim]==" ")

Комментарий
Помните, что доступность данных cookie зависит от настроек в файле php.ini (рис.10.3) – если в файле php.ini установлен в on параметр register_globals, то содержимое cookie доступно в сценарии в переменной с тем же именем, что и cookie, а если ephp.ini установлен в on параметр trackjvars, то содержимое cookie доступно в сценарии в одноименном с этим cookie элементе массива SHTTPCOOKIEVARSfJ (с РНР 4.1 – и $_СООК1Е[])
.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.