gpt4 book ai didi

php - json_编码 : values showing null

转载 作者:行者123 更新时间:2023-11-29 13:45:37 26 4
gpt4 key购买 nike

<?php
require_once (realpath(dirname(__FILE__) . '/../includes/database.php'));

class User {
public $email;
public $password;

public function find_email($email, $password) {
global $database;
$pswd = substr(md5($password), 0, 25);
$results_array = self::find_by_sql("SELECT * FROM tbl_users where email_id='".$email."' AND password='".$pswd."'");
return !empty($results_array)? array_shift($results_array) : false;
}

public static function find_by_sql($sql){
global $database;
$results = $database -> query($sql);
$object_array = array();
while($row = $database -> fetch_array($results)){
$object_array[] = self::instantiate($row);
}
return $object_array;
}

public static function instantiate($row) {
$event = new self;
foreach($row as $attribute => $value) {
if($event -> has_attribute($attribute)) {
$event -> $attribute = $value;
}
}
return $event;
}
private function has_attribute($attribute) {
$object_vars = get_object_vars($this);
return array_key_exists($attribute, $object_vars);
}
}

if (isset($_GET['email']) && isset($_GET['password'])) {
$result = new User();
$result->find_email($_GET['email'], $_GET['password']);
echo json_encode($result);
}
?>

这是 login.php,它应该为所需的用户打印出 json,但是每当我尝试获取 json 时,都会返回它。

{"email":null,"password":null}

如有任何帮助,我们将不胜感激。谢谢。

最佳答案

您不对 find_email 的结果执行任何操作。当调用 find_email 时,您的类不会更新它自己的属性。相反,它返回一个新的类实例,其中设置了 emailpassword 属性,因此您需要捕获返回值并对其进行编码。

更改为:

$result = new User();
$user = $result->find_email($_GET['email'], $_GET['password']);
echo json_encode($user);
<小时/>

旁注:看看 SOLIDDependency Injection 。 DI 优于拥有全局 $Database

关于php - json_编码 : values showing null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17464610/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com