Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

вопрос по Java Script

403
29 июля 2006 года
ace lighting
411 / / 05.05.2006
Я вообще-то чайник в Java Script. у меня такой вопрос: мне нужно сделать что-то вроде яндекса, короче маленький почтовый сервер:) там самый минимум( мне не нужна полная копия яндекса ) и чтобы он работал на компе, тоесть в оффлайне. проверял логин и пароль и помещал тебя на страницу сообщений. вроде это можно организовать с помощью джава скрипт. помогите пожалуйста! только объясните по понятнее, плиз:)
12
29 июля 2006 года
alekciy
3.0K / / 13.12.2005
Хочу уточнить: тебе необходим JS скрипт, который будучи запущенным в одном из окон браузера проверял бы, пришла ли почта?

Ты понимашеь значение слова "оффлайн"?
403
29 июля 2006 года
ace lighting
411 / / 05.05.2006
ну... как сказать-то? знвешь есть учебники оффлайн, там, журналы всякие, а мне нужна почта, а именно меня интересует создание базы данных, занесение туда данных при регистрации, проверка логина и пароля, при входе и отображение личных данных, когда войдёшь.
12
29 июля 2006 года
alekciy
3.0K / / 13.12.2005
Тогда я совершенно не понимаю, зачем тут JavaScript? Тебе локальный mail-сервер нужен. Если ты еще хочешь почту через веб интерфейс (т.е. через браузер), то придется ещё обзавестись web-сервером (Апач к примеру), а так же написать/скачать готовый движок на каком либо языке (PHP, Perl прочее).
2.8K
30 июля 2006 года
Unglued
119 / / 15.09.2005
Опиши, пожалуйста, логическую модель конечного продукта. Т.е. кто будет писать на эту почту, КАК будет писать, на какой адрес? Для кого это все, чисто для себя или, допустим, для локальной сети?
403
30 июля 2006 года
ace lighting
411 / / 05.05.2006
я вообще-то программер на Visual Basice и в одном моём пректе нужен этот самый сервер, но мне не надо сервер на апаче, что нибудь попроще. мне нужно организовать виртуальный интернет, тоесть не подключаясь к нету ты выходишь в этот оффлайн интернет и серфишь его. и в нём мне нужна оффлайн почта. тоесть как установил прогу, пошёл регаться, зарегался - послал какому - нибудь сайту(по задумке оффлайн сайту) и он тебе ответит. как он будет отвечать - это я уже нашёл, с помощью специального движка с искуственным интелектом. а вот с почтой проблемы... теперь-то понятно?:)
2.8K
30 июля 2006 года
Unglued
119 / / 15.09.2005
Теперь понятно.

Скажу так, JS - наихудшее средство для обработки и хранения логинов ипаролей. Дело в том, что где-то надо хранить эти записи, а т.к. JS - это открытый код, то и пути к этим записям будут видны.

На вскидку, удинственное видимое мне решение (и то далеко не лучшее) использовать cookie. А JS уже использовать в своюочередь для записи и чтения этих куков.

Не на вскидку видится другой вариант. Использование XML. Например на "сервере" создается по одному файлу XML на пользователя. Имя файла может быть в виде его пароля. Соответственно чел вводит логин, пароль, скрипт пробует открыть этот файл, читает его, сравнивает логин и пароль и т.д. В этом же файле могут хранится и личные данные.
Опять же, насчет безопасности надо думать.
403
30 июля 2006 года
ace lighting
411 / / 05.05.2006
А можно поподробнее, насчёт XML. А насчёт безопасности, может шифровать содержимое?
12
30 июля 2006 года
alekciy
3.0K / / 13.12.2005
XML это такие файлы. Похожи на HTML, т.е. разметка с содержимым, но можно придумывать и использовать свои теги. Шифровать содержимое не обязательно, главное что бы доступ к этим файлам был только у скрипта (0700, например).
Лично я храню авторизационную информация в одном файле, а не в куче.
2.8K
30 июля 2006 года
Unglued
119 / / 15.09.2005
Ух ты, это как это? Т.е. доступ к файлу чисто скрипту с этого домена? Это значит, что просто так XML-файл не загрузить? А как это организовать, и что за 0700? Можно чуток по подробнее?

Я даже целую ветку сделал для этого!
403
31 июля 2006 года
ace lighting
411 / / 05.05.2006
может выложишь маленький примерчик в архиве. например та же проверка пароля...
12
31 июля 2006 года
alekciy
3.0K / / 13.12.2005
Когда только начанал учить PHP набросал себе такую вот функцию (сейчас-то я это все сдел бы подругому... но работает и ладно) request_xml.php:
Код:
<?php
#######################
## request_xml V1.3a ##
#######################

