FAQ Поиск Пользователи Группы ФотоАльбом  Регистрация Войти и проверить личные сообщения Вход
php с нуля
На страницу 1, 2  След.
 
Начать новую тему   Ответить на тему       Список форумов Forum.profintel.ru -> Программерский раздел
Предыдущая тема :: Следующая тема  
Автор Сообщение
Wizard RAA
Генерал


Репутация: 41    

Зарегистрирован: 17.03.2005
Сообщения: 3010
Откуда: из Ордена Полуночи, 248 сегмент

СообщениеДобавлено: Сб Dec 15, 2007 12:02 am    Заголовок сообщения: php с нуля Ответить с цитатой

взял ман, пробую воспроизвести:

главная страница:
Код:

<FORM ACTION="mult.php" METHOD="GET">
   <INPUT TYPE="text" NAME="first" SIZE="4" MAXLENGTH="4">
   <INPUT TYPE="text" NAME="second" SIZE="4" MAXLENGTH="4">
   <INPUT TYPE="Submit" VALUE="Умножить">
</FORM>


mult.php:
Код:

<?php
Header("Content-type: text/html");
echo "$first умножить на $second получится ", $first*$second;
?>


Пишет после кликанья на кнопку:
Notice: Undefined variable: first in e:\web docs\mult.php on line 3
Я то думал переменная $first передаётся методом get,
но он говорит что её не знает.

В чём тут может быть дело?

_________________
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
TSergey
Генерал Майор


Репутация: 77    

Зарегистрирован: 25.03.2003
Сообщения: 6237


СообщениеДобавлено: Сб Dec 15, 2007 12:06 am    Заголовок сообщения: Ответить с цитатой

Читать что такое register_globals_on и почему оно плохо.

Изучать что такое глобальные массивы _GET, _POST, _REQUEST и нафиг они вообще нужны.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Wizard RAA
Генерал


Репутация: 41    

Зарегистрирован: 17.03.2005
Сообщения: 3010
Откуда: из Ордена Полуночи, 248 сегмент

СообщениеДобавлено: Сб Dec 15, 2007 12:08 am    Заголовок сообщения: Ответить с цитатой

TSergey, ок, посмотрим
_________________
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Станислав Бергер
Слава


Репутация: 35    

Зарегистрирован: 25.03.2003
Сообщения: 4520
Откуда: Юго-Запад

СообщениеДобавлено: Сб Dec 15, 2007 12:18 am    Заголовок сообщения: Ответить с цитатой

<?php
Header("Content-type: text/html");
echo "$first умножить на $second получится ".$first*$second;
?>

_________________

Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
TSergey
Генерал Майор


Репутация: 77    

Зарегистрирован: 25.03.2003
Сообщения: 6237


СообщениеДобавлено: Сб Dec 15, 2007 12:43 am    Заголовок сообщения: Ответить с цитатой

Станислав Бергер писал(а):
<?php
Header("Content-type: text/html");
echo "$first умножить на $second получится ".$first*$second;
?>
Читать http://www.php.net/manual/ru/function.echo.php
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Станислав Бергер
Слава


Репутация: 35    

Зарегистрирован: 25.03.2003
Сообщения: 4520
Откуда: Юго-Запад

СообщениеДобавлено: Сб Dec 15, 2007 12:45 am    Заголовок сообщения: Ответить с цитатой

TSergey, буду знать Smile
_________________

Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Wizard RAA
Генерал


Репутация: 41    

Зарегистрирован: 17.03.2005
Сообщения: 3010
Откуда: из Ордена Полуночи, 248 сегмент

СообщениеДобавлено: Сб Dec 15, 2007 1:15 am    Заголовок сообщения: Ответить с цитатой

Пробовал с массивчиками:

Код:

<FORM ACTION="calc.php" METHOD="POST">
<INPUT TYPE="text" NAME="first" SIZE="4" MAXLENGTH="4">
<INPUT TYPE="Submit" VALUE="Calculate">
</FORM>


и calc.php:
Код:

<?php
$a = $_POST['first'];
echo $a;
echo "x20= ", $a*20;
?>


С методом пост, всё работает, а вот если вместо POST написать GET - то не хочет.
Почему то не формирует строку вида calc.php?first=5

_________________
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Дарк
Капитан


Репутация: 31    

Зарегистрирован: 30.01.2005
Сообщения: 594


