Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   Скрипты (http://forum.oszone.net/showthread.php?t=125115)

ManHack 05-12-2008 16:48 973269

Скрипты
 
Здравствуйте!
Мне нужен скрипт, который определяет IP машины, зашедшей на страницу с этим скриптом.
Желательно в нескольких вариантах: PHP, JavaScript, CGI.
Скрипт должен записать IP посетителя в файл (тогда запись должна быть вида "время - IP") или отправить на e-mail.

Coutty 05-12-2008 17:07 973286

PHP:
PHP код:

<?php
$fp 
fopen("log.txt"'a');
fwrite ($fpdate("Y-m-d H:m:s") . " - " $_SERVER['REMOTE_ADDR'] . "
"
);
fclose($fp);
?>

Записывает в файл (на экран инфу не выводит).

На JS я не знаю. Да и зачем это надо? Всё равно об этом мог бы узнать только посетитель. А ему и на PHP можно сгенерировать :)

ManHack 27-12-2008 12:23 991406

Спасибо. А можно скрипт, который добавляет куку (или несколько cookies) в броузер?
И проверяет, добавилась ли она. Если добавилась, выводит ссылку, в противном случае выдаёт что-то в ключе: "Oops!.. Error :("

Igor_I 27-12-2008 17:07 991587

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/reserve...es.cookies.php
Или можно так.
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);
   



ManHack 29-12-2008 10:47 992819

Благодарю ^^
'user_id' - заголовок вносимой куки, а 'hash' - её содержимое, я правильно понял?

Igor_I 29-12-2008 18:37 993191

Получается так :)

ManHack 02-01-2009 12:06 995520

А вот теперь у меня есть грамотно офрмленный XML.
И мне надо сделать из него табличку.
Но не просто табличку, а чтобы она была разделена на страницы (содержимое каждой страницы в XML-файле обрамлено тэгом <FOLDER> </FOLDER> ). XML-файл будет расширяться со временем.
Очень неплохо бы включить возможность сортировки содержимого на конкретной странице (по дате, по алфавиту), но не обязательно.
И ещё я хочу посмотреть как выглядить скрипт, который разбивает на страницы не по тэгу <FOLDER>, а отсчитав стандартное кол-во элементов для страницы (например, 20).

Coutty 02-01-2009 17:01 995683

Если вы хотите работать с 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 код:

<?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 с табличкой Имя-возраст.


Время: 11:19.

Время: 11:19.
© OSzone.net 2001-