2017-02-23 5 views
0

これは私のPHPファイルです。私はPHPから結果を得ることができ、C#でそれを使用する方法はありますか?ログインのような?

require "conn.php"; 
$user_name = $_POST["user_name"]; 
$user_pass = $_POST["password"]; 
$mysql_qry = "select * from companies where company_username like '$user_name' and company_password like '$user_pass'"; 


if(mysqli_num_rows($result) > 0) 
{ 
echo "Company Login Successful"; 
} 
else{ 
echo "Login Error! Please try again"; 
} 

WebClientを使用する必要がありますか? 申し訳ありません私は初心者です、ありがとう:)

+2

**パスワードを平文で保存しないでください!**。パスワードハッシュだけを保存してください! PHPの['password_hash()'](http://php.net/manual/en/function.password-hash.php)と['password_verify()'](http://php.net/manual/en /function.password-verify.php)。 5.5よりも低いバージョンのPHPを実行している場合は、[password_compat library](https://github.com/ircmaxell/password_compat)を使用して同じ機能を使用できます。 –

+1

**あなたは[SQL Injections](http://php.net/manual/en/security.database.sql-injection.php)**を広く読んでおり、** [Prepared Statements](http: //php.net/manual/en/mysqli.quickstart.prepared-statements.php***。クエリを連結する代わりに、あなたがユーザーの入力をまったくエスケープしていないからです! –

+0

これを確認してくださいhttp://stackoverflow.com/a/24859910/1849024 – imsome1

答えて

1

かなりの可能性があります。私は1つを提示しますが、これは1つではありません。

まず最初に、標準のコンテンツタイプ(おそらくtext/htmlですが、私はそれをチェックしていません)を使用しません。あなたは、コンテンツタイプとしてJSONやXMLを使用することができ、私はこれは必要ありませんここに

header("Content-Type: application/json"); 

JSONを使用します、我々はContent-Typeヘッダ無視JSONを解析することができますが、それはきれいという方法です。

次はあなたが結果をフェッチするためにHttpClientクラスを使用することができ、出力のC#側で

$arr = array('Status' => 1, 'Message' => 'Company Login Successful'); //or otherwise, depending on if the login *was* successful 
echo json_encode($arr); 

を生成する必要があります。

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を作成してリソースを正しく処分し、例外を処理してはならない

0

...私は解決策を探して、私はPHPからの結果を得るための簡単な方法を見て
private void SubmitData() 
{ 
try 
{ 
    string user = tbUsername.Text; 
    string pass = tbPassword.Text; 
    string url = "--my_php_url--"; 

    WebClient webclient = new WebClient(); 
    NameValueCollection formData = new NameValueCollection(); 
    formData["user_name"] = user; 
    formData["password"] = pass; 

    byte[] responseBytes = webclient.UploadValues(url, "POST", formData); 
    string responsefromserver = Encoding.UTF8.GetString(responseBytes); 
    MessageBox.Show(responsefromserver); 
    webclient.Dispose(); 
} 
catch (Exception e) 
{ 
MessageBox.Show("Error :" + e.Message); 
} 

助けてくれてありがとう! :)

関連する問題