C# 如何使此代码正常工作?
因此,我最近一直在学习如何制作一个C#应用程序,通过LAMP服务器发送和接收参数,但我似乎遇到了麻烦,我需要一些帮助来了解我在这里做错了什么 这是一个简单的测试应用程序,它向php文件发送两个参数(登录名和密码),并根据参数是否正确接收响应C# 如何使此代码正常工作?,c#,php,C#,Php,因此,我最近一直在学习如何制作一个C#应用程序,通过LAMP服务器发送和接收参数,但我似乎遇到了麻烦,我需要一些帮助来了解我在这里做错了什么 这是一个简单的测试应用程序,它向php文件发送两个参数(登录名和密码),并根据参数是否正确接收响应 private void btEntrar_Click(object sender, EventArgs e) { String login, senha, postData, requestMethod = "POST", cont
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 + "¶m2=" + 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
?>
“成功”的结尾会有新意吗?看看这是否有效:
if (responseFromServer.Trim().Equals("SUCCESS"))
{
如果回答有新行或什么的怎么办;这有用吗:responseFromServer.Trim().Equals(“SUCCESS”)
?@EdPlunkett我真不敢相信这么简单的事情解决了我的问题。我想我真丢脸,谢谢你马上解决!这就是为什么检查十六进制数据(字符串等)很重要的原因。