Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #29, АПРЕЛЬ 2003 г.

TIPS OF WEB: php для самых маленьких

Sevranty

Спецвыпуск Xakep, номер #029, стр. 029-114-2


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

TIPSa 6

Определение времени вывода страницы

Все просто до извращения. Попробуешь, и тебе понравится. В начале файла или в первом реквае на странице надо присвоить переменной timestart время, когда началась генерация нашей странички. Предварительно напишем функцию, которая приведет ответ microtime() в удобоваримый вид, по умолчанию это 2 числа через пробел, десятичное долей секунды и действительное в юних-секундах от начала века.

<?php

function getmicrotime(){

list($usec, $sec) = explode(" ",microtime());

return ((float)$usec + (float)$sec);

}

$timestart = getmicrotime();

?>

<html>

<body>

Потом у нас выводится вся наша страница. Наши любимые несколько килобайт кода, море рекваев и куча вспомогательных скриптов. Потом приходит конец страницы. Кстати, надо сделать так, чтобы написанная нами функция getmicrotime была доступна и в конце нашей страницы.

<?php

$timeend = getmicrotime();

$timenormal=$timeend-$timestart;

$timenormal=round ($timenormal, 3);

echo 'Страница генерилась '.$timenormal.' секунды';

?>

</body>

</html>

Этот скрипт прост. Присвоили время с точностью до шести знаков после запятой секунды. Далее посчитали разницу между начальным и конечным значениями. Потом округлили полученное значение до трех знаков после запятой. А теперь ТО САМОЕ число мы выводим в конце страницы.

TIPSa 7

Отправка сообщения со страницы с возвратом на ту же страницу

Если не усложнять себе жизнь, то этого эффекта можно добиться очень просто. Для этого мне хватает двух файлов. Я этот кусок кода вставляю на страницу рекваем и не мучаюсь. Он отсылает инфу из скриптика send.php, лежащего в той же директории, что и файл, в котором включен этот код. Также он сохраняет урл текущей страницы, чтобы потом на него вернуться:

<form method="post" action="send.php">

<b>Твои комменты:</b></br>

<input type="hidden" name="urlnow" value="<?php $url = sprintf("%s%s%s","http://",$HTTP_HOST,$REQUEST_URI); echo "$url"; ?>">

<textarea name="message"><?php

if ($send=="ok"||$send=="bad") {

if ($send=="ok") {

echo "Твои комменты успешно запостены";

}

if ($send=="bad") {

echo "Твой треш не был отправлен";

}

}

else {

?>Incognito (none@email.me):<?php

}

?></textarea>

<input type="submit" name="submit" value="Отправить">

</form>

Теперь, передав наши два парамента urlnow - текущая страница message - текст комментария - в скрипт send.php, мы посмотрим, что же там творится.

<?

$urlback = $urlnow;

$timeall = 'Date: '.Date( 'D, d M Y H:i:s ').$SIGN.sprintf( '%02d%02d',floor($ZONE/3600),floor(($ZONE%3600)/60)). "\n";

$msg .= $timeall;

$msg .= "REMOTE_ADDR: $REMOTE_ADDR\n";

$host = gethostbyaddr("$REMOTE_ADDR");

$msg .= "HOST: $host\n";

$msg .= "$urlback\n";

$msg .= "> КОММЕНТАРИЙ:\n";

$msg .= $message;

Назад на стр. 029-114-1  Содержание  Вперед на стр. 029-114-3