[PHP] problemi con le sessioni

smartwork

Utente Attivo
15 Apr 2018
36
0
6
PHP:
/*INDEX.PHP*/
<!DOCTYPE html>
<html>
    <head>
        <title>index.php</title>
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta charset="utf-8">
         <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjs/3.14.1/math.min.js"></script>
        <link href="config.css" type="text/css" rel="stylesheet">
    </head>

    <body>

        <div id="form-riconoscimento">
            <h4>modulo di riconoscimento</h4>
            <button onclick="generaUsername()">genera username</button>
                <table>
                    <form method="post" action="server.php">

                        <tr>
                            <td><input type="text" name="username" id="username" required></td>
                        </tr>  
                        <tr>  
                            <td><input type="password" name="password" placeholder="password"></td>
                        </tr>
                        <tr>
                            <td><input type="radio" name="opzioneUtente" value="registrareUtente">registrasi</td></tr>
                        <tr>
                            <td><input type="radio" name="opzioneUtente" value="loggareUtente" checked>accedere</td>
                        </tr>
                        <tr>
                            <td><input type="submit" value="invio"></td></tr>
                    </form>
                </table>
        </div>
        <script type="text/javascript">

            function generaUsername(){
                        codiceAlfa = "HAvc13nmsdw";
            caratteri = codiceAlfa.split(""); //return array
            codici = [];
                  for(i=0; i<=caratteri.length; i++){
                      codici.push(caratteri[math.randomInt(caratteri.length)]) ;
                  }
                codice = codici.join(""); //return string
                document.getElementById("username").value=codice;
            }
         
         
                username = document.getElementById("username");
         
                if(navigator.userAgent == "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36")
                {username.setAttribute("value", "crom");
                }
                else if(navigator.userAgent == "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:62.0) Gecko/20100101 Firefox/62.0")
                {username.setAttribute("value", "firefox");  }  
           
 
        </script>

</body>
</html>
Codice PHP:
<?php
/*SERVER.PHP*/
session_start();
$conex = mysql_connect('localhost', 'root');
mysql_select_db("my_laboraccio", $conex);

/*variabili di index.php*/
$uname = $_POST['username'];
$pw =  $_POST['password'];
$opzioneUtente = $_POST['opzioneUtente'];

/*variabili di profilo.php */
echo $_GET['sms'];




if($_POST['sessione'] == "logout") {
    session_unset();
    session_destroy();
    header("Refresh:10; url=http://www.laboraccio.altervista.org/");
    echo "sessione scaduta";
}
    function registraUtente(){
        global $uname;
        echo $uname;
        global $pw;
        $sql = "SELECT * FROM utenti WHERE username='$uname'";
        $resource = mysql_query($sql) or die (mysql_error());
        $result = mysql_num_rows($resource);
        echo $result;
        if($result == 0) {
            $sql = "INSERT INTO utenti (id, username, password) VALUES (NULL, '$uname', '$pw')";
            mysql_query($sql);
            header("Refresh:10; url=http://www.laboraccio.altervista.org/");
              echo "nuovo utente creato";
 
            echo "registrazione completata";
        }
        elseif($result == 1){
            echo "username gia in uso, riprova con un altro";
              header("Refresh:10; url=http://www.laboraccio.altervista.org/");
           }
    }
 
        function loggareUtente(){
        global $uname;
        global $pw;
        $sql = "SELECT * FROM utenti WHERE username='$uname' AND password='$pw'";
        $resource = mysql_query($sql) or die (mysql_error());
        $result = mysql_num_rows($resource);
        if($result == 1) {
            $_SESSION['username'] = $uname;
            $_SESSION['password'] = $pw;
            echo "benvenuto alla tua area personale".$uname;
            header("location:http://www.laboraccio.altervista.org/profilo.php");

     
        }
        elseif($result == 0) {print "utente non valido";
        header("Refresh:10; url=http://www.laboraccio.altervista.org/");
        }

 
    }


