Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам > OpenWRT/LEDE

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.03.2013, 10:31   #24
Bulatovor
Senior Member
 
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 800
Bulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond repute
По умолчанию

Все справился правда с большой помощью в написании PHP с профильного форума, но формы крутил сам. Ошибка оказалась в неправильном использовании мною форм. А в организации взаимодействия с базой данных ребята помогли, даже больше чем ожидал -типа красивого оформления и минимальной защитой от взлома базы
Итого - сделано все на оформлении выложенном Admin, состояние кнопки определяется значением в базе данных(пока на странице даже отражаются эти значения), нажатие меняет на противоположное, автообновление страницы пока убрал, буду докручивать обновление только по внешнему изменению базы, файл CSS не выкладываю, я его не менял.
Выглядит теперь так http://bulatovor.ru/SwitchAll.shtml, 1 -ая кнопка соответственного первого стиля, вторая второго
файл обработчик передачи значения MySQL.php
PHP код:
 <?php

// Подключаемся к БД
$domain '************'//это переменная в которую помещается адрес сайта на котором создана БД.
$db_name '*********';          //это переменная в которую записывается имя БД.
$db_user '**********';          //переменная в которую заноситься имя пользователя БД.
$db_pass '************';           //переменная для хранения пароля пользователя БД.
$db_loc 'localhost';  //переменная с полным адресом сервера на котором находится БД. Полный адрес используется вместо выражения "localhost", которое допускается на многих хостингах. 
// Пытаемся соединиться с сервером базы данных MySQL
$db = @mysql_connect($db_loc$db_user$db_pass);
//Проверяем, удачно ли прошло подключение
if (!$db) {
    echo( 
'<center><p><b>Невозможно подключиться к серверу базы данных !</b></p></center>');
    exit();
}
//Проверяем доступность нужной БД
if (!@mysql_select_db($db_name$db)) {
    echo( 
'<center><p><b>База данных ' $db_name ' недоступна!</b></p></center>');
    exit();
}
$value mysql_real_escape_string($_GET['Zn']); // защищаем передаваемые сведения от SQL иньекций, говорят надо чтоб не перехватывали данные
$name mysql_real_escape_string($_GET['Switch']);
$result mysql_query("UPDATE `switch` SET `Zn`='{$value}' WHERE `ID`='{$name}'");
header("Location: " $_SERVER['HTTP_REFERER']); // записываем изменения в БД
?>
ну и сама HTML обновление вида кнопок и формы передачи значений
PHP код:
<!**************************Получение сведений из базы данных и присвоение их переменным***********************>
<?php
// Выполняем все команды файла для подключения к базе данных config.php
include ('php/config.php');
/*Делаем запрос к БД*/
$result mysql_query("SELECT Zn FROM switch WHERE ID='S1'",$db);
/*Преобразовываем результат в массив*/
$myrow mysql_fetch_array($result);
/*делаем выборку столбца, присвоение переменной,выводим результат на экран цифрой для отладки*/
echo $lightOne=$myrow['Zn'];
/*Повторяем для выключателя 2*/
$result mysql_query("SELECT Zn FROM switch WHERE ID='S2'",$db);
$myrow mysql_fetch_array($result);
echo 
$lightTwo=$myrow['Zn'];
?>
    
      <!**********************************КНОПКА 1 ***********************************>
</form>
    <form action="php/MySQL.php" method="get" >
            <?php if ($lightOne == '1') { ?>
            <img src="images/On.png">
        <?php } else { ?>
            <img src="images/Off.png">
        <?php ?>
<input type="hidden" name="Switch" value="S1">
<button class="btn1" value="<?php if ($lightOne == '1'){ ?>0<?php } else { ?>1<?php ?>" type="submit" name="Zn">Свет <?php if ($lightOne == '1') { ?>включен<?php } else { ?>выключен<?php ?></button>
</form>

      
 <!**********************************КНОПКА 2 ***********************************>
</form>
    <form action="php/MySQL.php" method="get" >
            <?php if ($lightTwo == '1') { ?>
            <img src="images/On.png">
        <?php } else { ?>
            <img src="images/Off.png">
        <?php ?>
<input type="hidden" name="Switch" value="S2">
<button class="btn2" value="<?php if ($lightTwo == '1'){ ?>0<?php } else { ?>1<?php ?>" type="submit" name="Zn">Свет <?php if ($lightTwo == '1') { ?>включен<?php } else { ?>выключен<?php ?></button>
</form>
Все остальные вопросы , типа организации обмена между MySQL-портом компа-Arduino, уже будут выходить за рамки данной темы и будут рассмотрены в других темах, дабы не захламлять простую кнопку

З.Ы. Чтобы было легче разбираться - база данных имеет таблицу Switch с двумя столбцами ID - где названия переключателей типа S1,S2.... и Zn - значения состояния этих выключателей 0 и 1

Последний раз редактировалось Bulatovor; 27.03.2013 в 10:35. Причина: Разъяснение
Bulatovor вне форума   Ответить с цитированием
 


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 20:01. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика