Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 1267 • Страница 15 из 64<  1 ... 12  13  14  15  16  17  18 ... 64  >
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

BMR Билли Бонс
Спасибо за помощь, но я уже решил проблему:
поставил Small HTTP server - весит всего ничего, для моих нужд думаю хватит



Партнер
 

Member
Статус: Не в сети
Регистрация: 18.11.2002
Откуда: не вернуться
chizar писал(а):
неработает сцылка http://phpfaq.ru/
мож эт тока у меня!?

Билли Бонс писал(а):
chizar писал(а):
неработает сцылка http://phpfag.ru/ мож эт тока у меня!?

Наверное, надо набирать так: http://phpfaq.ru/ :D

Не только это http://phpclub.ru/talk/showthread.php?s=&threadid=88059 :)

Vladivostok! писал(а):
поставил Small HTTP server

Для обучения хватит, а когда научишься то про установку вопросов уже не возникнет
(с опытом в программировании приходит привычка использовать поиск) :D

_________________
Летели гуси-лебеди, а им навстречу - воробьи-пингвины и соловьи-страусы...


 

Есть скрипт:
Код:
<?php
require ('xajax.inc.php');
 
function doTimestamp()  {
  $objResponse = new xajaxResponse();
  $doc = new DOMDocument;
  $doc2 = "http://www.timezero.ru/cgi-bin/info.pl?Dastin";
  $fd = file_get_contents($doc2);
  if (preg_match ("/user/i", $fd)) {
     $doc->loadXML("<ROOT>".$fd."</ROOT>");
     $USER = $doc->getElementsByTagName('USER');
     $USER_online = $USER->item(0)->getAttribute('online');
     }
  if($USER_online==1) $sOut = "Онлайн";
  else $sOut = "Офф";
  $objResponse->addAssign("timebox", "innerHTML", $sOut);
  return $objResponse->getXML();
}
 
$objAjax = new xajax();
$objAjax->registerFunction('doTimestamp');
$objAjax->processRequests();
$objAjax->printJavascript();
?>
 
<div id="timebox">&nbsp;</div>
<input type="button" class="button" value="Проверить" onclick="xajax_doTimestamp();" />

После нажатия на книпку вылезает ошибка: Error: the XML response that was returned from the server cannot be processed.
В чем дело? Подскажите кто знает...


 

Member
Статус: Не в сети
Регистрация: 18.11.2002
Откуда: не вернуться
Dastin писал(а):
the XML response that was returned from the server cannot be processed.

Словарь дать ?

_________________
Летели гуси-лебеди, а им навстречу - воробьи-пингвины и соловьи-страусы...


 

Цитата:
Словарь дать ?

Зачем? Меня интересует почему скрипт не может файл обработать? Отдельно функция работает, в связке с ajax - нет. Почему? Как исправить?


 

Member
Статус: Не в сети
Регистрация: 18.11.2002
Откуда: не вернуться
Dastin писал(а):
Меня интересует почему скрипт не может файл обработать?

А меня интересует почему земля круглая, солнце горячее а люди ходят по полу а не по потолку :)

Dastin писал(а):
Отдельно функция работает

Пускай работает, значит она не виновата (работает, не трогай)
Dastin писал(а):
в связке с ajax - нет

Так и копай ajax, а функция которая работает то тут причём ?

_________________
Летели гуси-лебеди, а им навстречу - воробьи-пингвины и соловьи-страусы...


 

Как буд-то самый умный. Ни одного совета по делу, одна философия. Я, конечно, понимаю что я лузер и ничего не знаю, собственно, поэтому и обратился на форум, но зачем придираться к словам?


 

Member
Статус: Не в сети
Регистрация: 28.03.2005
Откуда: Латвия, Рига
Dastin писал(а):
Есть скрипт:
Код:
<?php
require ('xajax.inc.php');
 
