我怎样才能使这段代码正常工作

本文关键字:代码 常工作 工作 段代码 | 更新日期: 2023-09-27 18:04:15

所以我一直在学习如何使一个c#应用程序发送和接收参数与LAMP服务器最近,但我似乎已经撞墙,我需要一些帮助了解我做错了什么在这里。

这是一个简单的测试应用程序,它向php文件发送两个参数(login和password),并根据参数是否正确接收响应。

private void btEntrar_Click(object sender, EventArgs e)
    {
        String login, senha, postData, requestMethod = "POST", contentType = "application/x-www-form-urlencoded", responseFromServer = null;
        String urlLogin = "http://192.168.1.107/knowledgems/accounts/login.php";
        login = tbLogin.Text;
        senha = tbSenha.Text;
        postData = "param1=" + login + "&param2=" + senha;
        byte[] byteArray = Encoding.UTF8.GetBytes(postData);
        WebRequest request = WebRequest.Create(urlLogin);
        WebResponse response;
        Stream dataStream;
        StreamReader reader;
        //Send request
        request.Method = requestMethod;
        request.ContentType = contentType;
        request.ContentLength = byteArray.Length;
        dataStream = request.GetRequestStream();
        dataStream.Write(byteArray, 0, byteArray.Length);
        dataStream.Close();
        //Get response
        response = request.GetResponse();
        dataStream = response.GetResponseStream();
        reader = new StreamReader(dataStream);
        responseFromServer = reader.ReadToEnd();
        reader.Close();
        dataStream.Close();
        response.Close();
        if (responseFromServer.Equals("SUCCESS"))
            MessageBox.Show("Login efetuado.");
        else
            MessageBox.Show("Login não efetuado." + responseFromServer);
    } //btEntrar

虽然一切似乎都正确,我实际上可以从我的php文件中获得响应,但我无法执行末尾的验证函数

(if (responseFromServer.Equals("SUCCESS"))) 

即使显示的响应正是字符串"SUCCESS",我似乎无法将responseFromServer字符串与"SUCCESS"进行比较,以检查是否一切正常登录,因此它总是以读取else条件而告终。

以下我也张贴我的php文件。

<?php
require_once 'connection.php';
header('Content-Type: application/form-data');
class User {
    private $db;
    private $connection;
    function __construct(){
        $this->db = new DB_Connection();
        $this->connection = $this->db->get_connection();            
    } //__construct
    public function does_user_exist($username,$password){
        $query = "SELECT * FROM users WHERE user_username = '$username' AND user_password = '$password'";
        $result = mysqli_query($this->connection,$query);
        if(mysqli_num_rows($result) > 0){
            echo "SUCCESS";     
        } //if
        else {
            echo "ERRO&101";            
        } //else            
        mysqli_close($this->connection);
    } //does_user_exist     
} //class
$user = new User();
if (isset($_POST['param1'],$_POST['param2'])){
    $username = $_POST['param1'];
    $password = $_POST['param2'];
    if(!empty($username) && !empty($password)){
        //$encrypted_password = md5($password);
        $user -> does_user_exist($username,$password);
    }
    else {
        echo "ERRO&100";
    } //else
} //if
?>

提前感谢您的时间,请帮忙!

编辑1:我的猜测是格式不太适合contentType,但我不能找出正确的方法来做它

我怎样才能使这段代码正常工作

SUCCESS是否有换行符?看看这是否有效:

if (responseFromServer.Trim().Equals("SUCCESS"))
{