Problema con login e password

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
dovresti scrivere cosi per valorizzare una variabile
PHP:
$username = $_POST['username'];

prova e ripossta il codice completo
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Ciao

In quale parte del codice lo dovrei inserire ??? per essere sicuri di non sbagliare.

Ecco il codice completo del login.php:

PHP:
<?php

require_once("connetti.php");

if (!isset($_POST['log'])) {
   
        
    ?>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>Loggati</title>

        <center>   <H1>AREA RISERVATA: PREGO EFFETTUARE IL LOGIN </H1>

            <form action= '' method="POST">

                <font face="Comic Sans MS">

                
Username: <input type="text" name="username"  maxlength="30" size ="32"> <br> <br>
Password: <input type="password" name="password"  maxlength="12" size ="14"> <br> <br>
                
 </font> 
 
 
                <center>
                    <input type="submit" name="log" value="Loggati" />
                    <input type="submit" name="uscita" value="Uscita" />
                </center> </form>
        </head>
        </body>
<?php
session_start();
$query = "SELECT id,username FROM utenti WHERE username='" . $_POST['username'] . "' AND password='" . $_POST['password'] . "'";  

$username = $_POST['username'];

$cerco = mysql_query($query);
    if(!$cerco) {
        echo "Errore query: <br/>$query<br/>" . mysql_error();
    mysql_error();
    }else{
        echo $query;

}
    }  

?>
 
Ultima modifica:

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Sistemi una parte e ne rovini un altra :D

l'else dove te lo sei perso?

modifica cosi

PHP:
<?php
require_once("connetti.php");

if (!isset($_POST['log'])) {
    ?>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>Loggati</title>

        <center>   <H1>AREA RISERVATA: PREGO EFFETTUARE IL LOGIN </H1>

            <form action= '' method="POST">
                <font face="Comic Sans MS">
                Username: <input type="text" name="username"  maxlength="30" size ="32"> <br> <br>
                Password: <input type="password" name="password"  maxlength="12" size ="14"> <br> <br>
                </font> 
                <center>
                    <input type="submit" name="log" value="Loggati" />
                    <input type="submit" name="uscita" value="Uscita" />
                </center> </form>
        </head>
    </body>
    <?php
} else {
    session_start();
    $query = "SELECT id,username FROM utenti WHERE username='" . $_POST['username'] . "' AND password='" . $_POST['password'] . "'";
    $cerco = mysql_query($query);
    if (!$cerco) {
        echo "Errore query: <br/>$query<br/>" . mysql_error();
        mysql_error();
    } else {
        echo $query;
    }

    if (mysql_num_rows($cerco) == 1) {
        echo "Utente trovato";
    } else {
        echo "Utente non trovato";
    }
}
?>
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Ciao

Oni spesso faccio dei casini assurdi e mi perdo poi gli appunti... So disordinato come non so chi.... Ora sembra che vada, ma la query mi da il seguente risultato:


SELECT id,username FROM utenti WHERE username='paperinik4' AND password='xxx'Utente non trovato
 
Ultima modifica:

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
ora rimetti l'md5 senza fare altre modifiche

PHP:
$query = "SELECT id,username FROM utenti WHERE username='" . $_POST['username'] . "' AND password='" . md5($_POST['password']) . "'";
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Ciao

Ora sembra chemi abbia trovato. Mi da questo risultato:

SELECT id,username FROM utenti WHERE username='paperinik4' AND password='0c88028bf3aa6a6a143ed846f2be1ea4'Utente trovato
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Bene ora aggiungi i dati in sessione
PHP:
 if (mysql_num_rows($cerco) == 1) {
        echo "Utente trovato";
        $row = mysql_fetch_assoc($cerco);        
        $_SESSION['username'] = $row['username'];
        $_SESSION['id'] = $row['id'];
    } else {
        echo "Utente non trovato";
    }

e metti anche il redirect al posto dell' echo
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Ciao

Già fatto e funziona,

Ma cosa diavolo era successo ??? perchè è andato in palla il sistema ???? ora mi riconosce e mi fa entrare. Mi da il seguente risultato, perchè avevo messo un var_dump. Ti posto il risultato:



array(0) { } Ciao

Vorrei solo capire cosa intende per arry e perchè non mi visualizza il nome. Solo ciao. La paginaris.php è strutturata in questa maniera:

PHP:
<?php

require_once("connetti.php");

session_start();

var_dump($_SESSION);

if ($_SESSION['username'] == 0) {
    
     mysql_error();
    echo "Ciao " . $_SESSION['username'];
} else {
    echo "Accesso non consentito";
} 

?>

Forse qua c'è da modificare qualcosina presumo.
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
cosa intende per array
è il var_dump della sessione che ti dice che non c'è settata nessuna sessione

Sicuro di non aver tolto session_start() dalla pagina del login?
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Ciao

Ricontrollo, ma mi sembra che ci sia. Eccolo qua te lo posto il codice finale:

login.php:

