Загрузка...

I tell and show how to deal with C # in php.

Thread in C# created by Maksim360360 Nov 27, 2019. 977 views

  1. Maksim360360
    Maksim360360 Topic starter Nov 27, 2019 Человек из команды "Good Code Dev" 38 Apr 11, 2018
    Всем привет, сегодня вы научитесь делать запросы в c# для php и получать с php ответ! (сори за тавтологию)
    Для начало давайте создадим маленький C# скрипт

    Code

    using System;
    using System.Text;
    using System.Windows;
    using System.Net;
    using System.Collections.Specialized;

    namespace CSharpAndPHP
    {
    public partial class MainWindow : Window
    {
    public MainWindow()
    {
    InitializeComponent();
    }

    private void StartTest_Click(object sender, RoutedEventArgs e)
    {
    Test();
    }

    string url = "http://site.ru/send"; //Создадим переменную с ссылкой на наш сайт
    string DataFromServer; //Тут мы храним все ответы с сервера

    public void Send(string command, string[] NameComand, string[] SendComand)//Создадим метод отправки
    {
    try
    {

    WebClient wc = new WebClient();
    NameValueCollection dataToSend = new NameValueCollection(); //Масив с данными

    dataToSend["command"] = command; //наша команда (по позже объясню...),

    for (int x = 0; x < NameComand.Length; x++) //Загружаем все в масив dataToSend через for
    {
    dataToSend[NameComand[x]] = SendComand[x];//Загружаем все в масив(название команды и что она хранит)
    //MessageBox.Show(NameComand[x] + " " + SendComand[x]); //Раскоментируйте, если хотите проверить, поступают ли данные в масив..
    }

    DataFromServer = Encoding.UTF8.GetString(wc.UploadValues([USER=2228771]@URL[/USER], dataToSend));//Отправляем и получаем ответ(если он есть)


    }
    catch (Exception e) { Message(e.ToString()); } //В случае ошибки - выводим ошибку на экран
    }
    //Теперь можем создать тестовый метод для отправки на сервер, давайте попробуем сделать физику на нашем сервере, и сложим 5 переменных, а именно текст, начинаем...
    void Test()
    {
    //в массиве на 1-ницу всегда должно быть больше!!!(написал для "программистов"...)
    string[] NameComand = new string[5]; //Тут мы храним запросы
    string[] SendComand = new string[5]; //Тут команды

    NameComand[0] = "string_0";
    NameComand[1] = "string_1";
    NameComand[2] = "string_2";
    NameComand[3] = "string_3";
    NameComand[4] = "string_4";

    SendComand[0] = "Создатель";
    SendComand[1] = "данного";
    SendComand[2] = "скрипта";
    SendComand[3] = "Maksim360360";
    SendComand[4] = "https://zelenka.guru/members/370580/";

    //Send("Test", NameComand, SendComand);
    //Test - это наша команда, увидите в скрипте php, про что я говорю... NameComand и SendComand, вы уже знаете, за что отвечают...
    Send("Test", NameComand, SendComand);

    Message(DataFromServer);//выводим текст (не спрашивайте почему много медов, мне так и красивее и лучше...)
    }
    //Теперь давайте создании метод для вывода и вызовем его из метода Test -
    void Message(string Message)
    {
    MessageText.Text = Message;
    }

    }
    }

    (исходники проекта будут ниже(C# и php)...)

    Теперь напишем php скрипт, начинаем
    создадим папку send и в ней файл index.php
    В нем напишем -

    php
    <?php //означает что это php скрипт(может кто-то не знает...)

    //$Название переменной = $_POST['тут названия запросов с C#'];
    $Сommand = $_POST['command']; //принимаем нашу команду (она нам понабенится дальше, если вы хотите 2 разных скрипта для 1- скрипта C#...)
    $Msg_0 = $_POST['string_0'];//принимаем наше сообщение)))
    $Msg_1 = $_POST['string_1'];//принимаем наше сообщение)))
    $Msg_2 = $_POST['string_2'];//принимаем наше сообщение)))
    $Msg_3 = $_POST['string_3'];//принимаем наше сообщение)))
    $Msg_4 = $_POST['string_4'];//принимаем наше сообщение)))

    switch($Сommand)//Вот наши и команды
    {
    case "Test": //если мы отправили команду Test, то выполняем код после :
    //теперь можем соединить наш текст) начинаем!
    $MsgAll = "$Msg_0 $Msg_1 $Msg_2 $Msg_3 $Msg_4";//Собираем))
    echo $MsgAll;
    break;
    case "Test2": //Оставил как пример, как сделать 2-ю команду...

    break;
    }
    ?>

    теперь залейте скрипт на свой сайт и посмотрите результат)...

    Исходники, как и обещал - https://yadi.sk/d/yeexTVExmTsCQw

    Аватарку мне!)
     
  2. NavigatoR
    NavigatoR Nov 29, 2019 242 Feb 19, 2017
    Но.. это же не безопасно... Твой запрос можно легко перехватить Fiddler`oм или чарли и изменить как хочешь
     
  3. Maksim360360
    Maksim360360 Topic starter Nov 29, 2019 Человек из команды "Good Code Dev" 38 Apr 11, 2018
    NavigatoR, я в курсе что не безопасно, это были просто основы...
    The post was merged to previous Nov 29, 2019
    и кстати, некогда не доверяйте то, что вам присылают в _POST, лучше проверить, а как, я расскажу немного по позже)
     
Top
Loading...