InvalidArgumentException: данный ключ $ находится в недопустимом состоянии. Может только искать записи, когда дан полный ключ. Указанный путь был [[user:]] - PullRequest
0 голосов
/ 31 марта 2020

Код не работает, когда я пытаюсь получить объекты, хранящиеся в имени. php. Выдает вышеуказанную ошибку.

имя. php

<?php
session_start();
echo "Welcome " . $_SESSION["username"] . "!    ";

    if(isset($_POST['but_change'])) { 

       if($_SESSION["pass"] == $_POST['oldpwd']) {

            $key= $datastore -> key('user', $_SESSION["id"]);
            $entity = $transaction -> lookup($key);
            echo $entity;
       }
        else echo 'User password is incorrect';
    }
   ?>

логин. php

$projectId = "s3764073-task2";
$datastore = new DatastoreClient([ 'projectId' => $projectId]);


      $key = $datastore->key('user', $_POST['uname']);
      $entity = $datastore->lookup($key);

      $_SESSION["id"]= $_POST['uname'];
      $_SESSION["username"] = $entity['name'];
      $_SESSION["pass"] = $entity['password'];

1 Ответ

0 голосов
/ 31 марта 2020

в соответствии с 'Получение объекта' , я думаю, что вам не хватает инициализации транзакции:

$transaction = $datastore->transaction();

Я думаю, добавление этого должно работать.

// - РЕДАКТИРОВАТЬ В соответствии с примером github , вы должны инициализировать клиент хранилища данных:

function initialize_client()
{
    $datastore = new DatastoreClient();
    return $datastore;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...