Страница 1 от 2 12 ПоследноПоследно
Резултати от 1 до 15 от общо 19

PHP, Java и обратна връзка...

Сподели във Facebook Сподели в Twitter Изпрати на Email Сподели в LinkedIn
  1. Banned
    Тук е от
    Sep 2003
    Мнения
    1,313
    #1

    PHP, Java и обратна връзка...

    Някой може ли да помогне за решаването на проблемите споменати в тази тема

  2.  
     
  3. Senior Member Аватара на Bibi
    Тук е от
    Nov 2004
    Мнения
    2,757
    #2

    Re: PHP, Java и обратна връзка...

    http://www.google.com/search?hl=en&q=meta+refresh

    Но няма да може да се направи така, че да опреснява след като противникът е играл, а просто през някакъв интервал. Може би има начин всеки юзер да си избира след колко време...

  4. Member
    Тук е от
    Dec 2004
    Мнения
    542
    #3

    Re: PHP, Java и обратна връзка...

    Не съм от най-вещите в областта, но по принцип не би трябвало да е трудно. Ако става въпрос за слагане на код в страница, която да се рефрешва сама , най-елементарното, което да свърши работа според мен е:

    Код:
    <script type=text/javascript>
    setTimeout('document.location=document.location',10000);
    </script>
    Слага се между <head></head> таговете. Цифрата (в случая 10000) показва интервала на презареждане в милисекунди.

    Иначе, по някои от браузърите си има и настройки мисля, сам да си зададеш да се презарежда дадена страница. Трябва да се порови малко тук...

  5. Banned
    Тук е от
    Sep 2003
    Мнения
    1,313
    #4

    Re: PHP, Java и обратна връзка...

    Това не е решение за платен хостинг с лимитиран трафик. Не може ли нещо със скрит фрейм който да проверява дали има местене и да рефрешва ако има ход?

  6. Senior Member Аватара на Bibi
    Тук е от
    Nov 2004
    Мнения
    2,757
    #5

    Re: PHP, Java и обратна връзка...

    Така както аз го разбрах има начини, но не само html + http, а примерно с аплетче.
    Иначе няма как сървъра да стане инициатор на функцията, без заявка от клиента.

  7. Banned
    Тук е от
    Sep 2003
    Мнения
    1,313
    #6

    Re: PHP, Java и обратна връзка...

    Идеята е малко подобна на това което предлагате с автоматичния рефреш на някакво време. Правиме един скрит фрейм който на н-минути проверява базата данни дали няма нов ход и ако има тогава реферешва цялата страница. Принципно знам че може да стане, трафика е по-малко, но от java не разбирам бъкел. То не че от html и php разбирам много, но поне имам идя.

  8.  
     
  9. Senior Member Аватара на Bibi
    Тук е от
    Nov 2004
    Мнения
    2,757
    #7

    Re: PHP, Java и обратна връзка...

    Прав си, има такъв начин със скрит фрейм, но още ровя да намеря подробности.
    Но имало и нещо ново и по-добро - нарича се AJAX. Май първо за него ще почета...

    //
    http://spisanie.com/downloads.php (брой 2/2005)

  10. Member
    Тук е от
    Dec 2004
    Мнения
    542
    #8

    Re: PHP, Java и обратна връзка...

    AJAX е cutting edge технология в момента общо взето, тепърва се правят големи неща с него, но ми се струва, че ти трябва солидни JavaScript познания за да нагазиш там.

  11. Senior Member Аватара на Bibi
    Тук е от
    Nov 2004
    Мнения
    2,757
    #9

    Re: PHP, Java и обратна връзка...

    Ето какво научих от добри хора:
    Код:
    <head>
    <script type=text/javascript>
    setTimeout('document.location=document.location',10000);
    </script>
    </head>
    <body>
    <iframe frameborder="1" src="chess.php" width="100" height="100" onLoad="setTimeOut"></iframe>
    </body>
    Това рефрешва невидимия прозорец през 1 секунда.
    За да се опреснява само когато е налице дадено условие, трябва да се вмъкне функция:
    Код:
    function neshtosi($parametur, $what) {
       $table = getLang().'_nqkyde si';
       if (($parametur == "") or ($parametur == undefined)) {
        $q = "SELECT * FROM ".$table." WHERE `where` = '0'";
       }
       else {
        $q = "SELECT * FROM ".$table." WHERE `pid` = '".$_GET['id']."'";
       }
       $qr = mysql_query($q);
       $r = mysql_fetch_array($qr);
       return $r[$what];
    }
    Като гледам полетата на таблицата, си мисля, че трябва да се проверява за дадената партия (`game_id`) дали полето `fen_active_color`се е променило. След всеки ход инициализираме един флаг със стойност "цвета на нашите фигури" (`b`/`w`) и периодически го сравняваме с въпросното поле от базата, докато получим, че са различни съвпадат (пак ние сме на ход).
    Но не съм сигурна в значението на тази променлива. В нея може да се пази не информация кой отбор е на ход, а кой отбор праща заявката към базата (т.е. "аз играя с белите, дай ми страницата, която се отнася за тях").
    Друг начин е да ползваме полето `fen_fullmove_number`. В него явно се пази номерът на последния изигран ход. В началото ще се инициализира флагът със стойността му от базата, след като местим, стойността ще се увеличава с 1 и ще се чака до момента, в който станат различни.
    Дано обаче тук под "ход" не разбират поредица от два хода - един на белите и един на черните.

  12. Member
    Тук е от
    Dec 2004
    Мнения
    542
    #10

    Re: PHP, Java и обратна връзка...

    Цитат Първоначално публикувано от Bibi
    Ето какво научих от добри хора:
    Код:
    <head>
    <script type=text/javascript>
    setTimeout('document.location=document.location',10000);
    </script>
    </head>
    <body>
    <iframe frameborder="1" src="chess.php" width="100" height="100" onLoad="setTimeOut"></iframe>
    </body>
    Това рефрешва невидимия прозорец през 1 секунда.
    За да се опреснява само когато е налице дадено условие, трябва да се вмъкне функция:
    Ако този код е вкаран в главната страница, в която е и 'невидимия' прозорец, той ще рефрешва нея (главаната), която ще извика и невидимия с нея си и така всичко се рефрешва. АКо идеята е да се рефрешва невидима рамка в страница през ХХХ сек мисля, че е достатъчно
    Код:
    <html>
    <head>
    </head>
    <body>
    ...
    <iframe frameborder="1" src="chess.php" width="100" height="100" onLoad="setTimeout('document.location=document.location',XXX000)"></iframe>
    ...
    </body>
    </html>
    дано не подведа някого.

  13. Senior Member Аватара на Bibi
    Тук е от
    Nov 2004
    Мнения
    2,757
    #11

    структурата на таблицата

    CREATE TABLE `7812256881_chess_games` (
    `game_id` int(10) unsigned NOT NULL auto_increment,
    `white_uid` mediumint(8) unsigned NOT NULL default '0',
    `black_uid` mediumint(8) unsigned NOT NULL default '0',
    `create_date` datetime NOT NULL default '0000-00-00 00:00:00',
    `start_date` datetime NOT NULL default '0000-00-00 00:00:00',
    `last_date` datetime NOT NULL default '0000-00-00 00:00:00',
    `fen_piece_placement` varchar(71) NOT NULL default 'rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR',
    `fen_active_color` enum('w','b') NOT NULL default 'w',
    `fen_castling_availability` varchar(4) NOT NULL default 'KQkq',
    `fen_en_passant_target_square` char(2) NOT NULL default '-',
    `fen_halfmove_clock` smallint(5) unsigned NOT NULL default '0',
    `fen_fullmove_number` smallint(5) unsigned NOT NULL default '1',
    `pgn_fen` varchar(100) NOT NULL default '',
    `pgn_result` varchar(7) NOT NULL default '*',
    `pgn_movetext` text NOT NULL,
    `offer_draw` enum('','w','b') NOT NULL default '',
    `suspended` text NOT NULL,
    `white_confirm` enum('0','1') NOT NULL default '1',
    `black_confirm` enum('0','1') NOT NULL default '1',
    PRIMARY KEY (`game_id`)
    )
    ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
    Това е таблицата. Наличието на тези `white_uid`, `black_uid` ме кара да мисля, че `fen_active_color` ще ни свърши работа.
    `fen_halfmove_clock` пък е причината да се усъмня в смисъла на полето `fen_fullmove_number`.
    Ако някой забележи друг параметър, който може да играе роля при взимането на решение, моля да каже.
    Само се сетих да добавя, че е добре да има опресняване не само когато противникът е местил, а и когато е предложил реми или се предава. Тогава едва ли броят на ходовете се променя и значи те не са добър критерий.

    //
    Още нещо ми хрумна. За да може и при "кибиците" да се актуализира страницата след всеки игран ход, инициализирането и проверката на онзи флаг, трябва да се направи по друг начин.

  14.  
     
  15. Banned
    Тук е от
    Sep 2003
    Мнения
    1,313
    #12

    Re: PHP, Java и обратна връзка...

    `white_uid`, `black_uid` Са указатели към таблицата с потребителите на сайта. Всъщност това показва кой с кого играе. Или поне така си мисля. Скрипта не съм го писал аз, изполвам го на готово. `fen_halfmove_clock` и `fen_fullmove_number` според мен имат отношение само към записването на играта в pgn формат и изрисуването на позицията.

    Биби мисля че митко е прав за рефреша. Така написан кода ще рефрешва цялата страница не само скрития фрейм.

    Трябва да помислиме как да спреме рефреша на скрития фрейм когато трябва ние да играеме. Безмислено е да се рефрешва след като сме ние на ход.

    // Това е относително лесно. Трябва да се включи един if при рефреша на цялата страница ако сме ние на ход кода за скрития фрейм се пропуска.

    // Това е сайта на порталната система която ползвам.
    От тук можете да свалите последната версия на шах модула.

  16. Senior Member Аватара на Bibi
    Тук е от
    Nov 2004
    Мнения
    2,757
    #13

    Re: PHP, Java и обратна връзка...

    А от базата няма ли начин да се извади броя изиграни ходове?
    По-точно: то, че има начин, е сигурно.
    Въпросът ми по-скоро е как да стане с тази конкретна база.
    С length(историята на партията) или директно с онази променлива, или с комбинация между нейната стойност и онова b/w поле?
    Искам да кажа да направиш малко експерименти, за да видим какво се записва в полетата `fen_fullmove_number` - след всеки ход ли се увеличава стойността им или след двойка ходове.
    И променя ли се стойността, ако играчът предложи реми, или се предаде?

  17. Banned
    Тук е от
    Sep 2003
    Мнения
    1,313
    #14

    Re: PHP, Java и обратна връзка...

    Създадох игра срещу себеси. Без да е играно нищо данните в таблицата са:
    fen_active_color=w;
    fen_halfmove_clock=0;
    fen_fullmove_number=1;
    Ход с белите ->
    fen_active_color=b;
    fen_halfmove_clock=1;
    fen_fullmove_number=1;
    Ход с черните ->
    fen_active_color=w;
    fen_halfmove_clock=0;
    fen_fullmove_number=2;
    Ход с белите ->
    fen_active_color=b;
    fen_halfmove_clock=1;
    fen_fullmove_number=2;
    Ход с черните ->
    fen_active_color=w;
    fen_halfmove_clock=0;
    fen_fullmove_number=3;
    Предаване ->
    fen_active_color=w;
    fen_halfmove_clock=0;
    fen_fullmove_number=3;
    Реми както се сещате сам на себеси не мога да предложа

    Ако някой иска да се включи да изтестваме в реална игра как стават нещата.

  18. Member
    Тук е от
    Dec 2004
    Мнения
    542
    #15

    Re: PHP, Java и обратна връзка...

    Тъй като никой от изявените ни участници в раздела Вебдевелопмент и радетелите за настоящия раздел "програмиране' не прояви се инициатива, на добра воля впрегнах минималните си познания в областта. Според мен всяко 'решение' в партията се записва като ходове в полето pgn_movetext от таблицата xoops_chess_games (xoops=представката която изпозлвам за инсталацията си). Резонно идеята е да се направи скрита рамка рамка която да провеверява въпросното поле (задал съм го на минута) и ако дължината му е нарастнала (има ново действие) да поскаже на 'родителя' да се опресни. Резулатът е прикачен по-долу. В хронологичне ред:
    • променил съм функция chess_create_game() в create.php да ъздава още една таблица с две полета - за коя партия иде реч и поле BODYCOUNT което съдържа стойността за направените ходове до момента
    • в game.php има един ред за добавяне на 'скритата' рамка skrita.php иопресняването и на ХХХ секунди (1 мина съм задал)
    • skrita.php проверява стийоността на pgn_movetext от таблицата xoops_chess_games (xoops=представката която изпозлвам за инсталацията си) и сравнява BODYCOUNT. ако има промяна праща заявка на родителя(game.php?=КОЯ_ИГРА) да се опресни


    Вероятно не е най удачното, но поне е начало.Тествал съм го за няколко игри и работеше. Зип файлът съдържа трите [create.php, game.php, skrita.php] които да направят промените (бекъп първо, плийз )
    Тепърва предполагам трябва да го тестваме пълно и / или да променим според нуждите също както и някой да тества трафика който генерира (към това се стремим все пак май)

    Никога преди не съм виждал виждал пхп+MySql през живота си , а и по настоящем се измъчвам на един PII 400МHz с 128МБ РАМ и си е*** м****. хелп!

    [attachment deleted by admin]

Сподели във Facebook Сподели в Google Plus Сподели в Twitter Изпрати на Email Сподели в LinkedIn
Страница 1 от 2 12 ПоследноПоследно

Подобни теми

  1. Помощ за код за обратна връзка.
    От DerekMTN във форум Уебдизайн и 3D
    Отговори: 4
    Последно: 13-03-09, 16:42
  2. Java
    От Bibi във форум Програмиране
    Отговори: 14
    Последно: 09-12-05, 18:26
  3. Обратна връзка към e-mail
    От parazit във форум Уебдизайн и 3D
    Отговори: 15
    Последно: 23-09-03, 20:47
  4. Win XP и Java
    От nniki във форум Windows
    Отговори: 2
    Последно: 09-05-03, 11:11
  5. JAVA za XP ???
    От AMOK във форум Windows
    Отговори: 10
    Последно: 10-08-02, 20:09

SetCombG.com
SetCombG.com е портален сайт и Форум за битова техника, телевизори, климатици, лаптопи и смартфони, създаден през 1999 година.
Заедно сме над 20 години!
Следвай ни
Горе