У меня есть приложение C # Windows Form, отправляющее переменные в веб-сервис PHP.
Проверено отдельно:
1) Веб-сервис PHP работает и возвращает результат.
2) Приложение Windows C Form для отображения переменных в URL с WebRequest
, переменные отображаются правильно в URL.
3) Когда я отображаю переменную возврата в C #, используя MessageBox.Show
, отображается правильная переменная (Разрешить)

Но когда я использую возвращаемую переменную в операторе if
, он не выполняет код внутри оператора if
.

Здесьмой веб-сервис PHP:
<?php
// Database Structure
require_once('connect.php');
//Get password from the database for the user
$stmtus = $conn->prepare("SELECT password from `Users` where `email` = :Username");
$stmtus->bindParam(':Username', $username);
$username= $_GET['username'];;
$stmtus -> execute();
$password = $stmtus->fetch();
$un = $_GET['username'];
$pw = $_GET['password'];
$ust = $_GET['Token'];
if(password_verify($pw, $password[0])){
$stmt = $conn->prepare("SELECT
COUNT(Token) AS cnt FROM `SoftwareToken`
LEFT JOIN User ON iduser = SoftwareToken.Consultant
WHERE Token = :Token
AND username = :Username");
$stmt->bindValue(':Username', $un);
$stmt->bindValue(':Token', $ust);
$stmt->execute();
$result= array();
while ($result = $stmt->fetch(PDO::FETCH_ASSOC)){
$cnt = $result['cnt'];
if($cnt == 1){
echo "Allow";
}else{
echo "NO";
}
?>
Вот мой код приложения C # для Windows Form:
private void btnlogin_Click(object sender, EventArgs e)
{
if (String.IsNullOrEmpty(txtusername.Text))
{
MessageBox.Show("Please insert username");
}
if (String.IsNullOrEmpty(txtpassword.Text))
{
MessageBox.Show("Please insert password");
}
var Token = "PYPYY 46355 R8T2Q2";
var username = txtusername.Text;
var password = txtpassword.Text;
var url = "https://mydomain.com.au/LoginVerification.php?";
var var = "username=" + username + "&password=" + password + "&Token=" + Token;
var URL = url + var;
// MessageBox.Show(URL);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream dataStream = response.GetResponseStream();
// Open the stream using a StreamReader for easy access.
StreamReader reader = new StreamReader(dataStream);
// Read the content.
string responseFromServer = reader.ReadToEnd();
//MessageBox.Show(responseFromServer);
// Display the content.
if (responseFromServer == "Allow")
{
//Form1 identykidzform = new Form1();
//identykidzform.Show();
MessageBox.Show(responseFromServer);
}
else if (responseFromServer == "NO")
{
MessageBox.Show("No");
//Application.Exit();
}
else
{
MessageBox.Show("Test failed");
//Application.Exit();
}
}