function doTimestamp()  {
  $objResponse = new xajaxResponse();
  $doc = new DOMDocument;
  $doc2 = "http://www.timezero.ru/cgi-bin/info.pl?Dastin";
  $fd = file_get_contents($doc2);
  if (preg_match ("/user/i", $fd)) {
     $doc->loadXML("<ROOT>".$fd."</ROOT>");
     $USER = $doc->getElementsByTagName('USER');
     $USER_online = $USER->item(0)->getAttribute('online');
     }
  if($USER_online==1) $sOut = "Онлайн";
  else $sOut = "Офф";
  $objResponse->addAssign("timebox", "innerHTML", $sOut);
  return $objResponse->getXML();
}
 
$objAjax = new xajax();
$objAjax->registerFunction('doTimestamp');
$objAjax->processRequests();
$objAjax->printJavascript();
?>
 
<div id="timebox">&nbsp;</div>
<input type="button" class="button" value="Проверить" onclick="xajax_doTimestamp();" />

После нажатия на книпку вылезает ошибка: Error: the XML response that was returned from the server cannot be processed.
В чем дело? Подскажите кто знает...

Дебагом... выведи что получил в Responce, что за документ скрипт вытягивает и.т.д., может где в Ajax либе что-то не так... так просто сказать почти не возможно.. Я с таким не сталкивался, ибо ни с XML ни с Ajax не работал


 

Member
Статус: Не в сети
Регистрация: 18.11.2002
Откуда: не вернуться
Dastin писал(а):
Как буд-то самый умный

Если ты умнее меня то почему задаёшь вопрос ?
Dastin писал(а):
Ни одного совета по делу, одна философия

У тебя функция работает, а входные данные не те, я в этом виноват ?
Dastin писал(а):
понимаю что я лузер и ничего не знаю

В этом твоя ошибка, ты умнее меня, просто ты не используешь свои мозги а хочешь использовать мои !!!

А я всё равно а этом виноват ?

_________________
Летели гуси-лебеди, а им навстречу - воробьи-пингвины и соловьи-страусы...


 

Member
Статус: Не в сети
Регистрация: 14.01.2004
Откуда: Киев, Украина
Прекратить грызню.

_________________
Ку ку


 

Member
Статус: Не в сети
Регистрация: 18.11.2002
Откуда: не вернуться
Смотрю тема заглохла, давайте хоть обсудим что нибудь...

Например покритикуйте код гостевушки...
ссылка - для тех кто на нормальных браузерах (XHTML)
ссылка - для тех кто на устаревших браузерах (HTML)

Только делаем сноску на то что это демонстрационная модель (была написана как иллюстрация к статье, однако статья так и не была написана), тут важны не аспекты крутости и функциональности (их тут нету), а скорее правильность реализации выбраных подходов, и правильность выбора этих подходов...

_________________
Летели гуси-лебеди, а им навстречу - воробьи-пингвины и соловьи-страусы...


 

*Cofradia Intel*
Статус: Не в сети
Регистрация: 06.12.2005
Откуда: Ростов-на-Дону
Код:
$fp = fopen(DB_FILE, "r+");
а если после этого просто написать
Код:
or die('сбой открытия');
? :)))

Код:
 //    Читаем базу данных.
$content = fread($fp, filesize(DB_FILE));

//    Преобразуем прочитанный текст в массив. (т.е в базу данных.)
$array = unserialize($content);
блин... этого ваще не пойму =))) может проще в массив прочитать с file() ? =)

Код:
if ( isset($_POST['name']) && isset($_POST['text']) ) {

в данном случае лучше || вместо &&... ИМХО...

Код:
 if ( !empty($_POST['name']) && !empty($_POST['text']) ) {


- аналогично


З.Ы. а где фильтрация пробелов, HTML и прочмх потенциально опасных символов ???

_________________
modlabs.net


 

Member
Статус: Не в сети
Регистрация: 19.01.2005
Откуда: Москва ЦАО
Меня тут попросили сделать статус загрузки файла как на рапидшаре(при загрузке файла на нее).
Там значит ajax каждые пять секунд отправляет запрос cgi-скрипту и узнает сколько уже загружено.
Можно ли подобное реализовать на php?


 

Member
Статус: Не в сети
Регистрация: 18.11.2002
Откуда: не вернуться
DZhon писал(а):
or die('сбой открытия');

Зачем как проще если надо как правильнее ?
(это самый худший вариант и привыкать к такому недопустимо)
DZhon писал(а):
блин... этого ваще не пойму =))) может проще в массив прочитать с file()

