NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
Avatar
Griven
Člen
Avatar
Griven:23.5.2015 8:02

Zdravíčko.

Potřeboval bych poradit s jednou nepříjemnou věci.

Mám PHP aplikaci která funguje jako "Server" . Přes c# a metodu HttpWebRequest POST do ní odesílám nějaké data a z php se mi vrací odpovědi. Díky cookies a session zůstane uživatel furt přihlášen na straně php serveru a není nutné odesílat pokaždé přihlašovací udaje. Problém nastává tehdy , kdy mám odeslat data s diakritikou a za boha prostě nemohu dostat z toho rozumné kódování.

Kdyby jste někdo věděli co s tím , byl bych moc vděčný . Díky předem za odpovědi.

 
Odpovědět
23.5.2015 8:02
Avatar
Odpovídá na Griven
Michal Štěpánek:23.5.2015 9:50

Trošku zmateně položený dotaz. Kde ta data chceš zobrazit? V PHP? V nějaké C#.NET aplikaci? Data se ukládají někam do DB a pak se z ní nějak tahají? Nebo se rovnou po odeslání z C# zobrazují někde v PHP stránce?

Nahoru Odpovědět
23.5.2015 9:50
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Griven
Člen
Avatar
Griven:23.5.2015 10:08

v php nechci nic zobrazovat... ten tvoří jen spojku mezi c# a mysql databází. Dejme tomu že z C#.NET aplikace pošlu PHPčku "cmd=add_user&lo­gin=griven&pas­s=+ěščřž" jako post takže v php $_POST["pass"] se bude rovnat "+?????" .

 
Nahoru Odpovědět
23.5.2015 10:08
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Griven
Jan Vargovský:23.5.2015 10:52

Pouzij UrlDecode/Decode. Btw jen si představ situaci kdyby v hesle bylo &.

Editováno 23.5.2015 10:54
 
Nahoru Odpovědět
23.5.2015 10:52
Avatar
Griven
Člen
Avatar
Griven:23.5.2015 12:15

Byl příklad. Samozřejmě mám zvolené jiné znaky které dělí data od sebe. :)

 
Nahoru Odpovědět
23.5.2015 12:15
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Griven
Jan Vargovský:23.5.2015 12:33

Fajn, tak to řeknu ještě více okatě, co kdyby si měl v tom hesle zastoupeny úplně všechny znaky (včetně toho separátoru, kterým odděluješ parametry).

 
Nahoru Odpovědět
23.5.2015 12:33
Avatar
Griven
Člen
Avatar
Griven:23.5.2015 12:42

Nemluvil jsem o jednom znaku :). V textu mám napsané "znaky";

 
Nahoru Odpovědět
23.5.2015 12:42
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Griven
Jan Vargovský:23.5.2015 13:00

Vzdávám to...

 
Nahoru Odpovědět
23.5.2015 13:00
Avatar
Griven
Člen
Avatar
Griven:23.5.2015 13:49

Jo a nepomohlo to.

 
Nahoru Odpovědět
23.5.2015 13:49
Avatar
Griven
Člen
Avatar
Griven:28.5.2015 18:56
public string SendQuery(string query)
{
    UTF8Encoding enc = new UTF8Encoding();
    byte[] postdata = enc.GetBytes("query=" + query);

    HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(SerUrl);
    webRequest.CookieContainer = cookies;
    webRequest.Method = "POST";
    webRequest.ContentType = "application/x-www-form-urlencoded";
    webRequest.ContentLength = postdata.Length;
    webRequest.Headers.Add(HttpRequestHeader.AcceptCharset, "UTF-8");

    Stream stream = webRequest.GetRequestStream();
    stream.Write(postdata, 0, postdata.Length);
    stream.Close();

    HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse();
    stream = response.GetResponseStream();

    StreamReader reader = new StreamReader(stream, Encoding.UTF8);
    string ReturnData = reader.ReadToEnd();

    return ReturnData;
}

PHP má výchozí kódování UTF-8. Když odešlu třeba "+ěščřžýá" a na php hned nechám poslat zpět - echo $_POST["query"] - tak mi to vypíše +???????;

 
Nahoru Odpovědět
28.5.2015 18:56
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 10.