Ich habe versucht, diese tutorial zu folgen, um eine einfache Anmeldung und Registrierung für Android-Anwendung mit MySql. Die Android App läuft solange einwandfrei, bis beim Zugriff auf die Datenbank ein Fehler auftritt (Account-Register).Php-Klasse innerhalb enthalten Datei nicht gefunden
Als ich versuchte, die PHP-Anwendung zuzugreifen, um sicherzustellen, dass der Fehler in dem Android-App ist, habe ich diesen Fehler:
Fatal error: Class 'DbConnect' not found in C:\xampp\htdocs\AndroidLogin\include\user.php on line 12
Ich bin sicher, dass db.php
bereits in user.php
enthalten ist. Dies sind die Codes ich aus dem Tutorial verwendet: Die erste ist index.php
//index.php
<?php
require_once 'include/user.php';
$username = "";
$password = "";
$email = "";
if(isset($_POST['username'])){
$username = $_POST['username'];
}
if(isset($_POST['password'])){
$password = $_POST['password'];
}
if(isset($_POST['email'])){
$email = $_POST['email'];
}
// Instance of a User class
$userObject = new User();
// Registration of new user
if(!empty($username) && !empty($password) && !empty($email)){
$hashed_password = md5($password);
$json_registration = $userObject->createNewRegisterUser($username, $hashed_password, $email);
echo json_encode($json_registration);
}
// User Login
if(!empty($username) && !empty($password) && empty($email)){
$hashed_password = md5($password);
$json_array = $userObject->loginUsers($username, $hashed_password);
echo json_encode($json_array);
}
?>
Als nächstes config.php
//config.php
<?php
define("DB_HOST", "localhost");
define("DB_USER", "root");
define("DB_PASSWORD", "");
define("DB_NAME", "androidlogin");
?>
Dieser ist db.php
// db.php
<?php
include_once 'config.php';
class DbConnect{
private $connect;
public function __construct(){
$this->connect = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
if (mysqli_connect_errno($this->connect)){
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
}
public function getDb(){
return $this->connect;
}
}
?>
Und die letzte ist user.php
// user.php
<?php
include_once 'db.php';
class User{
private $db;
private $db_table = "users";
public function __construct(){
$this->db = new DbConnect();
}
public function isLoginExist($username, $password){
$query = "select * from " . $this->db_table . " where username = '$username' AND password = '$password' Limit 1";
$result = mysqli_query($this->db->getDb(), $query);
if(mysqli_num_rows($result) > 0){
mysqli_close($this->db->getDb());
return true;
}
mysqli_close($this->db->getDb());
return false;
}
public function createNewRegisterUser($username, $password, $email){
$query = "insert into users (username, password, email, created_at, updated_at) values ('$username', '$password', '$email', NOW(), NOW())";
$inserted = mysqli_query($this->db->getDb(), $query);
if($inserted == 1){
$json['success'] = 1;
}else{
$json['success'] = 0;
}
mysqli_close($this->db->getDb());
return $json;
}
public function loginUsers($username, $password){
$json = array();
$canUserLogin = $this->isLoginExist($username, $password);
if($canUserLogin){
$json['success'] = 1;
}else{
$json['success'] = 0;
}
return $json;
}
}
?>
sieht Meine Auswahl dieses wie:
AndroidLogin
|index.php
|include
|config.php
|db.php
|user.php
Habe ich etwas verpasst?
umbenennen Sie folgen die falsche Anleitung, die nicht Passwörter in der Clar speichern und eine wird Ihre Website zu SQL-Injektionen – e4c5
jemand anderes haben das gleiche Problem wie du. Der Autor schreibt "Stellen Sie sicher, dass Sie diese Datei auf Ihren lokalen oder Remote-Server kopiert haben." Vielleicht könnte das dein Problem sein. – Michael
Nur ein Vorschlag: normalerweise, rufen Sie die Datei wie die Klasse, die Sie darin deklarieren. In WAMP gibt es normalerweise einige Probleme, ich empfehle Ihnen, db.php in DbConnect.php umzubenennen – MikeKeepsOnShine