СообщениеДобавлено: Сб Dec 15, 2007 1:48 pm    Заголовок сообщения: Ответить с цитатой

Где гет написать?
Если менять метод посылки - надо и в форме, и в пхп-коде менять пост на гет.
кроме того, обычно данные из формы гетом не передают.

_________________
"A good programmer is someone who looks both ways before crossing a one-way street". Doug Linder
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
TSergey
Генерал Майор


Репутация: 77    

Зарегистрирован: 25.03.2003
Сообщения: 6237


СообщениеДобавлено: Сб Dec 15, 2007 2:58 pm    Заголовок сообщения: Ответить с цитатой

Дарк писал(а):
кроме того, обычно данные из формы гетом не передают.

С чего хоть это?

Большие тексты, файлы - не передают.
Зайди на яндекс, гугл и прочие поисковики: хочешь сказать, что они настолько тупы, что передают все через GET?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Wizard RAA
Генерал


Репутация: 41    

Зарегистрирован: 17.03.2005
Сообщения: 3010
Откуда: из Ордена Полуночи, 248 сегмент

СообщениеДобавлено: Сб Dec 15, 2007 4:03 pm    Заголовок сообщения: Ответить с цитатой

Дарк, поменяно и там и тут: и в форме и в скрипте.
Почему-то форма не создаёт адресную строку как надо

_________________
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Дарк
Капитан


Репутация: 31    

Зарегистрирован: 30.01.2005
Сообщения: 594


СообщениеДобавлено: Сб Dec 15, 2007 7:43 pm    Заголовок сообщения: Ответить с цитатой

TSergey писал(а):
Дарк писал(а):
кроме того, обычно данные из формы гетом не передают.

С чего хоть это?

Большие тексты, файлы - не передают.
Зайди на яндекс, гугл и прочие поисковики: хочешь сказать, что они настолько тупы, что передают все через GET?

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

_________________
"A good programmer is someone who looks both ways before crossing a one-way street". Doug Linder
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Wizard RAA
Генерал


Репутация: 41    

Зарегистрирован: 17.03.2005
Сообщения: 3010
Откуда: из Ордена Полуночи, 248 сегмент

СообщениеДобавлено: Сб Dec 15, 2007 9:41 pm    Заголовок сообщения: Ответить с цитатой

а можно узнать ИП зашедшего на сайт и использовать в скриптах?

если можно то какой функцией?/из какой переменной?

_________________
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
LVS
Майор


Репутация: 32    

Зарегистрирован: 01.10.2005
Сообщения: 1169


СообщениеДобавлено: Сб Dec 15, 2007 11:51 pm    Заголовок сообщения: Ответить с цитатой

Возми уже справочник по пхп и на странице "глобальные переменные" или "environment variables" посмотри все существующие полезные переменные.
_________________
© 2008, LVS
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
ES
Майор


Репутация: 4    

Зарегистрирован: 01.06.2005
Сообщения: 1380


СообщениеДобавлено: Вс Dec 16, 2007 12:00 am    Заголовок сообщения: Ответить с цитатой

Wizard RAA писал(а):
а можно узнать ИП зашедшего на сайт и использовать в скриптах?

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

а по самому вопросу LVS правильно сказал Wink
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
LVS
Майор


Репутация: 32    

Зарегистрирован: 01.10.2005
Сообщения: 1169


СообщениеДобавлено: Вс Dec 16, 2007 12:13 am    Заголовок сообщения: Ответить с цитатой

ES писал(а):

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


Достаточно двух прокси серверов, чтобы скрипту не передался адрес пользователя.

_________________
© 2008, LVS
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
ES
Майор


Репутация: 4    

Зарегистрирован: 01.06.2005
Сообщения: 1380


СообщениеДобавлено: Вс Dec 16, 2007 12:17 am    Заголовок сообщения: Ответить с цитатой

LVS писал(а):
Достаточно двух прокси серверов, чтобы скрипту не передался адрес пользователя.

примерно это и пытался сказать, но не обладал точными данными Wink
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
D@rkNeo
Lucifer's Angel


Репутация: 616    

Зарегистрирован: 24.08.2006
Сообщения: 12448
Откуда: icq2u.ru

СообщениеДобавлено: Вс Dec 16, 2007 12:21 am    Заголовок сообщения: Ответить с цитатой