PHP:
<?php
} else {
    session_start();
    $query = "SELECT id,username FROM utenti WHERE username='" . $_POST['username'] . "' AND password='" . md5($_POST['password']) . "'"; 

    

    $cerco = mysql_query($query);
    if (!$cerco) {
        echo "Errore query: <br/>$query<br/>" . mysql_error();
        mysql_error();
    } else {
     
    if (mysql_num_rows($cerco) == 1) {
   
        header("Refresh: 2;URL=paginaris.php");     
      
        echo "Utente trovato";
    } else {
        
        header("Refresh: 2;URL=login.php");    
        echo "Utente non trovato";
    }
}
}
?>

Un'altra cosa, nella paginaris.php, io ho messo così:

PHP:
<?php

require_once("connetti.php");

session_start();



if ($_SESSION['username'] == 0) {  <------> Questa è la riga dell'if
    
     
    echo "Ciao " . $_SESSION['username'];
} else {
    
   
    echo "Accesso non consentito";
} 

?>

Se tolgo if ($_SESSION['username']) {, non mi fa entrare, mi dice accesso negato :( Ma non utente non trovato.
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
if (mysql_num_rows($cerco) == 1) {

header("Refresh: 2;URL=paginaris.php");

echo "Utente trovato";
}

non vedo questo:
PHP:
 $row = mysql_fetch_assoc($cerco);        
 $_SESSION['username'] = $row['username'];
 $_SESSION['id'] = $row['id'];
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
PHP:
<?php
} else {
    session_start();
    $query = "SELECT id,username FROM utenti WHERE username='" . $_POST['username'] . "' AND password='" . md5($_POST['password']) . "'";     

    $cerco = mysql_query($query);
    if (!$cerco) {
        echo "Errore query: <br/>$query<br/>" . mysql_error();
        mysql_error();
    } else {
     
    if (mysql_num_rows($cerco) == 1) {
        $row = mysql_fetch_assoc($cerco);        
        $_SESSION['username'] = $row['username'];
        $_SESSION['id'] = $row['id'];  
        header("Refresh: 2;URL=paginaris.php");   
    } else {
        
        header("Refresh: 2;URL=login.php");    
        echo "Utente non trovato";
    }
}
}
?>
per i livelli devi aggiungere una condizioni in piu nella query
ma pensaci dopo
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Ciao

Ciao,

Scusa se non ti ho risposto subito, ma sono andato a mangiare e poi a riposare. Ho provato il codice che mi hai postato, ora non mi fa più entrare. Te lo riposto:

PHP:
require_once("connetti.php");

if (!isset($_POST['log'])) {
    ?>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>Loggati</title>

        <center>   <H1>AREA RISERVATA: PREGO EFFETTUARE IL LOGIN </H1>

            <form action= '' method="POST">
                <font face="Comic Sans MS">
                Username: <input type="text" name="username"  maxlength="30" size ="32"> <br> <br>
                Password: <input type="password" name="password"  maxlength="12" size ="14"> <br> <br>
                </font> 
                <center>
                    <input type="submit" name="log" value="Loggati" />
                    <input type="submit" name="uscita" value="Uscita" />
                </center> </form>
        </head>
    </body>
    <?php
} else {

    session_start();
    $query = "SELECT id,username FROM utenti WHERE username='" . $_POST['username'] . "' AND password='" . md5($_POST['password']) . "'";     

    $cerco = mysql_query($query);
    if (!$cerco) {
        echo "Errore query: <br/>$query<br/>" . mysql_error();
        mysql_error();
    } else {
     
    if (mysql_num_rows($cerco) == 1) {
        $row = mysql_fetch_assoc($cerco);        
        $_SESSION['username'] = $row['username'];
        $_SESSION['id'] = $row['id'];  
        header("Refresh: 2;URL=paginaris.php");   
    } else {
        
        header("Refresh: 2;URL=login.php");    
        echo "Utente non trovato";
    }
}
}
?>

Mi da questo errore:


Accesso non consentito che si trova nella paginaris
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Ciao

Ciao,

Allora sembra funzionare tutto alla perfezione. L'unica cosa è che mi visualizza "ciao paperini4" (quindi username), anzicchè il nome. Presumo che ci siano altre modifiche da fare. Ma tu mi sai spiegare per il vecchio codice non ha funzionato qua ???
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ma tu mi sai spiegare per il vecchio codice non ha funzionato qua ???
??
L'unica cosa è che mi visualizza "ciao paperini4" (quindi username), anzicchè il nome.

- nella query devi aggiungere il nome
Codice:
SELECT id,username,nome
- devi poi estrarlo dalla query e metterlo in sessione
$nome = $row['nome'];
$_SESSION['nome'] = $nome;
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Ciao

Ciao,

Grazie, ora ci provo, e poi sono di courvè in cucina. Avevo intuito qualcosa del genere a dire il vero. Ma sulla query devo mettere un altro and ???? Allora, mi da i triangolini gialli (battezzati cartellino giallo). Ti posto quello che ho fatto:


Questo è login.php, qua ti indico il cartellino giallo invece:

PHP:
  <?php
} else {

    session_start();
    $query = "SELECT id,username, nome FROM utenti WHERE username='" . $_POST['username'] . "' AND password='" . md5($_POST['password']) . "'";     
$nome = $row['nome']; <--------> Cartellino giallo

    $cerco = mysql_query($query);
    if (!$cerco) {
        echo "Errore query: <br/>$query<br/>" . mysql_error();
        mysql_error();
    } else {
     
    if (mysql_num_rows($cerco) == 1) {
        $row = mysql_fetch_assoc($cerco);        
        $_SESSION['nome'] = $row['nome'];
        $_SESSION['id'] = $row['id'];  
        header("Refresh: 0;URL=paginaris.php");   
    } else {
        
        header("Refresh: 2;URL=login.php");    
        echo "Utente non trovato";
    }
}
}
?>