file() не подойдёт, скорее file_get_contents()
однако в этом нет смысла зачем два раза открывать файл
(сначала для чтения потом для записи если можно один раз)
DZhon писал(а):
в данном случае лучше || вместо &&... ИМХО.

А ИМХО не интересует, давай факты
Косвенный смысл той статьи которая так и не была написана был прост.
Хоть шуруп вбитый молотком и держится лучше чем гвоздь вкрученый отвёрткой,
но можно просто просто не изобретать велосипед с квадратными колёсами
а использовать вещи(функции/переменные/итд) по их прямому назначению
DZhon писал(а):
а где фильтрация пробелов, HTML и прочмх потенциально опасных символов ?

Фильтрация перед выводом в браузер есть, а перед заносом в базу фильтровать что либо это изврат,
всё равно что с египетских пирамид скалывать иероглифы,
данные должны храниться в том виде в котором пришли.

_________________
Летели гуси-лебеди, а им навстречу - воробьи-пингвины и соловьи-страусы...


 

*Cofradia Intel*
Статус: Не в сети
Регистрация: 06.12.2005
Откуда: Ростов-на-Дону
Цитата:
данные должны храниться в том виде в котором пришли.
- не согласен... сильно не согласен... это все равно что хранить мусор на столе, а потом перед едой его убирать :D
Цитата:
А ИМХО не интересует, давай факты
- ну не ИМХО, а точно, ибо могут прислать же заполненный нейм, но пустой текст :D как отвертимся :?

Цитата:
file() не подойдёт, скорее file_get_contents()
однако в этом нет смысла зачем два раза открывать файл
(сначала для чтения потом для записи если можно один раз)
- если так, то я ваще не понял кутерьмы с преобразованием в массив и обратно...

Цитата:
Зачем как проще если надо как правильнее ?
(это самый худший вариант и привыкать к такому недопустимо)
- P.S. можно подробнее, просто хочу разобраться немного...

_________________
modlabs.net


 

Member
Статус: Не в сети
Регистрация: 18.11.2002
Откуда: не вернуться
DZhon писал(а):
не согласен... сильно не согласен

Хорошо, конвертанул ты данные в HTML вырезал всю лишнюю на твой взгля информацию, а потом БАЦ и надо добавить модули RSS, отсылки постов на почту, итд. откуда вырезанную информацию восстановиш ?
(на эту тему много уже сказано, я привёл только простые примеры, на самом деле всё сложнее, но в рамках одного сообщения это не передать)
DZhon писал(а):
могут прислать же заполненный нейм, но пустой текст как отвертимся :?

Не будем постить, логику скрипта сечёш ? (вижу что нет)
DZhon писал(а):
если так, то я ваще не понял кутерьмы с преобразованием в массив и обратно

База данных это трёх-мерный массив (тип "array"), чтоб его сохранить в файле нужно привести в текст (тип "string") для этого и используется сериализация.
А file() предназначен совсем для другого.

_________________
Летели гуси-лебеди, а им навстречу - воробьи-пингвины и соловьи-страусы...


 

*Cofradia Intel*
Статус: Не в сети
Регистрация: 06.12.2005
Откуда: Ростов-на-Дону
Цитата:
Не будем постить, логику скрипта сечёш ? (вижу что нет)
вижу, не сечешь ты.. ведь && означает, что чтобы твой if выполнился надо И то И другое... а II означает, что хотя бы одно из них !!!


