Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с флагами, вывод картинок 
V
    Опции темы
VKlim
Дата 4.2.2007, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 1.2.2007

Репутация: нет
Всего: нет



Народ, вопрос такой. У меня есть страничка (клиент), на которой есть несколько картинок, которые по сути своей являются кнопками. По нажатию на них серваку отправляется некоторый сигнал. В свою очередь сервак с периодичностью раз в 10 секунд отправляет мне сигнал состояния (8 бит), который мне побитово нужно проанализировать. В соответствии с этим байтом мне нужно некоторые картинки сменить на другие и сменить соответствующие им функции, выполняемые по нажатию. Подскажите, плиз, как это сделать.
   Исходные картинки вставляются обычно:
    <a href = "base.php?function=Connecting"> <img src="off.png" border = "0"> </a>    
   Функции написаны на PHP:
Код

switch ($function) 
 { 
     case 'Connecting': 
        Connecting();
        break;   
     case 'Dupplex':
    echo "Dupplex";
    break;    
 }
function Connecting() // создать сокет и подключиться к mini*
   {
       ..............
   }



PM MAIL   Вверх
-=Ustas=-
Дата 5.2.2007, 09:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 32
Всего: 69



Цитата(VKlim @  4.2.2007,  16:52 Найти цитируемый пост)
В свою очередь сервак с периодичностью раз в 10 секунд отправляет мне сигнал состояния (8 бит), который мне побитово нужно проанализировать. 

Отправляет клиенту?! Как?

Добавлено @ 09:42 
ЗЫ, а при чем здесь графика...


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
VKlim
Дата 5.2.2007, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 1.2.2007

Репутация: нет
Всего: нет



Цитата

Отправляет клиенту?! Как?

Прошу прощения, если выразился не совсем правильно! Я имел ввиду следующее: через работающий сокет сервер передает сигнал, ну или однобайтовую переменную, которую нужно разбить на биты и проанализировать каждый
Цитата

ЗЫ, а при чем здесь графика...

Про графику я уже писал, что мне нужно картинки заменить, а я не знаю, как это сделать
PM MAIL   Вверх
VKlim
Дата 6.2.2007, 01:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 1.2.2007

Репутация: нет
Всего: нет



Народ, помогите, пожалуйчта - сроки горят, все мозги уже сломал, но не могу найти источник проблемы. Суть состоит вот в чем: Есть страничка с картинками-ссылками, причем картинка выбирается в соответствии с некоторым флагом. По нажатию на эти картинки выполняется некоторая ПХП-функция, внутри которой флаг меняется на противоположный (это кроме основных действий). Противоположный - это в смысле с 0 на 1 или с 1 на 0. Пока я тыкаю по одной кнопке - все нормально, т.е. картинка перерисовывается, функции выполняются. НО! При нажатии на другую кнопку происходят странные вещи: 1ая кнопка меняет свою картинку (то есть сменился флаг и перерисовалась кнопка), но функции не выполняются, а 2я кнопка выполняет функции, но не перерисовывает кнопку. Если дальше тыкать по второй кнопке все встает на свои места - она меняет картинку и выполняет функции. Переключаемся на другую кнопку - все то же самое, что и в первом случае. Подскажите, пжалста, че мне делать и где искать ошибку. 
Добавляю код всей странички: 
Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>ПКО</title>
</head>
<body>
<? session_start();
if(!isset($_SESSION['Pered_flag'])){    $_SESSION['Pered_flag']=0; echo "flag change"; }
if(!isset($_SESSION['Radio_flag']))    $_SESSION['Radio_flag']=0;
if(!isset($_SESSION['Shm_flag']))    $_SESSION['Shm_flag']=0;
if(!isset($_SESSION['SmpDp_flag']))    $_SESSION['SmpDp_flag']=2;    
if(!isset($_SESSION['Read_flag']))    $_SESSION['Read_flag']=-1;
if(!isset($function)) $function = "";
?>
<?

