Avatar
Griven
Člen
Avatar
Griven:

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:

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:

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ý
Redaktor
Avatar
Odpovídá na Griven
Jan Vargovský:

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:

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ý
Redaktor
Avatar
Odpovídá na Griven
Jan Vargovský:

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:

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

 
Nahoru Odpovědět 23.5.2015 12:42
Avatar
Jan Vargovský
Redaktor
Avatar
 
Nahoru Odpovědět  +2 23.5.2015 13:00
Avatar
Griven
Člen
Avatar
Griven:

Jo a nepomohlo to.

 
Nahoru Odpovědět 23.5.2015 13:49
Avatar
Griven
Člen
Avatar
Griven:
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.