// Автор: Сундуков Алексей aka alekciy (alekciy @ netcity.ru)
// Дата: 12.02.06
// PHP: V4.3
// Функции требующие подключения:
//      XXXI. DOM XML Functions
//      LIV. Функции iconv (в V5.0 не требуется, входит в ядро)

//  Новое (13.02.06): V1.0 -> V1.1
//      Для функции добавлены два агрумента позволяющие перекодировать возвращаемые значения.
//  Новое, баг (14.02.06): V1.1 -> V1.3
//      Добавлен аргумент $get_tag_content позволяющий функции возвращать или не возвращать содержимое тега.
//      Добавлена логика для корректной обработки XML файлов с одинаковым содержимым.                  
//  Баг (22.02.06): V1.3 -> V1.3a
//      Исправлена логика обработки $get_tag_content = 'no' (возвращался не индексный, а ассоциативный массив с ключами none_$i).

/*
    ОПИСАНИЕ:
   
        string request_xml (string file, string name_atr, string atr_val[, string (yes|no)[, string out_charset[, string in_charset]]])
       
    Функция запроса данных из XML файла $file с возможностью перекодирования. Запрос производится по имени тега и его атрибута.
    Путь до файла $file должен быть относительным и задаваться относительно директории скрипта. Файл должен располагаться в той же
    директории, что и скрипт или же в папках вложеных в эту директорию. Глубина вложений не ограничена.
    Тип возращаемого одномерного массива зависит от атрибута $get_tag_content. XML файл с одинаковым содержимым для тега
    обрабатывается корректно.       
   
    Атрибут $attribute должен принадлежать тегу $tag.
   
    Предусмотрена проверка ошибок.
    Если $file не является XML файлом, или его структура содержит ошибки, то ф. возвращает логическое FALSE.
    Если тега с именем $tag в XML документе нет, то ф. возвращает массив c ОДНИМ элементом вида array[$tag]="none".
    Если в XML файле у тега $tag нет атрибута $attribute, то ф. возращает массив c МНОЖЕСТВОМ элементов
    в котором будут элементы вида array[$tag]="none".
   
    (V1.1)
    Перекодирование: аргументы являются необязательными и при вызове функции могут быть опущены.
    Аргумент $out_charset определяет кодировку возвращаемых данных.
    Аргумент $in_charset определяет кодировку XML файла.
   
    (V1.3)
    $get_tag_content = ('yes'|'no')
    При значении этого аргумента 'yes' ф. возращает ассоциативный массив вида array['содержание_тега_$tag']='содержание_атрибута_$attribute'.
    Т.е. содержимое тега $tag является ключом массива.
    При значении этого аргумента 'no' ф. возращает индексный массив.
   
    Если в XML файле имеется несколько одинаковых тегов с идеинтичным содержимым, то функция возращает содержимое только последнего из
    обработанных тегов. Теперь если в файле имеются теги $tag с одинаковым содержимым, то ф. возращает такое содержимое как ключи
    массива + порядковый номер. Т.е. 'содержание_тега_$tag'1, 'содержание_тега_$tag'1, ... 'содержание_тега_$tag'n
*/

function request_xml ($file, $tag, $attribute, $get_tag_content='yes', $out_charset='windows-1251', $in_charset='UTF-8') {
    $xml_file=getcwd()."/$file";
    if (!$doc=domxml_open_file ($xml_file)) {
        return FALSE;
    };
    if ($get_tag_content == 'yes') {
    } else if ($get_tag_content == 'no') {
    } else {
        $get_tag_content='yes';
    };
    $DomElements = $doc->document_element();
    $array_elements = $DomElements->get_elements_by_tagname ($tag);
    if ($array_elements == NULL ) {
        $request_xml [$tag]="none";
        return $request_xml;
    };
    $n=1;
    $request_xml=array();
    for ($i=0; $i < count ($array_elements); $i++) {
        $element = $array_elements [$i];
        if ($get_tag_content == 'yes') {
            $content_tag = $element->get_content();
        } else {
            $content_tag = "no";
        };
        $atr = $element->get_attribute_node ($attribute);
        if ($atr == FALSE) {
            $content_atr = "none";
        } else {
            $content_atr = $atr->value();
        }; 
        if ($content_tag == FALSE) {
            $content_tag = "none";
        } else if ($content_tag == "no") {
            $content_tag = $i;
        };
        if (!iconv ($in_charset, $out_charset, $content_atr)) {
                $out_charset='windows-1251';
                $in_charset='UTF-8';
        };
        $content_atr = iconv ($in_charset, $out_charset, $content_atr);
        $content_tag = iconv ($in_charset, $out_charset, $content_tag);
        if (array_key_exists ($content_tag, $request_xml)) {
            $content_tag=$content_tag."_".$n;
            $n++;
        };
        $request_xml [$content_tag]=$content_atr;
    };
    return $request_xml;
};
?>

