在QNap(NAS)上使用php连接到phpmyadmin

时间:2018-10-19 07:26:51

标签: php database connection nas qnap

我制作了一个包含登录名的网站,然后您才能实际使用其中的功能。当我使用本地主机在PC上对其进行测试时,它工作正常。然后,我在QNap(基本上是NAS)上创建了一个平台,然后用NAS的IP替换了本地主机,并在phpmyadmin中创建了一个数据库。整个wesite都可以正常工作,但是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和端口,则可以在本地计算机上使用它。 (是的,数据库名称和数据库表在我的PC和NAS上都相同)

1 个答案:

答案 0 :(得分:0)

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

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

尝试从本地localhost授予权限:

map::extract

记住以后要重新启动mysql服务