Нет такого файла, когда есть файл?

Я пытаюсь настроить систему аутентификации входа в Google с использованием PHP, который отправляет свои данные в базу данных MySQL. Я дошел до того, что сделал файлы и поместил их все в свой каталог C:\xampp\htdocs, но это то, что происходит, когда я открываю http://локальный/логин.php

Предупреждение: require_once(googleapi/vendor/autoload.php): не удалось открыть поток: нет такого файла или каталога в C:\xampp\htdocs\config.php в строке 3

Неустранимая ошибка: require_once(): не удалось открыть требуемый 'googleapi/vendor/autoload.php' (include_path='C:\xampp\php\PEAR') в C:\xampp\htdocs\config.php в строке 3.

Вот все мои коды

//login.php file
<?php
    require_once "config.php";
    if (isset($_SESSION['access_token'])) {
        header('Location: index.php');
        exit();
    }
    $loginURL = $gClient->createAuthUrl();
?>
<!doctype html>
<html lang = "en">
<head>
    <meta charset = "UTF-8">
    <meta name = "viewport"
          content = "width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0,">
          <meta http-equiv = "X-UA-Compatible" content = "ie=edge">
    <title>Login</title>
    <link rel = "stylesheet" href = "https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.3/css/bootstrap.min.css" integrity = "sha384-Zug+QiDoJOrZ5t4lssLdxGhVrurbmBWopoEl+M6BdEfwnCJZtKxi1KgxUyJq13dy" crossorigin = "anonymous">
</head>
<body>
<div class = "container" style = "margin-top: 100px">
    <div class = "row justify-content-center">
        <div class = "col-md-6 col-offset-2" align = "center">
        <form>
        <input type = "text" placeholder = "Email" name = "email" class = "form-control"><br>
        <input type = "password" placeholder = "Password" name = "password" class = "form-control"><br>
        <input type = "button" onclick = "window.location = '<?php echo $loginURL ?>';"  name = "google" value = "Login with Google" class = "btn btn-primary">
        <input type = "reset" name = "submit" value = "Clear" class = "btn btn-primary">
        </form> 
        </div>  
    </div>
</div>
</body>
</html>

//config.php file
<?php
    session_start();
    require_once "googleapi/vendor/autoload.php";
    $gClient = new Google_Client();
    $gClient->setClientId("<removed>");
    $gClient->setClientSecret("<removed>");
    $gClient->setApplicationName("capstoneproject");
    $gClient->setRedirectUri("http://localhost/login/g-callback.php");
    $gClient->addScope("https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/userinfo.email");    
    $con = new mysqli('localhost', 'root','' ,'table');
    if ($con->connect_error) {
    die("Connection failed: " . $con->connect_error);
}   
?>

//index.php file
<?php
    session_start();
    if (!isset($_SESSION['access_token'])) {
        header('Location: login.php');
        exit();
    }
?>
<!doctype html>
<html lang = "en">
<head>
    <meta charset = "UTF-8">
    <meta name = "viewport"
        content = "width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv = "X-UA-Compatible" content = "ie=edge">
    <title>Login With Google</title>
    <link rel = "stylesheet" href = "https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/css/bootstrap.min.css" integrity = "sha384-/Y6pD6FV/Vv2HJnA6t+vslU6fwYXjCFtcEpHbNJ0lyAFsXTsjBbfaDjzALeQsN6M" crossorigin = "anonymous">
</head>
<body>
<div class = "container" style = "margin-top: 100px">
    <div class = "row">
        <div class = "col-md-3">
            <img style = "width: 80%;" src = "<?php echo $_SESSION['picture'] ?>">
        </div>
        <div class = "col-md-9">
            <table class = "table table-hover table-bordered">
                <tbody>
                    <tr>
                        <td>ID</td>
                        <td><?php echo $_SESSION['id'] ?></td>
                    </tr>
                    <tr>
                        <td>First Name</td>
                        <td><?php echo $_SESSION['givenName'] ?></td>
                    </tr>
                    <tr>
                        <td>Last Name</td>
                        <td><?php echo $_SESSION['familyName'] ?></td>
                    </tr>
                    <tr>
                        <td>Email</td>
                        <td><?php echo $_SESSION['email'] ?></td>
                    </tr>
                    <tr>
                        <td>Gender</td>
                        <td><?php echo $_SESSION['gender'] ?></td>
                    </tr>
                    <tr>
                        <td>Logout</td>
                        <td><a href = "logout.php">Logout</a></td>
                    </tr>
                </tbody>
            </table>
        </div>
    </div>
</div>
</body>
</html>
//g-callback.php
<?php
    require_once "config.php";
    if (isset($_SESSION['access_token']))
        $gClient->setAccessToken($_SESSION['access_token']);
    else if (isset($_GET['code'])) {
        $token = $gClient->fetchAccessTokenWithAuthCode($_GET['code']);
        $_SESSION['access_token'] = $token;
    } else {
        header('Location: login.php');
        exit();
    }
    $oAuth = new Google_Service_Oauth2($gClient);
    $userData = $oAuth->userinfo_v2_me->get();
    $_SESSION['id'] = $userData['id'];
    $_SESSION['email'] = $userData['email'];
    $_SESSION['gender'] = $userData['gender'];
    $_SESSION['picture'] = $userData['picture'];
    $_SESSION['familyName'] = $userData['familyName'];
    $_SESSION['givenName'] = $userData['givenName'];
 $sql = "insert into google_users (clint_id,name,last_name,google_email,gender,picture_link) values
 ('".$userData['id']."','".$userData['givenName']."','".$userData['familyName']."','".$userData['email']."',
 '".$userData['gender']."','".$userData['picture']."')";
    mysqli_query($con,$sql);
    header('Location: index.php');
    exit();
?>

Вы уверены, что login.php находится на том же уровне папки, что и папка googleapi?

user1334621 29.03.2019 03:54

Ваш include_path не включает . (текущий рабочий каталог). Добавляйте к путям префикс __DIR__, например require_once __DIR__ . '/googleapi/vendor/autoload.php';. При этом require_once "config.php" также должен потерпеть неудачу, но, похоже, это не так.

Phil 29.03.2019 03:56

Я сделал это со всеми своими файлами и теперь получаю эту ошибку: Предупреждение: require_once (C:\xampp\htdocsconfig.php): не удалось открыть поток: нет такого файла или каталога в C:\xampp\htdocs\login.php в строке 2 Неустранимая ошибка: require_once(): Не удалось открыть требуемый «C:\xampp\htdocsconfig.php» (include_path='C:\xampp\php\PEAR') в C:\xampp\htdocs\login.php в строке 2

Mike 29.03.2019 14:03
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
3
19
0

Другие вопросы по теме