?>
<table height="40" border="0" cellspacing="3" cellpadding="0">
   <tr>
    <td>    <img src="channal.png" border = "0">    </td>
    <td>    <a href = "base1.php?function=Control">  <img src="control.png" border = "0"> </a>       </td>
    <td>    <img src=<? if (($_SESSION['Read_flag'] != 2)) echo "call_off.png";
                                              else echo "call_on.png"; $_SESSION['Read_flag'] == -1;?> border = "0">            </td>
    <td>    <a href = "base1.php?function=SmpDp">   <img src=<? if  ((($_SESSION['SmpDp_flag']==0)||($_SESSION['SmpDp_flag']==2))) echo "duplex_off.png";
                                                     else echo "duplex_on.png"; ?> border = "0">  </a>            </td>
    <td>    <a href = "base1.php?function=SmpDp">  <img src=<? if ((($_SESSION['SmpDp_flag']==1)||($_SESSION['SmpDp_flag']==2))) echo "simplex_off.png";
                                                     else echo "simplex_on.png"; ?> border = "0">  </a>        </td>
    <td>    <a href = "base1.php?function=Pered">    <img src=<? if (($_SESSION['Pered_flag']==1)) echo "prd_off.png";
                                                     else echo "prd_on.png"; ?> border = "0"> </a>  </td>
    <td>    <a href = "base1.php?function=Shm">   <img src=<? if (($_SESSION['Shm_flag']==1)) echo "sh_on.png";
                                                     else echo "sh_off.png"; ?> border = "0"> </a>            </td>
    <td>    <a href = "base1.php?function=Radio"> <img src=<? if ($_SESSION['Radio_flag'] == 0) echo "radio_on.png";
                                              else echo "radio_off.png"; ?>  border = "0"> </a>    </td>
    <td>    <img src=<? if ($_SESSION['Read_flag'] == 1) echo "crash_on.png";
                                              else echo "crash_off.png"; $_SESSION['Read_flag'] == -1?> border = "0">     </td>
    <td>    <a href = "base1.php?function=Connect">  <img src="connect.png" border = "0"> </a>       </td>
<? //    <td>    <a href = "base.php?function=Message"> <img src="mess.png" border = "0">  </a>            </td> ?>
   </tr>
   <tr> 
    <td> <br> </td>
   </tr>
   <tr> 
    <td> <br> </td>
   </tr>
</table>
</body>
</html>


<?
set_time_limit(0);
$Radio_On = 11; // включить радиостанцию 
$Radio_Off = 10; // выключить радиостанцию
$Reset_All = 0; // полный сброс
$Duplex_On = 31; // включить дуплекс
$Simplex_On = 30; // включить симплекс
$Pered_On = 21; // включить передатчик
$Pered_Off = 20; // выключить передатчик
$Shm_On = 41; // включить шумоподавитель
$Shm_Off = 40; // выключить шумоподавитель
$adress = '192.168.1.40'; // адрес сервера
$service_port = 17601; // порт сервера
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
//socket_bind($socket, "192.168.1.40", $service_port);
socket_connect($socket, $adress, $service_port);

switch ($function) 
 { 
     case 'Control': 
    Message($socket);
        break; 
     case 'Call':
        echo "Call";
    Call($socket);
    break;
     case 'SmpDp':
    SmpDp($socket, $Duplex_On, $Simplex_On);
    break;    
    case "Pered": 
    echo "Pered";
    Pered($socket, $Pered_On, $Pered_Off);
    break;
     case 'Shm': 
    echo "Shm";
        Shm($socket, $Shm_On, $Shm_Off);
        break;   
     case 'Radio': 
        Radio($socket, $Radio_On, $Radio_Off, $Duplex_On);
        break;   
     case 'Crash':
        echo "Crash";
    Crash($socket, $Reset_All);
    break;    
     case 'Connect': 
        Connect($socket);
        break;   
     case 'Message':
    Message($socket);
    break;
     default;
 } 
    $data = socket_read($socket, 1);
    print "$data";