if($opzioneUtente == 'registrareUtente'){
    registraUtente();
}
elseif($opzioneUtente == "loggareUtente") {
    loggareUtente();
}

?>

Codice PHP:
PHP:
<?php

/*PROFILO.PHP*/
session_start();

if(!isset($_SESSION['username'])) {
    header("location: http://laboraccio.altervista.org/");
}

if(isset($_SESSION['username'])){
echo $_SESSION['username'];
}
?>

Ogni volta che faccio login mi rimanda sempre al index
 
Ultima modifica di un moderatore:
@smartwork
Da regolamento del forum, come tutti noi sei tenuto ad usare il tag
php.png
quando posti del codice PHP e il tag
code.gif
per il codice generico, oppure la funzione codice dalla barra degli strumenti
box inserisci 2.png.JPG

Inoltre ti prego di leggere attentamente il regolamento generale del forum e quello di sezione dove posti
Grazie
Per questa volta te lo sistemo io ma mi raccomando per il futuro
 
ho rivisto lo script "server.php" commentando MySQL e simulandone il funzionamento,
eseguilo senza modifiche e successivamente attiva le funzioni MySQL
da buon ultimo togli le "trace"
PHP:
<?php
session_start();

error_reporting(E_ALL);

echo "TRACE: server.php<br />";

$uname         = $_POST['username'];
$pw            = $_POST['password'];
$opzioneUtente = $_POST['opzioneUtente'];

// echo $_GET['sms'];

if(isset($_POST['sessione']) and $_POST['sessione'] == "logout")
{
    echo "TRACE: logout<br />";

    session_unset();
    session_destroy();
    echo "sessione scaduta";
    header("Refresh:10; url=http://www.laboraccio.altervista.org/");
}

function registraUtente()
{
    global $uname, $pw;

    echo "TRACE: registraUtente = ".$uname."<br />";

    //$conex = mysql_connect('localhost', 'root');
    //mysql_select_db("my_laboraccio", $conex);

    $sql = "SELECT * FROM utenti WHERE username='$uname'";
    echo $sql."<br />";

    //$resource = mysql_query($sql) or die (mysql_error());
    //$result   = mysql_num_rows($resource);
    $result = 0;

    if($result == 0)
    {
        $sql = "INSERT INTO utenti (id, username, password) VALUES (NULL, '$uname', '$pw')";
        echo $sql."<br />";

        //mysql_query($sql) or die (mysql_error());

        echo "nuovo utente creato, registrazione completata";
        header("Refresh:10; url=http://www.laboraccio.altervista.org/");
    }
    else
    {
        echo "username gia in uso, riprova con un altro";
        header("Refresh:10; url=http://www.laboraccio.altervista.org/");
    }
}

function loggareUtente()
{
    global $uname, $pw;

    echo "TRACE: loggareUtente = ".$uname."<br />";

    //$conex = mysql_connect('localhost', 'root');
    //mysql_select_db("my_laboraccio", $conex);

    $sql = "SELECT * FROM utenti WHERE username='$uname' AND password='$pw'";
    echo $sql."<br />";

    //$resource = mysql_query($sql) or die (mysql_error());
    //$result   = mysql_num_rows($resource);
    $result = 1;

    if($result == 0)
    {
        print "utente non valido"; 
        header("Refresh:10; url=http://www.laboraccio.altervista.org/");
    }
    else
    {
        $_SESSION['username'] = $uname;
        $_SESSION['password'] = $pw;

        echo "benvenuto alla tua area personale ".$uname;
        //header("location:http://www.laboraccio.altervista.org/profilo.php");
        header("location:http://localhost/test_site/PHP/TEST/_MrWebMasterUsers/_riccardo94/profilo.php");
    }
}

if($opzioneUtente == 'registrareUtente')
{
    registraUtente();
}
elseif($opzioneUtente == "loggareUtente")
{
    loggareUtente();
}
?>
 

Discussioni simili