【发布时间】:2014-06-24 15:06:40
【问题描述】:
我正在构建一个需要登录的简单应用程序。目前,我直接从我的 C# 应用程序连接到我的数据库,但是由于某种原因,将使用它的大学网络不允许直接连接到 MySQL。我决定看看我将如何从 PHP 中做到这一点。我已经构建了一个简单的登录表单并对其进行了测试,它似乎可以工作。但是我有一些问题需要解决。
我如何首先阻止任何人输入 PHP 文件的地址并取回数据?
其次,我如何才能获得多个结果?假设我创建了一个 PHP 文件,它获取所有用户的文件并将它们存储在 C# 应用程序中,我该如何从 PHP 文件中实际解析它?
这是我在服务器上的 login.php 文件示例:
<?php
include("connect.php");
$username = mysql_escape_string($_GET['username']);
$password = mysql_escape_string($_GET['password']);
$squery = mysql_query("SELECT * FROM users WHERE username='$username'");
$query = mysql_fetch_array($squery);
$rowcount = mysql_num_rows($squery);
if($rowcount == 1)
{
if($password != $query['password'])
echo'Password errata';
else
echo 'Login avvenuto';
}
else
echo 'Account non registrato';
?>
这是我在 C# 上用来访问 PHP 文件的代码:
string Reply = new WebClient().DownloadString("http://127.0.0.1/ClipCloud.Service/account_auth/login.php?username=" + textBox1.Text + "&password=" + textBox2.Text);
switch (Reply.ToLower())
{
case "account non registrato":
{
MessageBox.Show("Account not registered!");
break;
}
case "password errata":
{
MessageBox.Show("Password error!");
break;
}
case "login avvenuto":
{
MessageBox.Show("Login happened!");
break;
}
default:
{
MessageBox.Show("Error with the remote server, please let try again later!");
break;
}
}
对不起,如果这个问题有点令人困惑,我基本上只需要知道如何使用 C# 正确操作具有正确安全性的 PHP 数据库。
【问题讨论】:
-
如果php可以连接mysql那么c#也可以,反之亦然,这是XY问题
-
所以你想访问运行 PHP 的服务器上的数据库。所以你想要的可能是一个网络服务。类似于 REST 或 SOAP Web 服务。搜索这些术语以及如何使用 PHP/MySQL 构建一个,然后使用 C# 使用该服务
-
@Lashane:不一定。 php 可能与 mysql 在同一台服务器上运行并通过本地套接字连接,而 c# 远程运行并且必须通过 tcp 连接。并非所有 mysql 安装都设置为 tcp 连接。
-
是的,基本上,我的服务器将运行 PHP,我只是想要一种安全且简单的方法来用 C# 解析它们
-
我有一个可能的解决方案,正在编写中。希望问题在我发布之前不会被关闭,哈哈。