Есть довольно много возможностей. Я представлю одно, но это далеко не единственное.
Прежде всего, я бы не использовал стандартный тип контента (скорее всего, text/html
, но я его не проверял). Вы можете использовать JSON или XML как тип содержимого, я буду использовать JSON здесь
header("Content-Type: application/json");
Это не является необходимым, мы могли бы разобрать JSON пренебрег заголовка Content-Type
, но чище, что путь.
Далее мы будем генерировать выходной сигнал
$arr = array('Status' => 1, 'Message' => 'Company Login Successful'); //or otherwise, depending on if the login *was* successful
echo json_encode($arr);
на стороне C# вы можете использовать HttpClient
класс, чтобы принести результат.
HttpClient httpClient = new HttpClient();
var httpResponseMessage = await httpClient.PostAsync($"http://www.yourserver.net/login.php", loginHttpContent);
var stream = await httpResponseMessage.ReadAsStreamAsync();
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(LoginResult));
var loginResult = serializer.ReadObject(stream) as LoginResult;
LoginResult
класс:
[DataContract]
class LoginResult
{
[DataMember]
public int Status { get; set; }
[DataMember]
public string Message { get; set; }
}
Обратите внимание: код предоставляется в только эскиз и вовсе не готовый к производству. Например, вы не должны создавать HttpClient или DataContractJsonSerializer
на данный момент, правильно распоряжаться ресурсами, обработки исключений и т.д.
** Никогда не храните пароли в ясном тексте! **. Храните только хэши паролей! Используйте PHP '' password_hash() '] (http://php.net/manual/en/function.password-hash.php) и [' password_verify() '] (http://php.net/manual/en /function.password-verify.php). Если вы используете PHP-версию ниже 5.5 (что, надеюсь, у вас нет), вы можете использовать библиотеку [password_compat library] (https://github.com/ircmaxell/password_compat), чтобы получить такую же функциональность. –
** Вы широко открыты для [SQL Injections] (http://php.net/manual/en/security.database.sql-injection.php) ** и должны действительно использовать ** [Подготовленные утверждения] (http: //php.net/manual/en/mysqli.quickstart.prepared-statements.php)** вместо того, чтобы объединять ваши запросы. Специально, поскольку вы вообще не избегаете пользовательских входов! –
, пожалуйста, проверьте это http://stackoverflow.com/a/24859910/1849024 – imsome1