Передать переменную из php в c#

Тема в разделе ".NET", создана пользователем goodoker, 28 авг 2014.

  1. goodoker

    goodoker Постоялец

    Регистр.:
    7 окт 2012
    Сообщения:
    117
    Симпатии:
    49
    Подскажите, как это можно сделать?
     
    Шумадан нравится это.
  2. NIKSU

    NIKSU Постоялец

    Регистр.:
    6 июн 2011
    Сообщения:
    123
    Симпатии:
    91
    Сохраняешь переменную в файл в одной программе и читаешь из файла в другой?
     
    goodoker нравится это.
  3. Шумадан

    Шумадан Хабарра!!11

    Регистр.:
    6 фев 2008
    Сообщения:
    1.724
    Симпатии:
    2.100
    в каком случае? веб, десктоп, консоль? распишите детально, что и как в С#, что и как в пхп, что кого вызывает и каким образом
     
    Джуга и goodoker нравится это.
  4. goodoker

    goodoker Постоялец

    Регистр.:
    7 окт 2012
    Сообщения:
    117
    Симпатии:
    49
    php
    Код:
        
        $result = mysql_query("SELECT * FROM users WHERE login = '$login' AND password = '$pass'") or die(mysql_error());
        $row = mysql_fetch_array($result);   
        $id = $row['id'];
        $pc = $row['pc'];
    
    c#
    Код:
    using xNet.Net;
    using xNet.Collections;
    
      Form2 form2 = new Form2();
    
      private void button1_Click(object sender, EventArgs e)
      {
      HttpRequest req = new HttpRequest();
      HttpResponse resp;
      req.Cookies = new CookieDictionary();
    
      var urlParams = new RequestParams();
    
      urlParams["login"] = textBox1.Text;
      urlParams["pass"] = textBox2.Text;
    
      resp = req.Get("http://test/script.php", urlParams);
    
      form2.label2.Text = resp.ToString();
      form2.ShowDialog();
      }
    
    Нужно вывести значения переменных $id, $pc в form2.label1 и form2.label2.
    Если вывести через echo, то выводятся оба значения само собой. Как их разделить, чтобы присвоить каждому лейблу отдельное значение?
    Код:
        
        echo $pc;
        echo $id;
    
     
    Шумадан нравится это.
  5. Шумадан

    Шумадан Хабарра!!11

    Регистр.:
    6 фев 2008
    Сообщения:
    1.724
    Симпатии:
    2.100
    Джуга и goodoker нравится это.
  6. goodoker

    goodoker Постоялец

    Регистр.:
    7 окт 2012
    Сообщения:
    117
    Симпатии:
    49
    Спасибо! Получилось сделать.
    php
    Код:
    $arr = array('id' => $id, 'pc' => $pc);
    
    echo json_encode($arr);
    c#
    Код:
    using xNet.Net;
    using xNet.Collections;
    using Newtonsoft.Json;
    using Newtonsoft.Json.Linq;
    
      Form2 form2 = new Form2();
    
      private void button1_Click(object sender, EventArgs e)
      {
      try
      {
      HttpRequest req = new HttpRequest();
      HttpResponse resp;
      req.Cookies = new CookieDictionary();
    
      var urlParams = new RequestParams();
    
      urlParams["login"] = textBox1.Text;
      urlParams["pass"] = textBox2.Text;
    
      resp = req.Get("http://test/script.php", urlParams);
      string json = resp.ToString();
      try
      {   
      JObject data = JObject.Parse(json);
      int dataId = (int)data["id"];
      string dataPc = (string)data["pc"];
      form2.label1.Text = dataPc;
      form2.label2.Text = dataId.ToString();
      if (dataId > 0)
      {
      form2.ShowDialog();
      }
      }
      catch (Exception ex)
      {
      MessageBox.Show("Ошибка авторизации", "Error");
      }  
      }
      catch (Exception ex)
      {
      MessageBox.Show("Нет соединения с сервером ", "Error");
      }
      }
    
     
    Последнее редактирование: 29 авг 2014
    Шумадан нравится это.
  7. goodoker

    goodoker Постоялец

    Регистр.:
    7 окт 2012
    Сообщения:
    117
    Симпатии:
    49
    json_encode() не работает с кириллицей.
    В бд utf8_general_ci
    Подключаюсь к бд и меняю кодировку на cp1251
    PHP:
    mysql_query("SET NAMES 'cp1251'");
    mysql_query("SET CHARACTER SET 'cp1251'");
    PHP:
    $arr = array('id' => $id'surname' => $surname'name' => $name'patronymic' => $patronymic'pc' => $pc);
    Выводится:
    {"id":"1","surname":null,"name":null,"middlename":null,"pc":"d"}
     
  8. Шумадан

    Шумадан Хабарра!!11

    Регистр.:
    6 фев 2008
    Сообщения:
    1.724
    Симпатии:
    2.100
    Джуга и goodoker нравится это.
  9. goodoker

    goodoker Постоялец

    Регистр.:
    7 окт 2012
    Сообщения:
    117
    Симпатии:
    49
    добавил
    PHP:
    echo json_encode($arrJSON_UNESCAPED_UNICODE);
    , но всё по прежнему...

    Вижу, что
    Надо будет обновить.
     
    Последнее редактирование: 30 авг 2014
  10. goodoker

    goodoker Постоялец

    Регистр.:
    7 окт 2012
    Сообщения:
    117
    Симпатии:
    49
    {"id":"1","surname":"аПаВаАаПаВаА","name":"аПаАаВаПб‹","patronymic":"аВаПб‹аВ","pc":"d"}

    Уже лучше, но проблема с кодировкой.

    PHP:
    mysql_query("SET NAMES 'cp1251'");
    mysql_query("SET CHARACTER SET 'cp1251'");
    Убрал, т.к. с ней совсем ничего не выводило.

    Проблема решена назначением кодировки ut8 http серверу по умолчанию.
     
    Последнее редактирование модератором: 4 сен 2014
    Шумадан нравится это.