加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 类的对象..无法转换为字符串

发布时间:2020-12-13 13:34:53 所属栏目:PHP教程 来源:网络整理
导读:我完成了我的第一堂课,但我无法将对象转换回字符串. class Cryption{ var $data; var $salt;function __construct($data,$salt){ $this-data = $data; $this-salt = $salt;}function sha512(){ $sodium = 'Na'; return hash_hmac("sha512",$this-data . $thi
我完成了我的第一堂课,但我无法将对象转换回字符串.
class Cryption
{
    var $data;
    var $salt;

function __construct($data,$salt)
{
    $this->data = $data;
    $this->salt = $salt;
}

function sha512()
{
    $sodium = 'Na';
    return hash_hmac("sha512",$this->data . $this->salt,$sodium);
}

function encrypt()
{
    $salt = substr(sha512(($this->key),'brownies'),30);
    return base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256,$salt,$this->data,MCRYPT_MODE_CBC,md5($salt)));
}

当我使用它时:

$password = new Cryption(mysql_real_escape_string(trim($_POST['password'])),'pepper');
$password->sha512();

它说’PHP Catchable致命错误:类Cryption的对象无法转换为字符串’

我真的不知道怎么把它重新变成一个字符串.愿有人请帮帮我吗?

谢谢.

编辑:

<?php
require("config.php");
include("includes/cryption/cryption.php");

$username = mysql_real_escape_string(trim($_POST['username']));
$password = new Cryption(mysql_real_escape_string(trim($_POST['password'])),'pepper'); //use a different salt next time such as a special salt for each user
$password->sha512();

$result = mysql_query("SELECT * FROM `administrators` WHERE username='$username' and password='$password'");
$row = mysql_fetch_row($result);
$count = mysql_num_rows($result);

if ($count == 1) {
    if (isset($_POST['remember'])) {
        session_start();
        $_SESSION['user'] = array(
            'id' => $row[0],'username' => $row[1],'password' => $row[2]
        );
        $userid = new Cryption($_SESSION['user']['id'],'kkfishing');
        $session = new Cryption($_SESSION['user']['username'],'kkfishing');
        $validated = new Cryption($_SESSION['user']['password'],'kkfishing');

        setcookie("uniqueid",$userid->encrypt(),time() + 60 * 60 * 24 * 100,"/"); //100 days
        setcookie("kksessionid",$session->encrypt(),"/");
        setcookie("kkuserid",$validated->encrypt(),"/");//disguised cookie name
    }
    session_start();
    $_SESSION['authenticated'] = $row[0];
    echo '1'; //true
    exit;
}
else
{
    echo '0'; //false
    exit;
}
?>
看看这一行:
$password->sha512();

$result = mysql_query("SELECT * FROM `administrators` WHERE username='$username' and password='$password'");

$password是一个对象.它应该是:

$pw = $password->sha512();

$result = mysql_query("SELECT * FROM `administrators` WHERE username='$username' and password='$pw'");

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读