Показать полную графическую версию : Скрипты
Здравствуйте!
Мне нужен скрипт, который определяет IP машины, зашедшей на страницу с этим скриптом.
Желательно в нескольких вариантах: PHP, JavaScript, CGI.
Скрипт должен записать IP посетителя в файл (тогда запись должна быть вида "время - IP") или отправить на e-mail.
PHP:
<?php
$fp = fopen("log.txt", 'a');
fwrite ($fp, date("Y-m-d H:m:s") . " - " . $_SERVER['REMOTE_ADDR'] . "
");
fclose($fp);
?>
Записывает в файл (на экран инфу не выводит).
На JS я не знаю. Да и зачем это надо? Всё равно об этом мог бы узнать только посетитель. А ему и на PHP можно сгенерировать :)
Спасибо. А можно скрипт, который добавляет куку (или несколько cookies) в броузер?
И проверяет, добавилась ли она. Если добавилась, выводит ссылку, в противном случае выдаёт что-то в ключе: "Oops!.. Error :("
http://phpclub.net/manrus/f/setcookie.html
http://ru2.php.net/manual/ru/function.setcookie.php
Я вот только со временем так и не разобрался, оба компьютера в Москве (+3ч), а кука ставит время как есть, в GMT.
При проверки используется массив $_COOKIE, http://ru2.php.net/manual/ru/reserved.variables.cookies.php
Или можно так.
$filterforcookie = array
(
'user_id' => FILTER_VALIDATE_INT,
'hash' => array (
"filter" => FILTER_VALIDATE_REGEXP,
"options" => array(
"regexp" => '/^[a-zA-Z0-9]{32,32}$/')
),
'profile' => FILTER_VALIDATE_BOOLEAN,
);
$filtercookie = filter_input_array(INPUT_COOKIE, $filterforcookie);
if (isset($filtercookie['user_id']) and isset($filtercookie['hash']))
{
}
else
{
print "Включите куки";
#print_r ($filtercookie);
}
Благодарю ^^
'user_id' - заголовок вносимой куки, а 'hash' - её содержимое, я правильно понял?
А вот теперь у меня есть грамотно офрмленный XML.
И мне надо сделать из него табличку.
Но не просто табличку, а чтобы она была разделена на страницы (содержимое каждой страницы в XML-файле обрамлено тэгом <FOLDER> </FOLDER> ). XML-файл будет расширяться со временем.
Очень неплохо бы включить возможность сортировки содержимого на конкретной странице (по дате, по алфавиту), но не обязательно.
И ещё я хочу посмотреть как выглядить скрипт, который разбивает на страницы не по тэгу <FOLDER>, а отсчитав стандартное кол-во элементов для страницы (например, 20).
Если вы хотите работать с XML, то стоит взяться за изучение XSLT. Там есть инструкции для простой выборки (гораздо проще, чем на php), ветвления, циклы, счётчики, сортировки и много всего ещё. Сам я предметом владею не очень (в части счётчиков, например).
XML:
<?xml version="1.0" encoding="windows-1251"?>
<site>
<title>Кошачья мастерская</title>
<folder>
<cat>
<name>Барсик</name>
<age>85</age>
</cat>
<cat>
<name>Тузик</name>
<age>7</age>
</cat>
</folder>
</site>
и такой XSL-файл:
<?xml version="1.0" encoding="windows-1251"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output
method="xml"
encoding="UTF-8"
indent="yes"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" />
<xsl:template match="site">
<html>
<head>
<title><xsl:value-of select="title" /></title>
</head>
<body>
<table>
<tr><td>Имя кота</td><td>Возраст</td></tr>
<xsl:for-each select="folder/cat">
<tr><td><xsl:value-of select="name" /></td><td><xsl:value-of select="age" /> лет</td></tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
На первый взгляд смотрится внушительно, но на самом деле ничего сложного.
А php-код совсем маленький будет:
<?php
$xslDoc = new DOMDocument("1.0", "windows-1251");
$xslDoc->load("doc.xsl");
$xmlDoc = new DOMDocument("1.0", "windows-1251");
$xmlDoc->loadXML('doc.xml');
$proc = new XSLTProcessor();
$proc->importStylesheet($xslDoc);
echo $proc->transformToXML($xmlDoc);
?>
На выходе будет XHTML с табличкой Имя-возраст.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.