Подключение к phpmyadmin с помощью php на QNap (NAS) - PullRequest
0 голосов
/ 19 октября 2018

Я создал веб-сайт с логином, прежде чем вы сможете использовать его функции.Когда я тестирую его на своем компьютере с помощью локального хоста, он работает просто отлично.Затем я создал платформу на QNap (в основном это NAS), а затем заменил localhost на IP-адрес NAS, где я также создал базу данных в phpmyadmin.Весь сайт работает просто отлично, но страница login.php не будет работать, потому что соединение получает ошибку тайм-аута.Вот код для страницы login.php, что не так?

<?php
//Start della sessione per tenere traccia dell'utente
session_start();

//Valori per connettersi al database
$host = "IP:Port";
$user = "root";
$password = "admin";
$db = "segnalazioni";

//Creazione connessione mysqli al database
$conn = mysqli_connect($host, $user, $password, $db);


//Errore che viene visualizzato in caso di login errato
$errore = "Tentativo di accesso non valido";

//Variabile visualizzata in caso l'username non e' specificato
$errorNoUsername = "Inserire i dati per loggare";

//Controllare se l'utente ha inserito l'username
if(isset($_POST['username'])){
    //Se lo hanno fatto ecco le variabile per username e password
    $userUsername = $_POST['username'];
    $userPassword = $_POST['password'];

    //Verifica se i dati esistono nel database
    $sql = "SELECT * FROM utenti WHERE username='".$userUsername."' AND Password = '".$userPassword."'";

    //Eseguire la query all'interno del database
    $result = mysqli_query($conn, $sql);

    //Controllare il risultato
    if(mysqli_num_rows($result)==1){
        //Sessione aperta con il nome utente
        $_SESSION['username'] = $userUsername;

        //Redirect nella location index.php
        header("location:main.php");
    } else {
        //Messaggio di errore
        echo $errore;
    }
} else {
    //Messaggio di errore in caso il username non e' specificato
    echo $errorNoUsername;
}
?>

Внутри моей базы данных "segnalazioni" есть таблица с именем "utenti", когда хранятся пользователи (имя пользователя и пароль).Что не так с этим кодом?Если я заменю IP-адрес и порт просто «localhost», я смогу использовать его на своей локальной машине.(Да, имя базы данных и таблица базы данных одинаковы на моем компьютере и на моем NAS)

1 Ответ

0 голосов
/ 19 октября 2018

Сервер mysql в QNap может быть недоступен за пределами localhost, это общая функция безопасности, которая должна быть отключена только после некоторого серьезного рассмотрения.

Вы должны использовать ssh-туннелирование для подключения к локальному хосту с удаленного компьютера или, по крайней мере, использовать брандмауэр и фильтр входящего порта и ips

Попробуйте предоставить разрешения извне localhost:

mysql > GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'1.2.3.4' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;

Не забудьте перезапустить службу MySQL после этого

...