Цитата:
Хорошо, конвертанул ты данные в HTML вырезал всю лишнюю на твой взгля информацию, а потом БАЦ и надо добавить модули RSS, отсылки постов на почту, итд. откуда вырезанную информацию восстановиш ?
(на эту тему много уже сказано, я привёл только простые примеры, на самом деле всё сложнее, но в рамках одного сообщения это не передать)
- ну да, понатыкают тебе кулхацкеры алертов на ява скрипте, пробелов типа " 5Xпробелов...Привет" ... собираешься хлам собирать ??? это самое безобидное что они могут сделать...

_________________
modlabs.net


 

Member
Статус: Не в сети
Регистрация: 18.11.2002
Откуда: не вернуться
DZhon писал(а):
все равно что хранить мусор на столе

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

DZhon писал(а):
понатыкают тебе кулхацкеры алертов на ява скрипте

Читай внимательнее
virus писал(а):
Фильтрация перед выводом в браузер есть

И именно там она и должна быть !!! (а ты предлогаешь её сделать раньше, а это недопустимо)

DZhon писал(а):
ведь && означает, что чтобы твой if выполнился надо И то И другое

Именно это там и нужно
(а тот глюк что ты отловил на той гостевушке именно потому что там не так, я как глянул код, самому страшно стало, как я мог такое написать, ужас)

_________________
Летели гуси-лебеди, а им навстречу - воробьи-пингвины и соловьи-страусы...


 

Member
Статус: Не в сети
Регистрация: 28.03.2005
Откуда: Латвия, Рига
DZhon писал(а):
Код:
$fp = fopen(DB_FILE, "r+");
а если после этого просто написать
Код:
or die('сбой открытия');
? :)))

Код:
 //    Читаем базу данных.
$content = fread($fp, filesize(DB_FILE));

//    Преобразуем прочитанный текст в массив. (т.е в базу данных.)
$array = unserialize($content);
блин... этого ваще не пойму =))) может проще в массив прочитать с file() ? =)

Код:
if ( isset($_POST['name']) && isset($_POST['text']) ) {

в данном случае лучше || вместо &&... ИМХО...

Код:
 if ( !empty($_POST['name']) && !empty($_POST['text']) ) {


- аналогично


З.Ы. а где фильтрация пробелов, HTML и прочмх потенциально опасных символов ???

Если мы уверенны что фаил есть и что там есть как минимум пустой массив (а фаил должен инициализироваться при установке скрипта именно так), то хватает просто
Код:
$array = unserialize(file_get_contents(DB_FILE));

и это будет правильно, потому что держать открытым фаил надо минимум времени, что бы другие копии скрипта могли его спокойно читать и писать!

С && всё правильно, не нужно пихать запись с пустым заголовком или текстом в базу, выдаём ошибку о том, что нужно заполнить оба. Тоже правильно.

file() читает фаил в масив, где 1 строка = 1 элемент масива. В данном случае мы храним одну единственную сериализованную строку в фаиле... Но такой способ подойдёт только для гостевой небольшого размера... Если там перевалит хотя бы за 200 записей, скрипт начнёт съедать кучу памяти, да и обработка станет медленной.
Добавлено спустя 30 секунд
Позже гляну код и отпишусь :)


 

Member
Статус: Не в сети
Регистрация: 18.11.2002
Откуда: не вернуться
_Psih писал(а):
Код:
$array = unserialize(file_get_contents(DB_FILE));   

и это будет правильно, потому что держать открытым фаил надо минимум времени, что бы другие копии скрипта могли его спокойно читать и писать!

Глянь код, в том случае файл открыт именно минимум времени, фунцция file_get_contents не на столько быстрее чтоб оправдать своё использование в этом конкретном случае

_________________
Летели гуси-лебеди, а им навстречу - воробьи-пингвины и соловьи-страусы...


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 1267 • Страница 15 из 64<  1 ... 12  13  14  15  16  17  18 ... 64  >
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan