Я собираюсь создать страницу регистрации, в которой хранятся учетные данные пользователей в базе данных MySQL, которая использует Infinity Free для размещения.
Я использую PHP, чтобы получить значения POST из программы для хранения в моей базе данных, однако это просто не работает.
Я делаю это для проекта колледжа, хотя важный, чтобы я мог действительно использовать некоторую помощь!
Код:
private async void MbtnDialogRegister_Click(object sender, EventArgs e)
{
//User has clicked the Sign Up! button
HttpClient client = new HttpClient();
Uri uri = new Uri("http://......./*something*.php");
HttpContent formContent = new FormUrlEncodedContent(new[]
{
new KeyValuePair<string, string>("Username", mTxtUsername.Text),
new KeyValuePair<string, string>("Password", mTxtPassword.Text),
new KeyValuePair<string, string>("FirstName", mTxtName.Text),
new KeyValuePair<string, string>("Surname", mTxtSurname.Text),
new KeyValuePair<string, string>("Gender", mGender)
});
HttpResponseMessage response = await client.PostAsync(uri, formContent);
response.EnsureSuccessStatusCode();
var responseResult = await response.Content.ReadAsStringAsync();
if (response.StatusCode == System.Net.HttpStatusCode.OK)
{
Client_UploadValuesCompleted(sender, e);
}
else
{
Toast.MakeText(this.Activity, "It didnt Work", ToastLength.Long).Show();
}
}
private void Client_UploadValuesCompleted(object sender, EventArgs e)
{
Activity.RunOnUiThread(() =>
{
mOnRegisterComplete.Invoke(this, new OnSignUpEventArgs(mTxtUsername.Text, mTxtPassword.Text, mTxtName.Text, mTxtSurname.Text, mGender));
this.Dismiss();
});
}
PHP:
$servername = "EXPUNGED";
$database = "EXPUNGED";
$username = "EXPUNGED";
$password = "EXPUNGED";
try
{
$conn = new PDO("mysql:host=$servername;dbname=$database", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected successfully";
echo('<br>UN'. $_POST['Username']);
echo('<br>PW' . $_POST['Password']);
echo('<br>FN' . $_POST['FirstName']);
echo('<br>SN' . $_POST['Surname']);
echo('<br>GN' . $_POST['Gender']);
if(isset($_POST['Username']) && isset($_POST['Password']) && isset($_POST['FirstName']) && isset($_POST['Surname']) && isset($_POST['Gender']))
{
//Get the POST variables
$mUsername = $_POST['Username'];
$mPassword = $_POST['Password'];
$mFirstName = $_POST['FirstName'];
$mSurname = $_POST['Surname'];
$mGender = $_POST['Gender'];
echo "Variables received and set";
$stmt = $conn->prepare('INSERT INTO USERS (Username, Password, FirstName, Surname, Gender) VALUES (:un, :pw, :fn, :sn, :gn)');
$stmt->bindParam(':un', $mUsername);
$stmt->bindParam(':pw', $mPassword);
$stmt->bindParam(':fn', $mFirstName);
$stmt->bindParam(':sn', $mSurname);
$stmt->bindParam(':gn', $mGender);
$stmt->execute();
echo "New records created successfully";
}
}
catch(PDOException $e)
{
echo "Error: " . $e->getMessage();
}
$ conn = null; ?>
Я уже установил, что мой PHP определенно работает, поскольку я смог ввести данные в базу данных, создав приблизительный HTML и отправив туда жесткие значения, похоже, файл Xamarin Android, который я не могу обработать.