Per favore controlli se la query messa così, è corretta ???? O va allungata ???

E questo è paginaris.php, e qua mi da un ! con circolino rosso (ribattezzato cartellino rosso). ti indico i punti:

PHP:
<?php

require_once("connetti.php");

session_start();

 

if $_SESSION['nome'] = $nome;  {
    
    
    echo "Ciao " . $_SESSION['nome'];  <--------> Cartellino rosso
} else {
    
   
    echo "Accesso non consentito";
}
?>

Grazie.
 
Ultima modifica:

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
questo lo puoi togliere
PHP:
$nome = $row['nome']; <--------> Cartellino giallo
hai gia fatto bene qui
PHP:
$_SESSION['nome'] = $row['nome'];
puoi aggiungere anche il livello
PHP:
$_SESSION['livello'] = $row['livello'];
ovviamente aggiungendo alla query ( SELECT id,nome,livello )

questa invece non è la sintassi corretta per una condizione
PHP:
if $_SESSION['nome'] = $nome;  {   
    echo "Ciao " . $_SESSION['nome'];  <--------> Cartellino rosso
}
ma va scritta cosi
PHP:
if(isset($_SESSION['nome']) && $_SESSION['livello'] = 0) {   
    echo "Ciao " . $_SESSION['nome'];
}
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
mi permetto di aggiungere a quello che dice criric:
non mettere quel ...... di indicazione
<--------> Cartellino rosso

usa i commenti se vuoi indicare

PHP:
//Cartellino rosso
oppure
PHP:
# Cartellino rosso
oppure
PHP:
/*Cartellino rosso*/
 
Discussioni simili
Autore Titolo Forum Risposte Data
A Problema login con Safari PHP 14
F Problema con pagine login in PHP PHP 2
Fuego2806 [Joomla] Problema di login con il nuovo template Joomla 0
S problema con ajax semplice login script Javascript 8
L problema login con variabili PHP 7
S Problema con login e cookie PHP 5
S Problema di login con PDO PHP 2
L Problema con login in Dreamweaver CS5 PHP 2
I [PHP]Problema sito con form login in ogni pagina PHP 7
T problema con la finestra di login riservata PHP 1
B Problema con login pagina web-collegamento al db Classic ASP 7
O problema con dvr dahua xvr5116 IP Cam e Videosorveglianza 0
G Problema con Xampp Web Server 1
andrea barletta Problema con miniature comandi Photoshop 0
I problema con alice Posta Elettronica 0
N Problema con position absolute e overflow HTML e CSS 4
L Problema con inner join PHP 11
K [php] Problema con inner join PHP 4
K [PHP] Problema con variabili concatenate. PHP 1
O problema con query PHP 4
I problema con 2 account Posta Elettronica 1
L problema collegamento file css con html HTML e CSS 1
E Problema accesso a file con app sviluppata con MIT APP INVENTOR 2 Sviluppo app per Android 0
M Problema con Try Catch PHP 0
Sergio Unia Problema con gli eventi del mouse su una data table: Javascript 2
T PROBLEMA CON SESSIONI PHP 3
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
R problema con else PHP 0
T PROBLEMA CON ARRAY PHP 8
L problema con query select PHP 2
R Problema query con ricerca id numerico PHP 2
F Problema con risposta PHP 0
S problema con recupero dati tabella mysql PHP 2
Z Problema con il mio tp-l i nk Reti LAN e Wireless 1
L Problema RAM con Tomcat 8 Apache 0
napuleone problema con sort e asort PHP 4
Z Problema con INT MySQL PHP 1
Z Problema database MySQL con XAMPP PHP 0
M Problema con controllo form in real time jQuery 6
Z Problema di sincronizzazione PAYPAL con PHP PHP 1
G Problema con Get page PHP 4
P Problema con require once PHP 6
P Problema con i package Java 1
F INDESIGN: problema esportazione esecutivo per la stampa con foto B/N Webdesign e Grafica 0
S problema con css bootstrap3 HTML e CSS 4
M .load() problema con caricamenti dinamici di js Javascript 0
G Problema con eccessiva nitidezza apertura Camera Raw Photoshop 0
G Problema ------- con Query PHP 1
G Problema con Query PHP 1
T problema con select dinamica con jquery Javascript 0

Discussioni simili