PROBLEMA CON SESSIONI

thanatos

Utente Attivo
29 Gen 2021
38
0
6
Roma
Sto creando una pagina con delle sessioni php. L'idea è semplice: se non esiste una sessione stampo un codice html con un form di login che punta a uno script php per la creazione della sessione e reindirizza alla root, se la sessione esiste mostra la pagina vera e propria. Questo è quello che ho scritto:

index.php
PHP:
<?php
    if (isset($_SESSION['ip'])) {
      
        echo('
            <!DOCTYPE html>
            <html lang="it">
            <head>
                <meta charset="UTF-8">
                <meta http-equiv="X-UA-Compatible" content="IE=edge">
                <title>NOME SITO</title>
                <link rel="stylesheet" href="style.css"/>
            </head>
            <body>
                <div class="header">
                    <div class="nome item"><img class="logo" src="" alt=""></div>
                </div>
                <div class="corpo">
                    <div class="provaPost">
                        <p class="user">User 1</p>
                        <p class="post">Lorem ipsum dolor sit amet consectetur adipisicing elit. Quas adipisci ratione, similique illum aspernatur architecto recusandae voluptatibus. Cupiditate soluta cum ut, praesentium sint, quo, incidunt cumque molestias velit sed molestiae?</p>
                        <p class="segnala"><a href="">SEGNALA</a></p>
                    </div>
                    <div class="provaPost">
                        <p class="user">User 1</p>
                        <p class="post">Lorem ipsum dolor sit amet consectetur adipisicing elit. Quas adipisci ratione, similique illum aspernatur architecto recusandae voluptatibus. Cupiditate soluta cum ut, praesentium sint, quo, incidunt cumque molestias velit sed molestiae?</p>
                    </div>
                    <div class="provaPost">
                        <p class="user">User 1</p>
                        <p class="post">Lorem ipsum dolor sit amet consectetur adipisicing elit. Quas adipisci ratione, similique illum aspernatur architecto recusandae voluptatibus. Cupiditate soluta cum ut, praesentium sint, quo, incidunt cumque molestias velit sed molestiae?</p>
                    </div>
                    <div class="provaPost">
                        <p class="user">User 1</p>
                        <p class="post">Lorem ipsum dolor sit amet consectetur adipisicing elit. Quas adipisci ratione, similique illum aspernatur architecto recusandae voluptatibus. Cupiditate soluta cum ut, praesentium sint, quo, incidunt cumque molestias velit sed molestiae?</p>
                    </div>
                    <div class="provaPost">
                        <p class="user">User 1</p>
                        <p class="post">Lorem ipsum dolor sit amet consectetur adipisicing elit. Quas adipisci ratione, similique illum aspernatur architecto recusandae voluptatibus. Cupiditate soluta cum ut, praesentium sint, quo, incidunt cumque molestias velit sed molestiae?</p>
                    </div>
                    <div class="provaPost">
                        <p class="user">User 1</p>
                        <p class="post">Lorem ipsum dolor sit amet consectetur adipisicing elit. Quas adipisci ratione, similique illum aspernatur architecto recusandae voluptatibus. Cupiditate soluta cum ut, praesentium sint, quo, incidunt cumque molestias velit sed molestiae?</p>
                    </div>
                    <div class="provaPost">
                        <p class="user">User 1</p>
                        <p class="post">Lorem ipsum dolor sit amet consectetur adipisicing elit. Quas adipisci ratione, similique illum aspernatur architecto recusandae voluptatibus. Cupiditate soluta cum ut, praesentium sint, quo, incidunt cumque molestias velit sed molestiae?</p>
                    </div>
                </div>
                <div class="cc">
                    <br>
                    <center>
                        <a rel="license" href="http://creativecommons.org/licenses/by-nc-nd/4.0/">
                            <img alt="Licenza Creative Commons" style="border-width:0" src="https://i.creativecommons.org/l/by-nc-nd/4.0/88x31.png" />
                        </a>
                    </center>
                    <center>
                        <span xmlns:dct="http://purl.org/dc/terms/" property="dct:title">NOME SITO </span>di<a xmlns:cc="http://creativecommons.org/ns#" href="" property="cc:attributionName" rel="cc:attributionURL"> NOME SITO</a> è distribuito con Licenza <a rel="license" href="http://creativecommons.org/licenses/by-nc-nd/4.0/">Creative Commons Attribuzione - Non commerciale - Non opere derivate 4.0 Internazionale</a>.
                    </center>
                </div>
                <footer class="footer">
                    <div class="home"><button class="button" onclick="homeRedirect()"><img class="buttonHomeImg" src="https://i.ibb.co/0jKBpJB/noun-House-210819.png" alt=""></button></div>
                    <div class="search"><button class="button" onclick="searchRedirect()"><img class="buttonSearchImg" src="https://i.ibb.co/xgYgYKZ/noun-Magnifying-Glass-210896.png" alt=""></button></div>
                    <div class="add"><button class="button" onclick="addPostRedirect()"><img class="buttonAddImg" src="https://i.ibb.co/JjHB1nk/noun-add-2191689.png" alt=""></button></div>
                    <div class="profilo"><button class="button" onclick="profileRedirect()"><img class="buttonProfiloImg" src="https://i.ibb.co/q9Wbrwp/noun-User-210839.png" alt=""></button></div>
                    <div class="settings"><button class="button" onclick="settingsRedirect()"><img class="buttonSettingsImg" src="https://i.ibb.co/YR1CYpP/noun-cog-210910.png" alt=""></button></div>
                </footer>
            </body>

            <script src="script.js"></script>
            </html>
        ');
    } else {
        echo('
            <!DOCTYPE html>
            <html lang="it">
            <head>
                <meta charset="UTF-8">
                <meta http-equiv="X-UA-Compatible" content="IE=edge">
                <title>NOME SITO</title>
                <link rel="stylesheet" href="style.css"/>
            </head>
            <body>
                <div class="sfondo">
                <center>
                    <h1 class="avvicinaTitolo">NOME SITO</h1>
                    <h4 class="avvicinaSottotitolo">TESTO</h4>
                </center>
                <div class="principal">
                    <h2 class="scrittaLogin">LOG-IN</h2>
                    <div class="login">
                        <form class="formContainer" action="login.php" method="post">
                            <center>
                                <input class="input" type="text" name="user" id="user" placeholder="Username">
                            </center>
                            <center>
                                <input class="input" type="password" name="pass" id="pass" placeholder="Password" required>
                            </center>
                            <center>
                                <input class="button" type="submit" value="LOG-IN" id="buttonLog">
                            </center>
                        </form>
                    </div>
                    <h2 class="scrittaRegistrati">REGISTRATI</h2>
                    <div class="register">
                        <form class="formContainerReg" action="register.php" method="post">
                            <center>
                                <input class="input" type="email" name="email" id="email" placeholder="E-mail">
                            </center>
                            <center>
                                <input class="button" type="submit" value="REGISTRATI" id="buttonReg">
                            </center>
                        </form>
                    </div>
                </div>
            </div>
            </body>
            </html>
        ');
    }
?>

login.php
PHP:
<?php
session_start();

$databaseHost = 'localhost';
$databaseUser = '';

$database = mysqli_connect($databaseHost, $databaseUser, "", "");

$ip = $_SERVER['REMOTE_ADDR'];
$data = date('r');
$username = $_POST['user'];
$passwordForm = $_POST['pass'];

$queryPassword = "SELECT `password` FROM `utenti` WHERE `username` = \"$username\"";
$queryUtenti = 'SELECT `username` FROM `utenti` WHERE 1';

$password = mysqli_query($database, $queryPassword);
$utenti = mysqli_query($database, $queryUtenti);

while ($rowPassword = mysqli_fetch_array($password)) {
    $elencoPassword = $rowPassword["password"];
}

while ($rowUtenti = mysqli_fetch_array($utenti)) {
    $elencoUtenti = $rowUtenti["username"];
}

if ($passwordForm == $elencoPassword) {
    $_SESSION['ip'] = $ip;
    $_SESSION['data'] = $data;
    $_SESSION['user'] = $username;
    $_SESSION['password'] = $passwordForm;
    #echo($_SESSION['ip'] . " " . $_SESSION['user'] . " " . $_SESSION['password']);
    header("location: /");
} else {
    echo('
        <div class="header">
            <div class="nome item"  style="text-align: center;"><img class="logo" style="height: 45px; width: auto;" src="" alt=""></div>
        </div>
        <br>
        <center>
            <h3>PASSWORD ERRATA</h3>
        </center>
    ');
}

?>

Il problema è che nonostante la variabile di sessione venga configurata e gli venga assegnato un valore, la pagina index.php mi restituisce sempre il codice contenuto nell'else
 
Sto creando una pagina con delle sessioni php. L'idea è semplice: se non esiste una sessione stampo un codice html con un form di login che punta a uno script php per la creazione della sessione e reindirizza alla root, se la sessione esiste mostra la pagina vera e propria. Questo è quello che ho scritto:

index.php
PHP:
<?php
    if (isset($_SESSION['ip'])) {
     
        echo('
            <!DOCTYPE html>
            <html lang="it">
            <head>
                <meta charset="UTF-8">
                <meta http-equiv="X-UA-Compatible" content="IE=edge">
                <title>NOME SITO</title>
                <link rel="stylesheet" href="style.css"/>
            </head>
            <body>
                <div class="header">
                    <div class="nome item"><img class="logo" src="" alt=""></div>
                </div>
                <div class="corpo">
                    <div class="provaPost">
                        <p class="user">User 1</p>
                        <p class="post">Lorem ipsum dolor sit amet consectetur adipisicing elit. Quas adipisci ratione, similique illum aspernatur architecto recusandae voluptatibus. Cupiditate soluta cum ut, praesentium sint, quo, incidunt cumque molestias velit sed molestiae?</p>
                        <p class="segnala"><a href="">SEGNALA</a></p>
                    </div>
                    <div class="provaPost">
                        <p class="user">User 1</p>
                        <p class="post">Lorem ipsum dolor sit amet consectetur adipisicing elit. Quas adipisci ratione, similique illum aspernatur architecto recusandae voluptatibus. Cupiditate soluta cum ut, praesentium sint, quo, incidunt cumque molestias velit sed molestiae?</p>
                    </div>
                    <div class="provaPost">
                        <p class="user">User 1</p>
                        <p class="post">Lorem ipsum dolor sit amet consectetur adipisicing elit. Quas adipisci ratione, similique illum aspernatur architecto recusandae voluptatibus. Cupiditate soluta cum ut, praesentium sint, quo, incidunt cumque molestias velit sed molestiae?</p>
                    </div>
                    <div class="provaPost">
                        <p class="user">User 1</p>
                        <p class="post">Lorem ipsum dolor sit amet consectetur adipisicing elit. Quas adipisci ratione, similique illum aspernatur architecto recusandae voluptatibus. Cupiditate soluta cum ut, praesentium sint, quo, incidunt cumque molestias velit sed molestiae?</p>
                    </div>
                    <div class="provaPost">
                        <p class="user">User 1</p>
                        <p class="post">Lorem ipsum dolor sit amet consectetur adipisicing elit. Quas adipisci ratione, similique illum aspernatur architecto recusandae voluptatibus. Cupiditate soluta cum ut, praesentium sint, quo, incidunt cumque molestias velit sed molestiae?</p>
                    </div>
                    <div class="provaPost">
                        <p class="user">User 1</p>
                        <p class="post">Lorem ipsum dolor sit amet consectetur adipisicing elit. Quas adipisci ratione, similique illum aspernatur architecto recusandae voluptatibus. Cupiditate soluta cum ut, praesentium sint, quo, incidunt cumque molestias velit sed molestiae?</p>
                    </div>
                    <div class="provaPost">
                        <p class="user">User 1</p>
                        <p class="post">Lorem ipsum dolor sit amet consectetur adipisicing elit. Quas adipisci ratione, similique illum aspernatur architecto recusandae voluptatibus. Cupiditate soluta cum ut, praesentium sint, quo, incidunt cumque molestias velit sed molestiae?</p>
                    </div>
                </div>
                <div class="cc">
                    <br>
                    <center>
                        <a rel="license" href="http://creativecommons.org/licenses/by-nc-nd/4.0/">
                            <img alt="Licenza Creative Commons" style="border-width:0" src="https://i.creativecommons.org/l/by-nc-nd/4.0/88x31.png" />
                        </a>
                    </center>
                    <center>
                        <span xmlns:dct="http://purl.org/dc/terms/" property="dct:title">NOME SITO </span>di<a xmlns:cc="http://creativecommons.org/ns#" href="" property="cc:attributionName" rel="cc:attributionURL"> NOME SITO</a> è distribuito con Licenza <a rel="license" href="http://creativecommons.org/licenses/by-nc-nd/4.0/">Creative Commons Attribuzione - Non commerciale - Non opere derivate 4.0 Internazionale</a>.
                    </center>
                </div>
                <footer class="footer">
                    <div class="home"><button class="button" onclick="homeRedirect()"><img class="buttonHomeImg" src="https://i.ibb.co/0jKBpJB/noun-House-210819.png" alt=""></button></div>
                    <div class="search"><button class="button" onclick="searchRedirect()"><img class="buttonSearchImg" src="https://i.ibb.co/xgYgYKZ/noun-Magnifying-Glass-210896.png" alt=""></button></div>
                    <div class="add"><button class="button" onclick="addPostRedirect()"><img class="buttonAddImg" src="https://i.ibb.co/JjHB1nk/noun-add-2191689.png" alt=""></button></div>
                    <div class="profilo"><button class="button" onclick="profileRedirect()"><img class="buttonProfiloImg" src="https://i.ibb.co/q9Wbrwp/noun-User-210839.png" alt=""></button></div>
                    <div class="settings"><button class="button" onclick="settingsRedirect()"><img class="buttonSettingsImg" src="https://i.ibb.co/YR1CYpP/noun-cog-210910.png" alt=""></button></div>
                </footer>
            </body>

            <script src="script.js"></script>
            </html>
        ');
    } else {
        echo('
            <!DOCTYPE html>
            <html lang="it">
            <head>
                <meta charset="UTF-8">
                <meta http-equiv="X-UA-Compatible" content="IE=edge">
                <title>NOME SITO</title>
                <link rel="stylesheet" href="style.css"/>
            </head>
            <body>
                <div class="sfondo">
                <center>
                    <h1 class="avvicinaTitolo">NOME SITO</h1>
                    <h4 class="avvicinaSottotitolo">TESTO</h4>
                </center>
                <div class="principal">
                    <h2 class="scrittaLogin">LOG-IN</h2>
                    <div class="login">
                        <form class="formContainer" action="login.php" method="post">
                            <center>
                                <input class="input" type="text" name="user" id="user" placeholder="Username">
                            </center>
                            <center>
                                <input class="input" type="password" name="pass" id="pass" placeholder="Password" required>
                            </center>
                            <center>
                                <input class="button" type="submit" value="LOG-IN" id="buttonLog">
                            </center>
                        </form>
                    </div>
                    <h2 class="scrittaRegistrati">REGISTRATI</h2>
                    <div class="register">
                        <form class="formContainerReg" action="register.php" method="post">
                            <center>
                                <input class="input" type="email" name="email" id="email" placeholder="E-mail">
                            </center>
                            <center>
                                <input class="button" type="submit" value="REGISTRATI" id="buttonReg">
                            </center>
                        </form>
                    </div>
                </div>
            </div>
            </body>
            </html>
        ');
    }
?>

login.php
PHP:
<?php
session_start();

$databaseHost = 'localhost';
$databaseUser = '';

$database = mysqli_connect($databaseHost, $databaseUser, "", "");

$ip = $_SERVER['REMOTE_ADDR'];
$data = date('r');
$username = $_POST['user'];
$passwordForm = $_POST['pass'];

$queryPassword = "SELECT `password` FROM `utenti` WHERE `username` = \"$username\"";
$queryUtenti = 'SELECT `username` FROM `utenti` WHERE 1';

$password = mysqli_query($database, $queryPassword);
$utenti = mysqli_query($database, $queryUtenti);

while ($rowPassword = mysqli_fetch_array($password)) {
    $elencoPassword = $rowPassword["password"];
}

while ($rowUtenti = mysqli_fetch_array($utenti)) {
    $elencoUtenti = $rowUtenti["username"];
}

if ($passwordForm == $elencoPassword) {
    $_SESSION['ip'] = $ip;
    $_SESSION['data'] = $data;
    $_SESSION['user'] = $username;
    $_SESSION['password'] = $passwordForm;
    #echo($_SESSION['ip'] . " " . $_SESSION['user'] . " " . $_SESSION['password']);
    header("location: /");
} else {
    echo('
        <div class="header">
            <div class="nome item"  style="text-align: center;"><img class="logo" style="height: 45px; width: auto;" src="" alt=""></div>
        </div>
        <br>
        <center>
            <h3>PASSWORD ERRATA</h3>
        </center>
    ');
}

?>

Il problema è che nonostante la variabile di sessione venga configurata e gli venga assegnato un valore, la pagina index.php mi restituisce sempre il codice contenuto nell'else
cosa posso fare?
 

Discussioni simili