【发布时间】:2018-10-07 21:14:13
【问题描述】:
我正在尝试按照本教程创建一个基本的注册和登录应用程序:https://www.youtube.com/watch?v=JQXfIidfFMo&t=193s,并且由于 Android Studio 中的代码显示了 0 个编译错误,我决定不把它放在这里。
怎么了
许多新老用户在 cmets 部分都报告说他们无法将他们的信息发送到他们的数据库,因此我们将不胜感激。用户输入他们的“姓名”、“用户名”、“密码”和“年龄”进行注册,然后这些信息将发送到我托管在 000webhost 上的数据库。一切都被跟踪到了T。
表的名字叫做'user'。
这是我的 Login.php 文件的代码
<?php
$con = mysqli_connect("localhost:3306","id7390457_user","abcd1234","id7390457_data");
$username = $_POST["username"];
$password = $_POST["password"];
$statement = mysqli_prepare($con, "SELECT * FROM user WHERE username = ? AND password = ?");
mysqli_stmt_bind_param($statement, "ssis", $username, $password);
mysqli_stmt_execute($statement);
mysqli_stmt_store_result($statement);
mysqli_stmt_bind_result($statement, $user_id, $name, $age, $username, $password);
$response = array();
$response["success"] = false;
while(mysqli_stmt_fetch($statement)){
$response["success"] = true;
$response["name"] = $name;
$response["age"] = $age;
$response["username"] = $username;
$response["password"] = $password;
}
echo json_encode($response);
?>
这是我的 Register.php 文件的代码
<?php
$con = mysqli_connect("localhost", "id7390457_user", "abcd1234", "id7390457_data");
$name = $_POST["name"];
$age = $_POST["age"];
$username = $_POST["username"];
$password = $_POST["password"];
$statement = mysqli_prepare($con, "INSERT INTO user (name, age, username, password) VALUES (?, ?, ?, ?)");
mysqli_stmt_bind_param($statement, "ssis", $name, $age, $username, $password);
mysqli_stmt_execute($statement);
$response = array();
$response["success"] = true;
echo json_encode($response);
?>
我一直觉得行
$con = mysqli_connect("localhost", "id7390457_user", "abcd1234", "id7390457_data");
后面是使用('hostname', 'username', 'password', 'nameofdatabase')
但是,当我在 Mac 上执行此操作时,我的主机是“localhost” 我的数据库名称是:id7390457_data 我的数据库用户是:id7390457_user
我尝试过使用 'localhost:3306' 我只尝试了“用户”和“数据” 我看过 YouTube 视频,访问过其他语言的网站,但似乎都没有提供任何建议。
我已经从头开始删除了多个数据库,但我仍然面临我的信息没有发送到 000webhost 上的 phpMyAdmin 的问题。 我的虚拟主机没有 index.html 页面,但我认为这不是问题。
谢谢
任何帮助对我来说都意味着世界。谢谢祝你好运!
【问题讨论】:
-
mysqli_error($con)说了什么? -
不要存储纯文本密码,您会让您的数据库受到威胁。使用
password_hash()/password_verify()。 -
您在使用他们的 FREE 托管服务吗?你在看这些cmets和下面的答案吗?
-
在连接上也使用php的错误报告和错误处理。你会看到(不)发生了什么。
-
@FunkFortyNiner 我不认为 000webhost 提供错误报告/处理。是的,我正在使用免费托管服务。我认为这可能与我实际调用我的“Register.php”文件有关。我没有提供指向 php 文件的直接链接的索引页面,您认为这重要吗?
标签: php sql web-hosting