За последние 24 часа нас посетили 6584 программиста и 523 робота. Сейчас ищут 125 программистов ...

Страница не видет переменные переданные POST и GET

Тема в разделе "PHP для новичков", создана пользователем Михаил_Влад, 13 мар 2018.

  1. Михаил_Влад

    Михаил_Влад Новичок

    С нами с:
    4 фев 2017
    Сообщения:
    36
    Симпатии:
    1
    Хочу поделиться своей проблемой... Была задача принимать данные с Ардуинки по gprs и управлять ею же с мобильного приложения... Короче победил, НО КАПЕЦ КАКИМ ГОВЯНЫМ СПОСОБОМ... У меня с ардуино приходят данные, получаю методом ГЕТ и в текстовый документ сохраняются, а браузер и Мускул их не видит.... В итоге сохраняю их в лог.тхт потом извлекаю из него же, парсю, добавляю в БД.

    С андройда такая же история... только про метод ПОСТ.... Как ни странно все в итоге заработало.... GPRS модуль читает строку, которую вывожу на пхп...

    для андройда сделал два разных пхп-файла один для формирования команд, другой для вывода инфы из БД...

    Подскажите пожалуйста
     
  2. Sergey_Tsarev

    Sergey_Tsarev Активный пользователь

    С нами с:
    17 мар 2016
    Сообщения:
    436
    Симпатии:
    99
    Ну код-то выложи...
     
  3. Михаил_Влад

    Михаил_Влад Новичок

    С нами с:
    4 фев 2017
    Сообщения:
    36
    Симпатии:
    1
    этот отвечает за прием с андройда

    Код (Text):
    1. <?php
    2.        include("connect.php");
    3.      
    4.        $link=Connection();
    5.    
    6.     $f = fopen("command.csv","w"); //открываем файл для добавления данных
    7.  
    8.  
    9.    
    10.     $Id=$_POST["Pstr1_id"];
    11.     $Rezhim=$_POST["Pstr1_rezhim"];  
    12.     $Okna=$_POST["Pstr1_okna"];
    13.     $Poliv=$_POST["Pstr1_poliv"];
    14.     $Nabor=$_POST["Pstr1_nabor"];
    15.     $t_ot_o=$_POST["Pstr1_t_ot_o"];
    16.     $time1_nab_bak=$_POST["Ptime1_nab_bak"];
    17.     $time1_nach_poliv=$_POST["Ptime1_nach_poliv"];
    18.     $time1_poliv=$_POST["Ptime1_poliv"];
    19.    
    20.    
    21.     fwrite($f,"id=$Id&Rezhim=$Rezhim&Okna=$Okna&Poliv=$Poliv&Nabor=$Nabor&t_ot_o=$t_ot_o&time1_nab_bak=$time1_nab_bak&time1_nach_poliv=$time1_nach_poliv&time1_poliv=$time1_poliv"); //запись данных в файл
    22.     fclose($f); //закрываем файл  
    23. ?>
    --- Добавлено ---
    вот этот за запись из этого текстового файла в БД и отправкой назад на андройд
    PHP:
    1. <?php
    2.  
    3.        include("connect.php");
    4.      
    5.        $link=Connection();
    6.  
    7.  
    8.  
    9. $homepage = file_get_contents("command.csv");
    10. parse_str($homepage);
    11.  
    12. $result=mysql_query("SELECT * FROM arduino_loginPassword WHERE login=$id",$link);
    13.  
    14.        
    15. if (($result)>0){
    16.                    
    17.         $query = "INSERT INTO `arduino_command`(`id`,    `Rezhim`,     `Okna`,     `Poliv`,     `Nabor`,     `t_ot_okon`,   `time_nab_bak`,    `time_nach_poliv`,       `time_poliv`)
    18.        VALUES                                 ('".$id."','".$Rezhim."','".$Okna."','".$Poliv."','".$Nabor."','".$t_ot_o."','".$time1_nab_bak."','".$time1_nach_poliv."','".$time1_poliv."')";
    19.            
    20.  
    21.         $result=mysql_query("SELECT * FROM `arduino_out` WHERE id=$id ORDER BY     timestamp DESC LIMIT 1",$link);
    22.        
    23.         if (mysql_num_rows($result)>0)
    24.         {
    25.             $row = mysql_fetch_array($result);
    26.    
    27.             do
    28.             {
    29. //                print_r("'".$row['id']."'&'"$row['t1']."'&'".$row['t2']."'&'".$row['level']."'&'".$row['twater']."'&'".$row['S_okna']."'&'".$row['S_okna']."'&'".$row['S_poliv']."'&'".$row['S_nabor']."'&'".$row['S_Rezhim']."'");
    30.                 echo ("id=".$row['id']."&t1=".$row['t1']."&t2=".$row['t2']."&level=".$row['level']."&twater=".$row['twater']."&S_okna=".$row['S_okna']."&S_poliv=".$row['S_poliv']."&S_nabor=".$row['S_nabor']."&S_Rezhim=".$row['S_Rezhim']."");
    31.             }
    32.             while($row = mysql_fetch_array($result));      
    33.                
    34.         }
    35.        
    36.         else{
    37.             print_r("ID not find");          
    38.         }
    39.  
    40.   mysql_query($query,$link);
    41.     mysql_close($link);  
    42.     }
    43.     else{
    44.         print_r("hui");  
    45.     }
    46. ?>
    --- Добавлено ---
    а на андройде по таймеру вызывается второй файл для получения из бд.... , а когда на кнопку нажимаешь "отправить команду", команда идет в первый код
    --- Добавлено ---
    На ардуинке подобная схема
     
  4. Михаил_Влад

    Михаил_Влад Новичок

    С нами с:
    4 фев 2017
    Сообщения:
    36
    Симпатии:
    1
    Так никто и не подсказал...

    может хоть ссылочку где почитать...

    почему я не могу сразу в первом коде вывести данные на экран или занести их в БД

    $Rezhim=$_POST["Pstr1_rezhim"];

    при print_r($Rezhim); пустая строка.... если в БД, то тоже
     
  5. Abyss

    Abyss Активный пользователь

    С нами с:
    12 дек 2015
    Сообщения:
    1.259
    Симпатии:
    210
    Адрес:
    Default city
  6. Михаил_Влад

    Михаил_Влад Новичок

    С нами с:
    4 фев 2017
    Сообщения:
    36
    Симпатии:
    1
    Прописал
    var_dump($_POST): в первом коде... после всех $_POST ...

    отправляю сообщения с эмулятора андройд

    в ftp command.csv -
    id=55555&Rezhim=1&Okna=1&Poliv=1&Nabor=1&t_ot_o=22&time1_nab_bak=9:23&time1_nach_poliv=10:25&time1_poliv=1:35

    в add.php браузера
    NULL array(0) { }

    обновляю браузер add.php

    в ftp command.csv становится
    id=&Rezhim=&Okna=&Poliv=&Nabor=&t_ot_o=&time1_nab_bak=&time1_nach_poliv=&time1_poliv=

    при повторной отправке с эмулятора андройд
    в ftp command.csv -
    id=55555&Rezhim=1&Okna=1&Poliv=1&Nabor=1&t_ot_o=22&time1_nab_bak=9:23&time1_nach_poliv=10:25&time1_poliv=1:35
     
  7. victort

    victort Активный пользователь

    С нами с:
    8 сен 2010
    Сообщения:
    79
    Симпатии:
    2
    А у тебя какой версии php и mysql. По написанным запросам видно что устаревшие команды используешь. Я просто с такой же проблемой столкнулся что пытался на старой версии сделать запросы а mysql не поддерживал функции которые я использовал. Перешел на новую версию mysql и php т.е. теперь использую команды запроса через mysqli и версия у меня php7. Сразу скажу если будешь переходить на новую БД при выполнении команд mysqli есть нюансы но о них в интернете не пишут. Главный нюанс такой когда подключишься к БД переменную подключения либо делаешь глобальной либо таскай с собой чтоб было минимум подключение к БД.
     
  8. gruth

    gruth Новичок

    С нами с:
    13 май 2017
    Сообщения:
    223
    Симпатии:
    18