ES писал(а):
LVS писал(а):
Достаточно двух прокси серверов, чтобы скрипту не передался адрес пользователя.

примерно это и пытался сказать, но не обладал точными данными Wink
простой логики достаточно, чтобы к этому прийти.
_________________
2002 Honda Integra DC5
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
ES
Майор


Репутация: 4    

Зарегистрирован: 01.06.2005
Сообщения: 1380


СообщениеДобавлено: Вс Dec 16, 2007 12:25 am    Заголовок сообщения: Ответить с цитатой

как я понимаю все зависит от того как настроен прокси-сервер, какую инфу он передает о соединение его используещим
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Wizard RAA
Генерал


Репутация: 41    

Зарегистрирован: 17.03.2005
Сообщения: 3010
Откуда: из Ордена Полуночи, 248 сегмент

СообщениеДобавлено: Вс Dec 16, 2007 1:05 pm    Заголовок сообщения: Ответить с цитатой

LVS, я бы взял. вопрос где? если у кого-нить завалялся - буду очень признателен.

как узнать ип - узнал $_SERVER['REMOTE_ADDR']

с подменой ип - меня не интересует, я как раз наоборот пишу - если ип мой - то результат такой-то, а если чужой - другой

_________________
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Wizard RAA
Генерал


Репутация: 41    

Зарегистрирован: 17.03.2005
Сообщения: 3010
Откуда: из Ордена Полуночи, 248 сегмент

СообщениеДобавлено: Вс Dec 16, 2007 1:05 pm    Заголовок сообщения: Ответить с цитатой

у меня есть несколько доков по php но там всякую ерунду пишут
_________________
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
ES
Майор


Репутация: 4    

Зарегистрирован: 01.06.2005
Сообщения: 1380


СообщениеДобавлено: Вс Dec 16, 2007 1:10 pm    Заголовок сообщения: Ответить с цитатой

Wizard RAA, у меня есть несколько книг в электронном варианте:

Валейд_PHP 5 для чайников.pdf
Коггзолл_PHP5. Полное руководство.pdf
Колисниченко_Самоучитель PHP5.djvu
Котеров_Самоучитель PHP4.pdf
Томсон_Разработка Web - приложений на PHP и MySQL.pdf
Ульман_Основы программирования на РНР.pdf

Если надо будет, залью на мопед. Про качество этих книг ничего особо сказать не могу, т.к. не одну из них не прочитал, а только смотрел нужные мне моменты
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
LVS
Майор


Репутация: 32    

Зарегистрирован: 01.10.2005
Сообщения: 1169


СообщениеДобавлено: Вс Dec 16, 2007 1:16 pm    Заголовок сообщения: Ответить с цитатой

ftp://stan-berger.isnet.ru/Distr/Help/php_manual_ru.chm
_________________
© 2008, LVS
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Wizard RAA
Генерал


Репутация: 41    

Зарегистрирован: 17.03.2005
Сообщения: 3010
Откуда: из Ордена Полуночи, 248 сегмент

СообщениеДобавлено: Вс Dec 16, 2007 1:26 pm    Заголовок сообщения: Ответить с цитатой

ES, залей, не помешают
_________________
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
ES
Майор


Репутация: 4    

Зарегистрирован: 01.06.2005
Сообщения: 1380


СообщениеДобавлено: Вс Dec 16, 2007 1:33 pm    Заголовок сообщения: Ответить с цитатой

ftp://mediasklad.ru/!UPLOAD/books_PHP/
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Wizard RAA
Генерал


Репутация: 41    

Зарегистрирован: 17.03.2005
Сообщения: 3010
Откуда: из Ордена Полуночи, 248 сегмент

СообщениеДобавлено: Вс Dec 16, 2007 1:34 pm    Заголовок сообщения: Ответить с цитатой

ES, благодарю
_________________
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Wizard RAA
Генерал


Репутация: 41    

Зарегистрирован: 17.03.2005
Сообщения: 3010
Откуда: из Ордена Полуночи, 248 сегмент

СообщениеДобавлено: Вт Dec 18, 2007 4:00 pm    Заголовок сообщения: Ответить с цитатой

как определить входит ли в массив элемент с индексом?
в мануалах как-то эта инфа опускается,
я попробовал
Код:

if ($_POST['msg']!==NULL) fwrite($txt, $_POST['msg']);
и
if (definded($_POST['msg'])) ....

один результат, говорит неопределённый индекс...

_________________
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
LVS
Майор


Репутация: 32    

Зарегистрирован: 01.10.2005
Сообщения: 1169


СообщениеДобавлено: Вт Dec 18, 2007 4:35 pm    Заголовок сообщения: Ответить с цитатой

Не !==, а !=
Используй empty()

_________________
© 2008, LVS
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Wizard RAA
Генерал


Репутация: 41    

Зарегистрирован: 17.03.2005
Сообщения: 3010
Откуда: из Ордена Полуночи, 248 сегмент

СообщениеДобавлено: Вт Dec 18, 2007 4:46 pm    Заголовок сообщения: Ответить с цитатой

посмотрел, для этого случая есть функция
array_key_exists

_________________
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Wizard RAA
Генерал


Репутация: 41    

Зарегистрирован: 17.03.2005
Сообщения: 3010
Откуда: из Ордена Полуночи, 248 сегмент

СообщениеДобавлено: Вт Dec 18, 2007 8:50 pm    Заголовок сообщения: Ответить с цитатой

вопрос теперь скорее не к php:
как сделать самообновляемую страницу?
как, например, в чатах?

_________________
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
AlexeyF
Генерал


Репутация: 329    

Зарегистрирован: 21.02.2006
Сообщения: 3903


СообщениеДобавлено: Вт Dec 18, 2007 8:54 pm    Заголовок сообщения: Ответить с цитатой

Стивен Хольцнер - PHP в примерах

Код:
Вашему вниманию предлагается один из мировых бестселлеров, посвященных программированию на РНР. В рамках одной книги автору удалось, начав с основ языка РНР, охватить весьма широкий круг вопросов - от объектно-ориентированного программирования до сложной обработки web-форм, от сохранения данных сеанса работы до формирования e-mail.


К сожалению внеха Embarassed
Может кого-нибудь заинтересует.
http://soft-best.ws/2007/12/18/stiven-kholcner-php-v-primerakh.html

_________________
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
LVS
Майор


Репутация: 32    

Зарегистрирован: 01.10.2005
Сообщения: 1169


СообщениеДобавлено: Вт Dec 18, 2007 8:55 pm    Заголовок сообщения: Ответить с цитатой

В JavaScript reload(), document.location.
В HTML meta refresh

_________________
© 2008, LVS
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
TSergey
Генерал Майор


Репутация: 77    

Зарегистрирован: 25.03.2003
Сообщения: 6237


СообщениеДобавлено: Вт Dec 18, 2007 8:57 pm    Заголовок сообщения: Ответить с цитатой

meta refresh
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Wizard RAA
Генерал


Репутация: 41    

Зарегистрирован: 17.03.2005
Сообщения: 3010
Откуда: из Ордена Полуночи, 248 сегмент

СообщениеДобавлено: Вт Dec 18, 2007 8:58 pm    Заголовок сообщения: Ответить с цитатой

AlexeyF, у тебя ж безлимит?
_________________
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Wizard RAA
Генерал


Репутация: 41    

Зарегистрирован: 17.03.2005
Сообщения: 3010
Откуда: из Ордена Полуночи, 248 сегмент

СообщениеДобавлено: Вт Dec 18, 2007 9:04 pm    Заголовок сообщения: Ответить с цитатой

LVS, TSergey, спасибо за инфу, осталось только сообразить, куда это прописать
_________________
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Wizard RAA
Генерал


Репутация: 41    

Зарегистрирован: 17.03.2005
Сообщения: 3010
Откуда: из Ордена Полуночи, 248 сегмент

СообщениеДобавлено: Вт Dec 18, 2007 9:20 pm    Заголовок сообщения: Ответить с цитатой

вот оно:
<meta http-equiv="refresh" content="5">

_________________
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Wizard RAA
Генерал


Репутация: 41    

Зарегистрирован: 17.03.2005
Сообщения: 3010
Откуда: из Ордена Полуночи, 248 сегмент

СообщениеДобавлено: Вт Dec 18, 2007 11:14 pm    Заголовок сообщения: Ответить с цитатой

Написал простенький чат:
Код:

<?php
               session_start();
               if (array_key_exists("login", $_POST))
                      $_SESSION['login'] = $_POST['login'];
