从PHP中的对象中提取字符串

詹姆斯·F

我敢肯定这是显而易见的,但是我是PHP的初学者。我只是想从对象中提取一些数据,将其存储在数组中,然后将该数组分配给$_SESSION[]数据是用户名和用户ID。

但是,目前无法正常工作。

其余代码工作正常。有值$user->id;$user->user;我似乎无法将它们粘成$s_id$s_user

User.php也可以正常工作,我只是将其包括在内以供参考。

login.php:

<?php // login.php
require_once("user.php");
error_reporting(E_ALL ^ E_NOTICE);
ini_set('display_errors','On');
session_start();

$_SESSION['userid'] = ''; // Force a logout
$r_userid = $_REQUEST['userid'];
$r_passwd = $_REQUEST['passwd'];
$result = array();
$result['success'] = false;
if (isset($r_userid) && ($r_userid != '') && isset($r_passwd) && ($r_passwd != '')) {
    $user = User::findOnIdPassword($r_userid, $r_passwd);
    if ($user) {
        $s_id = $user->id; 
        $s_user = $user->user;
        $_SESSION['userid'] = array($s_id, $s_user);
        $result['message'] = "Successful Login";
        $result['success'] = true;
    } else {
        $result['message'] = "Login Failed, please try again";
    }
} else {
    $result['message'] = "Missing User id and password";
}
print(json_encode($result));
?>

user.php:

<?php // user.php
require_once "sql.php";

Class User {
private $id;
private $user;
private $email;
private $password;

public function __construct($id, $user, $password, $email) {
    $this->id = $id;
    $this->user = $user;
    $this->password = $password;
    $this->email = $email;
}

public function insert() {
    $query = "insert into Users (username, password, email) values"
             . "('$this->user', '$this->password', '$this->email');";
    $result = Sql::query($query);
    return $result;
}

public function getId() {
    return $this->id;
}

public function getEmail() {
    return $this->email;
}

public static function findOnIdPassword($user, $passwd) {
    $query = "select * from Users where username = '$user' and password = '$passwd';";
    if ($result = Sql::query($query)) {
        if (mysqli_num_rows($result) != 1) {
            $result = null;
        } else {
            $row = mysqli_fetch_assoc($result);
            $id = $row['id'];
            $user = $row['username'];
            $password = $row['password'];
            $email = $row['email'];
            $result = new User($id, $user, $password, $email);
        }
    }
    return $result;
}

// findOnEmail(email)
// update(newEmail, newPassword)
// findAll for admin
}

?>

谢谢!

鲍里斯

您要访问的属性是私有的。但是对于$ id,有一种方法可以用来提取数据:

$s_id = $user->getId();

对于用户,您可以在用户类内的user.php中创建一个额外的get方法:

public function getUser(){
    return $this->user;
}

然后在login.php中使用它:

$s_user = $user->getUser();

但是特别是对于您的代码,我看不到通过User对象提取用户名的原因。我看到$ r_userid用作User :: findOnIdPassword($ user,$ passwd)方法的$ user参数的实际值,该方法在SQL“ WHERE username ='$ user'”子句中应用。然后再次从数据库中提取$ user作为用户名字段。因此,如果SQL查询成功,则$ r_userid和$ s_user中的值将相等。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在PHP中提取字符串

来自分类Dev

如何从PHP中的文件中提取字符串

来自分类Dev

在Javascript中提取字符串中的字符数组

来自分类Dev

从Java中的字符串中提取字符

来自分类Dev

从“ td”标签中的字符串中提取字符

来自分类Dev

从字符串中提取字符

来自分类Dev

如何在Swift中从观察对象中提取字符串值

来自分类Dev

如何在量角器中从 JSON 对象中提取字符串

来自分类Dev

从R中的字符串中提取字母

来自分类Dev

从Java中的Json字符串中提取字段

来自分类Dev

从Bigquery中的URL中提取字符串

来自分类Dev

从Shell脚本中的Substring中提取字符串

来自分类Dev

在 PHP 中从 SimpleXMLElement 中提取字符串时遇到问题

来自分类Dev

从字符串中提取字典

来自分类Dev

从路径中提取字符串

来自分类Dev

从变量中提取字符串

来自分类Dev

从数组中提取字符串

来自分类Dev

从字符串中提取字段

来自分类Dev

php从字符串中提取字符前后的子字符串

来自分类Dev

MVEL从字符串中提取字符串

来自分类Dev

如何从字符串中提取字符串

来自分类Dev

从字符串响应中提取字符串

来自分类Dev

Java 从字符串中提取字符串

来自分类Dev

需要使用PHP从主字符串中提取字符串

来自分类Dev

PHP /正则表达式:从字符串中提取字符串

来自分类Dev

PHP:从其他字符串中提取字符串

来自分类Dev

在PHP中提取字符串的子字符串的最有效方法

来自分类Dev

从linux中的文件中提取字符串下的字符串

来自分类Dev

在C编程中提取字符串和数字中的字符串