function SmpDp(& $socket, & $Duplex_On, & $Simplex_On)
   {
    if ($_SESSION['Radio_flag']!=1) return;
    if ($_SESSION['SmpDp_flag']==0)
        {
            socket_write($socket, $Simplex_On, 3);
            $_SESSION['SmpDp_flag']=1;
        }
    else    
        {    
            socket_write($socket, $Duplex_On, 3);
            $_SESSION['SmpDp_flag']=0;
        }            
   }

function Crash(& $socket, $Reset_All)
   {
    socket_write($socket, $Reset_All, 3);
   }

function Radio(& $socket, & $Radio_On, & $Radio_Off, & $Duplex_On)
   {
    if ($_SESSION['Radio_flag'] == 0)
        {
            socket_write($socket, $Radio_On, strlen($Radio_On));
            socket_write($socket, $Duplex_On, strlen($Duplex_On));
            $_SESSION['Radio_flag'] = 1;
            $_SESSION['SmpDp_flag']=0;            
        }
    else    
        {
            socket_write($socket, $Radio_Off, strlen($Radio_Off));
            $_SESSION['Radio_flag'] = 0;    
            $_SESSION['SmpDp_flag']=2;                    
        }
   }

function Shm(& $socket, & $Shm_On, & $Shm_Off)
   {
    echo "Shm flag change";
    print "\n";
    if ($_SESSION['Radio_flag']!=1) return;
    if ($_SESSION['Shm_flag'] == 0)   
        {
            socket_write($socket, $Shm_On, 3);
            $_SESSION['Shm_flag'] = 1;
        }
    else    
        {
            socket_write($socket, $Shm_Off, 3);
            $_SESSION['Shm_flag'] = 0;
        }
   }

function Pered(& $socket, $Pered_On, $Pered_Off)
   {
    echo "Pered flag change";
    if ($_SESSION['Radio_flag']!=1) return;
    if ($_SESSION['Pered_flag'] == 0)   
        {
            socket_write($socket, $Pered_On, 3);
            $_SESSION['Pered_flag'] = 1;
        }
    else    
        {
            socket_write($socket, $Pered_Off, 3);
            $_SESSION['Pered_flag'] = 0;
        }
   }
?>


PM MAIL   Вверх
-=Ustas=-
Дата 6.2.2007, 08:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 32
Всего: 69



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

Добавлено @ 08:33 
Я только смог понять, чтоб при нажатии на ссылку <a href = "base.php?function=Connecting"> <img src="off.png" border = "0"> </a>   подменялась картинка off.png?! Или я не правильно понял?


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
Всемогущий
Дата 6.2.2007, 08:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 440
Регистрация: 25.6.2006
Где: Челябинск

Репутация: 5
Всего: 13



Если можно раздели задачи на более мелкие.

К примеру с сокетами завал smile 

задача номер 2 сделать нормальную функцию такого рода:
передаём её параметром номер картинки а она меняет флаг для этой картинки на противоположный.


Так?




--------------------
Цитата(smartov @  16.1.2007,  13:26 Найти цитируемый пост)
Видел я PHP код, который пишут наСильники, никогда на php не писавшие  :D  То еще зрелище. Все пытаются сделать руками и через ж (как в С привыкли). Все пытаются память освобождать итд итп. 
PM MAIL ICQ   Вверх
-=Ustas=-
Дата 6.2.2007, 08:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 32
Всего: 69




 ! 
-=Ustas=-
Не нужно плодить темы в разных форумах!!!
 
Быстрее ответ из-з аэтого не станет. Надо правильно задавать вопросы.


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
VKlim
Дата 8.2.2007, 01:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 1.2.2007

Репутация: нет
Всего: нет



Я спрашиваю, ПОЧЕМУ они меняются сами, и ГДЕ ошибка при работе с флагами! 

Это сообщение отредактировал(а) PARROT - 8.2.2007, 09:26
PM MAIL   Вверх
VKlim
Дата 12.2.2007, 23:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 1.2.2007

Репутация: нет
Всего: нет



Спасибо всем учавствовавшим, проблема решена! 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0532 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.