?>
<html>
<head>
<meta http-equiv="refresh" content="5">
</head>
<?php
                if (array_key_exists("exit", $_POST))
                       {
                         unset($_SESSION['login']);
                         session_destroy();
                         echo "Exit";
                         echo "<br><a href=main.php>Go Back</a>";
                         exit;
                        }
                 $fname = "message.txt";
                if (array_key_exists("msg", $_POST))
                     {
                        $txt = fopen($fname, "a");
                        fwrite($txt, $_SESSION['login'] . ":" . $_POST['msg'] . "&|&");
                        fclose($txt);
                      }
                $f = file($fname);
                if (!empty($f))
                      {
                          $messarr = explode("&|&", $f[0]);
                          for ($i = 0; $i < count($messarr); $i++)
                              {echo "<BR>$messarr[$i]";};
                      }


?>
<Form action="room.php" method="POST">
<Input type="text" NAME="msg" SIZE="100" MAXLENGTH="100">
<Input type="Submit" VALUE="Enter">
</Form>
<Form action="room.php" method="POST">
<Input type="Submit" name = "exit" VALUE="Exit">
</Form>
</body>
</html>

Всё бы ничего, но обновляется вся страница, и когда пишешь длинную цитату, страница успевает обновится и стирается всё что было написано.
Попробовал разбить на фрэймы:
room.php:
Код:

<?php
               session_start();
               if (array_key_exists("login", $_POST))
                      $_SESSION['login'] = $_POST['login'];

                if (array_key_exists("exit", $_POST))
                       {
                         unset($_SESSION['login']);
                         session_destroy();
                         echo "Exit";
                         echo "<br><a href=main.php>Go Back</a>";
                         exit;
                        }
                $fname = "message.txt";
                if (array_key_exists("msg", $_POST))
                     {
                        $txt = fopen($fname, "a");
                        fwrite($txt, $_SESSION['login'] . ": " . $_POST['msg'] . "&|&");
                        fclose($txt);
                      }
?>
<html>
<head>
</head>

<frameset rows="*,*" frameborder="no" border="0" framespacing="0">
  <frame src="mess.php" name="c1Frame">
  <frame src="panel.php" name="panelFrame">
</frameset>

<body>
</body>
</html>

mess.php:
Код:

<html>
<head>
    <meta http-equiv="refresh" content="5">
</head>
<body>
<?php
                $fname = "message.txt";
                $f = file($fname);
                if (!empty($f))
                      {
                          $messarr = explode("&|&", $f[0]);
                          for ($i = 0; $i < count($messarr); $i++)
                              {echo "<BR>$messarr[$i]";};
                      }
?>
</body>
</html>

panel.php
Код:

<html>
<body>

<form action="room.php" method="POST">
  <INPUT TYPE="text" NAME="msg" SIZE="100" MAXLENGTH="100">
  <INPUT TYPE="Submit" VALUE="Enter">
</FORM>

<form action="room.php" method="POST">
  <INPUT TYPE="Submit" name = "exit" VALUE="Exit">
</FORM>

</body>
</html>

Теперь окно сообщений обновляется отдельно,
но когда нажимаешь кнопку Enter - появляется ещё один фрэйм mess.php. И сколько раз нажмёшь столько их и добавится. Причём фрэйм с панелью не добавляется?
В чём может быть трабл и как его пофиксить?

_________________
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
KoLar
Старшина


Репутация: 5    

Зарегистрирован: 27.05.2007
Сообщения: 157
Откуда: Нижний Тагил

СообщениеДобавлено: Вт Dec 18, 2007 11:30 pm    Заголовок сообщения: Всего отзывов: 1 Ответить с цитатой

panel.php:
Код:
<html>
<body>

<form action="room.php" method="POST" target="_top">
  <INPUT TYPE="text" NAME="msg" SIZE="100" MAXLENGTH="100">
  <INPUT TYPE="Submit" VALUE="Enter">
</FORM>

<form action="room.php" method="POST" target="_top">
  <INPUT TYPE="Submit" name = "exit" VALUE="Exit">
</FORM>

</body>
</html>

Получилось, что ты в панель загружаешь снова весь room.php, а он состоит из 2 окон.. А так ты будешь загружать room.php в верхнее окно (т.е. в главное окно с фреймами)

// Да, кстати, подправил чуток.. Exit тоже должна всё окно обновлять..

_________________

"Руки то золотые, жаль растут не оттуда!" ©


Последний раз редактировалось: KoLar (Вт Dec 18, 2007 11:36 pm), всего редактировалось 3 раз(а)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Wizard RAA
Генерал


Репутация: 41    

Зарегистрирован: 17.03.2005
Сообщения: 3010
Откуда: из Ордена Полуночи, 248 сегмент

СообщениеДобавлено: Вт Dec 18, 2007 11:33 pm    Заголовок сообщения: Ответить с цитатой

KoLar, сенк, попробую
_________________
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
LVS
Майор


Репутация: 32    

Зарегистрирован: 01.10.2005
Сообщения: 1169


СообщениеДобавлено: Вт Dec 18, 2007 11:44 pm    Заголовок сообщения: Ответить с цитатой

Грамотный чат:
На странице один фрейм (т.е. отсутствие фреймов).
На JavaScript написана функция, которая забирает с сервера новые сообщения (т.е. не обновление всей страницы, а загрузка только новых сообщений).
Добавление нового сообщения происходит как обычно, но target-ом является невидимый <iframe>, чтобы при добавлении не открывалось новое окошко.

Если сделаешь такое, то освоишь много нюансов и так же изучишь JavaScript.

_________________
© 2008, LVS
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
KoLar
Старшина


Репутация: 5    

Зарегистрирован: 27.05.2007
Сообщения: 157
Откуда: Нижний Тагил

СообщениеДобавлено: Вт Dec 18, 2007 11:53 pm    Заголовок сообщения: Ответить с цитатой

LVS писал(а):
Грамотный чат:
На странице один фрейм (т.е. отсутствие фреймов).
На JavaScript написана функция, которая забирает с сервера новые сообщения (т.е. не обновление всей страницы, а загрузка только новых сообщений).
Добавление нового сообщения происходит как обычно, но target-ом является невидимый <iframe>, чтобы при добавлении не открывалось новое окошко.

Если сделаешь такое, то освоишь много нюансов и так же изучишь JavaScript.

Ну, во-первых, если придираться к словам, "невидимый <iframe>" - тоже фрейм. Так что "отсутствия фреймов" не получается Wink А во-вторых, если динамически подгружать новые сообщения JavaScript'ом, то можно обойтись и без iframe.
А вообще конечно AJAX в этой ситуации самое лучшее.. Но начинать освоение php в данном случае лучше с простых фреймов, а не залезать сразу в PHP & AJAX & JavaScript..

_________________

"Руки то золотые, жаль растут не оттуда!" ©


Последний раз редактировалось: KoLar (Вт Dec 18, 2007 11:54 pm), всего редактировалось 1 раз
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Wizard RAA
Генерал


Репутация: 41    

Зарегистрирован: 17.03.2005
Сообщения: 3010
Откуда: из Ордена Полуночи, 248 сегмент

СообщениеДобавлено: Вт Dec 18, 2007 11:53 pm    Заголовок сообщения: Ответить с цитатой

LVS, попробую. спасиб за рекомендации
_________________
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
LVS
Майор


Репутация: 32    

Зарегистрирован: 01.10.2005
Сообщения: 1169


СообщениеДобавлено: Вт Dec 18, 2007 11:56 pm    Заголовок сообщения: Ответить с цитатой

Я тоже хотел ajax предложить, но надо сначала хотя бы php и javascript изучить.
_________________
© 2008, LVS
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
KoLar
Старшина


Репутация: 5    

Зарегистрирован: 27.05.2007
Сообщения: 157
Откуда: Нижний Тагил

СообщениеДобавлено: Вт Dec 18, 2007 11:59 pm    Заголовок сообщения: Ответить с цитатой

LVS,
а разве без ajax можно загрузить данные яваскриптом не перезагружая страницу? Shocked

_________________

"Руки то золотые, жаль растут не оттуда!" ©
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
LVS
Майор


Репутация: 32    

Зарегистрирован: 01.10.2005
Сообщения: 1169


СообщениеДобавлено: Ср Dec 19, 2007 12:00 am    Заголовок сообщения: Ответить с цитатой

KoLar писал(а):

если динамически подгружать новые сообщения JavaScript'ом, то можно обойтись и без iframe.


А может знаешь как отправлять сообщения без дополнительного фрейма? Мне чего не приходит на ум такое... А! через img ведь можно. тоже невидимое.

_________________
© 2008, LVS
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
LVS
Майор


Репутация: 32    

Зарегистрирован: 01.10.2005
Сообщения: 1169


СообщениеДобавлено: Ср Dec 19, 2007 1:45 am    Заголовок сообщения: Ответить с цитатой

KoLar писал(а):
LVS,
а разве без ajax можно загрузить данные яваскриптом не перезагружая страницу? :shock:


Имел ввиду создать iframe, выдернуть из него данные от сервера и запихнуть их в нужное место в загруженном документе.

_________________
© 2008, LVS
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
KoLar
Старшина


Репутация: 5    

Зарегистрирован: 27.05.2007
Сообщения: 157
Откуда: Нижний Тагил

СообщениеДобавлено: Ср Dec 19, 2007 8:39 am    Заголовок сообщения: Ответить с цитатой

LVS писал(а):
Имел ввиду создать iframe, выдернуть из него данные от сервера и запихнуть их в нужное место в загруженном документе.

Ааа, ну всё понял теперь.. Просто не сразу понял назначение iframe..
Конечно с iframe это изрващённый вариант, хотя без ajax наверное лучше и не придумать..

_________________

"Руки то золотые, жаль растут не оттуда!" ©
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Wizard RAA
Генерал


Репутация: 41    

Зарегистрирован: 17.03.2005
Сообщения: 3010
Откуда: из Ордена Полуночи, 248 сегмент

СообщениеДобавлено: Вс Dec 23, 2007 6:22 pm    Заголовок сообщения: Ответить с цитатой

Проблема с JavaScript'ом. То ли я уже ничего не соображаю, то ли там логика какая-то другая:
Код:

<html>
<body>

  <script language="JavaScript">
     function Func(){
       document.write("JS Text");
       }
  </script>


<form >
   <input type="button" value="Click me" onClick="Func()">
</form>


  <script language="JavaScript">
    Func();
  </script>


</body>
</html>

При загрузки документа выводится кнопка и надпись JS Text друг под другом, что и следовало ожидать,
однако при нажатии кнопки документ полностью очищается, стираются даже тэги html, body а остаётся только эта надпись JS Text.
Хотя вроде и при загрузке и при кликаньи вызывается одна и та же функция. Почему такие разные результаты? И как сделать, чтобы на событие текст дописался к текущему доку?

_________________
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
LVS
Майор


Репутация: 32    

Зарегистрирован: 01.10.2005
Сообщения: 1169


СообщениеДобавлено: Вс Dec 23, 2007 6:34 pm    Заголовок сообщения: Ответить с цитатой

функции JavaScript лучше размещать в <head>
Для выполнения этих функций при загрузке страницы лучше пользоваться конструкцией <body onload="Func();">.
И вместо <script language="JavaScript"> теперь кошернее ставить <script content="text/javascript">.

Вобще причуды в поведении JavaScript встречаются.
В твоем случае думаю это из-за того, что скрипт у тебя выполняется когда страница еще не догрузилась. (движек браузера как только встречает <script> сразу выполняет его)

_________________
© 2008, LVS
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Wizard RAA
Генерал


Репутация: 41    

Зарегистрирован: 17.03.2005
Сообщения: 3010
Откуда: из Ордена Полуночи, 248 сегмент

СообщениеДобавлено: Вс Dec 23, 2007 6:39 pm    Заголовок сообщения: Ответить с цитатой

LVS, да действительно, если функцию перенести в OnLoad загрузится только текст JS Text, однако мне бы хотелось наоборот, дописать текст к уже существующему, можно это сделать?
_________________
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
LVS
Майор


Репутация: 32    

Зарегистрирован: 01.10.2005
Сообщения: 1169


СообщениеДобавлено: Вс Dec 23, 2007 6:42 pm    Заголовок сообщения: Ответить с цитатой

попробуй
document.open();
document.write();
document.close();

Еще есть атрибур innerHTML, но я забыл как им пользоваться. (мб document.innerHTML += 'your text';)

_________________
© 2008, LVS
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему       Список форумов Forum.profintel.ru -> Программерский раздел Часовой пояс: GMT + 6
На страницу 1, 2  След.
Страница 1 из 2

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы не можете скачивать файлы