Которую через include-юд вставляю в другие нужные мне скрипты.
В этих скриптах обращаюсь к функции (файл с авторизационными данными foto_gallery.xml лежит в папке bd доступной для чтения и изменения только скрипту):
 
Код:
$nick = @request_xml ('bd/foto_gallery.xml', 'User', 'nick_name', 'no');
$password = @request_xml ('bd/foto_gallery.xml', 'User', 'password', 'no');

Пользователь в форме отправляем мне авторизационные данные ($_POST['nick'] для имени, и в ячейке $_POST['pas'] пароль). Я эти данные проверяю:
 
Код:
foreach ($password as $key => $val) {
    if ($_POST['nick'] == $nick[$key] AND $_POST['pas'] == $password[$key]) {
        $auth = 'yes';
    };
};

И потом по флагу $auth сужу, была авторизация или нет.
Причем в цикле я проверя не просто наличия в БД такого и пользователя и пароля. Может так оказатся, что в БД есть такой пользователь и есть пароль, НО они принадлежат разным учетным записям. Поэтому если делать просто проверку на начилие записи, то скрипт авторизует пользователя, хотя были присланы и неверные данные.
Поэтому я проверку загнал в цикл с переменной $key которая мне и гарантирует, что будет проводиться не просто проверка наличия пароля и имени в БД, а будет проводиться проверка именно пары имя-пароль.
А БД значит такая была:
 
Код:
<?xml version="1.0" encoding="UTF-8"?>
<FotoGallery version="1.0">
    <Name>Фото галерея</Name>
    <Branch id="01.00.00.00.00" name="Альбомы пользователей">
        <User id="01.01.00.00.00" nick_name="alekciy" password="pass" />
    </Branch>
