【问题标题】:Connecting to phpmyadmin using php on a QNap (NAS)在 QNap (NAS) 上使用 php 连接到 phpmyadmin
【发布时间】:2019-03-24 01:33:49
【问题描述】:

在您实际使用其中的功能之前,我创建了一个包含登录信息的网站。当我使用本地主机在我的电脑上测试它时,它工作得很好。然后我在 QNap 上创建了一个平台(它基本上是一个 NAS),然后我用 NAS 的 IP 替换了 localhost,我还在 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”的表。这段代码有什么问题?如果我只用“localhost”替换 IP 和端口,我可以在本地机器上使用它。 (是的,我的电脑和我的 NAS 上的数据库名称和数据库表是相同的)

【问题讨论】:

    标签: php database connection nas qnap


    【解决方案1】:

    QNap 上的 mysql 服务器可能无法在 localhost 之外访问,这是一个常见的安全功能,只有在认真考虑后才应禁用。

    您应该使用 ssh 隧道从远程连接本地主机,或者至少使用防火墙并过滤入站端口和 ips

    尝试从本地主机外部授予权限:

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

    之后记得重启mysql服务

    【讨论】:

    • 即使 QNap 和我的电脑(以及其他一些电脑)都连接在同一个 LAN 上?
    • 是的,mysql 可能只接受来自 127.0.0.1 的连接,您的 LAN 客户端可能是从 192.168.1.x 之类的 ip 连接
    • 是的,就是这样。感恩千里!
    • 图!但是,请在远程打开 mysql 时保护连接和服务器本身
    • 向系统工程师询问即可!再次感谢
    猜你喜欢
    • 1970-01-01
    • 2014-05-03
    • 2017-02-27
    • 2021-07-14
    • 2019-12-23
    • 2017-06-21
    • 2012-12-09
    • 2012-09-29
    • 2014-11-11
    相关资源
    最近更新 更多