</FotoGallery>
403
31 июля 2006 года
ace lighting
411 / / 05.05.2006
Фу...! Ну ты дал. Так. Как я понял надо создать файл request_xml.php. Блин а дальше вообще ни в какую:( Тут уже пхп пошёл. А страничка, то у меня HTML и как туда его вставить... опиши, пожалуйста поконкретней с хтмл куском. а то я запутался во всех этих иклуде auth или как их там. я ведь новичёк... объясни, а.
403
31 июля 2006 года
ace lighting
411 / / 05.05.2006
я вот ту ещё немного подумал. создал файл request_xml.php с указанной начинкой. в папку bd засунул базу данных XML. таковой у нас является foto_gallery.xml. и создал в коде функцию проверки
function proverka()
foreach ($password as $key => $val) {
if ($_POST['nick'] == $nick[$key] AND $_POST['pas'] == $password[$key]) {
$auth = 'yes';
};
};

я обращаюсь к ней по щелчку на кнопке вот так :
<input type=button name=vxod value=Войти onClick="proverka()">

и браузер мне пишет что на странице поизошёл script error
12
31 июля 2006 года
alekciy
3.0K / / 13.12.2005
[QUOTE=ace lighting]Фу...! Ну ты дал. Так. Как я понял надо создать файл request_xml.php. Блин а дальше вообще ни в какую:( Тут уже пхп пошёл. А страничка, то у меня HTML и как туда его вставить...[/QUOTE]
PHP это PHP, а HTML это HTML. У них разные задачи и цели. Если ты расчитываешь реализовать этот код на HTML+CSS+JavaScript, то глубоко ошибаешься. Вся проверка работает на PHP и ни как иначе.
15
01 августа 2006 года
shaelf
2.7K / / 04.05.2005
 
Код:
function proverka()
foreach ($password as $key => $val) {
if ($_POST['nick'] == $nick[$key] AND $_POST['pas'] == $password[$key]) {
$auth = 'yes';
};
};
Столько ошибок редко встретишь. Может хотя бы синтаксис подучить?
403
01 августа 2006 года
ace lighting
411 / / 05.05.2006
я же новичёк всё-таки:(:( я прошу вас объяснить, как мне всё это организовать? скажу, даже, волшебное слово - пожалуйста...
12
01 августа 2006 года
alekciy
3.0K / / 13.12.2005
А начать нужно с изучения PHP (знание HTML+CSS уже должно быть). По манам/хелпам или книгам. Тогда и станет понятно, как организовать.
http://ru.php.net/get/php_manual_ru.chm/from/this/mirror
403
03 августа 2006 года
ace lighting
411 / / 05.05.2006
неужели никак не льзя обойтись html и java script? тут и надо - то всего, что проверить логин и пасс, да и записать их, когда логинишься...
12
03 августа 2006 года
alekciy
3.0K / / 13.12.2005
[QUOTE=ace lighting]неужели никак не льзя обойтись html и java script? тут и надо - то всего, что проверить логин и пасс, да и записать их, когда логинишься...[/QUOTE]
Нет, ни как нельзя. Учи матчасть. Вот у shaelf-а в подписи линки.
403
03 августа 2006 года
ace lighting
411 / / 05.05.2006
Ну хоть на этом спасибо. Буду учиться!
403
04 августа 2006 года
ace lighting
411 / / 05.05.2006
начал читать тутор по PHP и понял, что он мне не подойдёт! для выполнения скриптов PHP нужен установленный на компьюторе WEB - сервер, но веб сервер не входит в планы моего проекта. Мне что, ещё и сервер на Visual Basic разрабатывать, что уже проблематично! мне нужно то, что может сделать вышеописанное, если на компьюторе не установлен ни PHP ни Apache ни MySql...
12
04 августа 2006 года
alekciy
3.0K / / 13.12.2005
[QUOTE=ace lighting]начал читать тутор по PHP и понял, что он мне не подойдёт! для выполнения скриптов PHP нужен установленный на компьюторе WEB - сервер, но веб сервер не входит в планы моего проекта.[/QUOTE]
Сказано же было, матчасть учи! Авторизация средствами HTML+ JS сделать нельзя! Статичные HTML страницы не могу взаимодествовать с пользователем. Должен быть серверный скрипт. Он может быть написан на чем угодно: PHP, Perl, JSP, ASP.NET и даже на C++ или же VB, но с последними двумя придятся погемороиться.
Но скрипт/программа на сервере должна быть. И WEB-сервер должне быть (готовые или самописная программа). В интрасети (интранете) тем более.
403
05 августа 2006 года
ace lighting
411 / / 05.05.2006
Сорри, но PHP, Perl и т.д. и т.п кроме HTML и JS мне не подходят. Чтож попробую поискать что - нибудь сам!!!
12
05 августа 2006 года
alekciy
3.0K / / 13.12.2005
[QUOTE=ace lighting]Сорри, но PHP, Perl и т.д. и т.п кроме HTML и JS мне не подходят.[/QUOTE]
Значит ни чего у тебя не выйдет. По крайней мере безопастным это назвать будет нельзя. Потому как код HTML и JS являются публичными.
Успехов.
403
05 августа 2006 года
ace lighting
411 / / 05.05.2006
А кто говорил о безопасности!! в моём проекте безопасность не главное... Вот поэтому я вас и просил помочь мне именно используя HTML и JS.
12
05 августа 2006 года
alekciy
3.0K / / 13.12.2005
[QUOTE=ace lighting]ну... как сказать-то? знвешь есть учебники оффлайн, там, журналы всякие, а мне нужна почта, а именно меня интересует создание базы данных, занесение туда данных при регистрации, проверка логина и пароля, при входе и отображение личных данных, когда войдёшь.[/QUOTE]
Все, что тыт тут перечисляешь может работать только на сервере. Нужна БД? MySQL значит. Авторизация? WEB-сервер с движком на нем.
И на как иначе. Подругому нельзя.

JS может передать логин и пароль на какой либо сервер, установить куки, пройти авторизацию, но все это on-line происходит.

Если я правильно уловил задачу, то посредством HTML+JS её решить нельзя.
403
05 августа 2006 года
ace lighting
411 / / 05.05.2006
тогда придётся клепать на бейсике самопальный веб сервер :(
12
05 августа 2006 года
alekciy
3.0K / / 13.12.2005
Нафига.... готовых решений много, не нужно изобретать велосипед. Достаточно подучить матчасть ;)
403
06 августа 2006 года
ace lighting
411 / / 05.05.2006
ну ладно попробую...
20K
06 августа 2006 года
XTR000
3 / / 06.08.2006
[QUOTE=alekciy]Нафига.... готовых решений много, не нужно изобретать велосипед. Достаточно подучить матчасть ;)[/QUOTE]

Матчасть - еще не главное ;)
403
06 августа 2006 года
ace lighting
411 / / 05.05.2006
а что главное!
20K
07 августа 2006 года
XTR000
3 / / 06.08.2006
Логика и здравый смысл. Ну, и конечно, умение анализировать информацию и добывать ее вообще.
12
07 августа 2006 года
alekciy
3.0K / / 13.12.2005
[QUOTE=XTR000]...добывать ее вообще.[/QUOTE]
Вот это и есть матчасть. Наличие у вопрошающего логике предполагаем по умолчанию. Т.к. если у пользователя нет логики и мозгов, ему ни чего не поможет.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог