Problema con login e password

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Salve a tutti,

Dovrei creare un accesso con estrazione dei dati dal db, chiamato utenti. E poi effettuare il login. Inserendo username e Password. Visualizzando possibilmente, il benvenuto pinco pallino (ossia il nome). Chi mi puó aiutare per favore ????
 

paperinik4

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

Ciao Cricric,

Io ho dei codici ma sono incompleti e non funzionanti per il nuovo sito che sto cercando di fare. A parte la pagina d'iscrizione, che quello funziona perfettamente. Il problema principale, secondo me, è che il sistema non riconosce la password e non il motivo. Ho trovato un vecchio esempio che ti posto qua. Considera, che il nuovo db è a livelli, ossia, c'è un campo chiamato autorizzato = 0 e 1 corrisponde a non autorizzato. Ora ti posto quello che ho sperando di cercare di capire come potrlo modificare e renderlo funzionante.

Tabella utenti:

PHP:
create table utenti (

id 		INT UNSIGNED NOT NULL AUTO_INCREMENT,
nome 		VARCHAR(30) NOT NULL,
cognome 	VARCHAR(30) NOT NULL,
username 	VARCHAR(30) NOT NULL,
email           VARCHAR(40) NOT NULL,
password        VARCHAR(255) NOT NULL,
autorizzato 	ENUM('0', '1') DEFAULT '0',
PRIMARY KEY (id)
);

Suggeritami da borgo l'ultima voce. Se sono maggiorenni compoarirà il nome e cognome, se sono minorenni comparirà solo lo username.

Questo è il vecchio codice che adoperavo all'inizio, che sicuramente va modificato, l'ho chiamata provasessione.php:

PHP:
<?php

require_once("connetti.php"); <--- Questo richiama il file di configurazione del db


session_start();
if(isset($_SESSION['login'])){
$id=$_SESSION['login'];
$cerco_user=mysql_query("SELECT * FROM utenti WHERE id='$id'");
while($leggo_dati_user=mysql_fetch_array($cerco_user)){
$login=$leggo_dati_user['login'];
//echo '<font face="Comic Sans MS"> <body bgcolor = "#000000"> <font color="yellow">';
}
}

else{
echo "<form action='' method='POST'>

<CENTER> <h1>


PER ENTRARE DIGITARE LOGIN & PASSWORD
</center> </h1>
<center>

Username: <input type='text' name='username'><br><br>
Password: <input type='password' name='password'><br><br>
<input type='submit' name='logga' value='Loggati'>
</center> </br>
</form>";

//if(isset($_POST['logga']) {

error_reporting(E_ALL ^ E_NOTICE);

if($_POST['logga']){

 
$username = mysql_real_escape_string($_POST['username']);
$password = mysql_real_escape_string($_POST['password']);
$pass=md5($password);
//echo $hash;
$cerco=mysql_query("SELECT id FROM utenti WHERE username='$username' AND password='$pass'");
while($prelevo_id=mysql_fetch_array(($cerco))){
$id=$prelevo_id['id'];
}
$x=mysql_num_rows($cerco);
if($x==0){header("Location:failed.html");}
else{$_SESSION['login']=$id;header("Location:benvenuto.php");}

}
}
?>

E poi c'è la pagina riservata, che viene chiamata paginaris.php:


PHP:
<?php

require_once("connetti.php");

session_start();
    if(isset($_POST['username']) || isset($_POST['password']))
{
echo "Ciao " . $_SESSION['username']; 
}else{
echo "Accesso non consentito";
}
?>

Ci sarebbe anche il file login.php, che vorrei mettere tutto insieme, ossia il controllo dello username e della password. Vedi se tante volte nei codici che ho postato, mi puoi dare una mano a modificarli. Grazie. Aspetto come al solito tue notizie. Intanto provo anche il codice opostato, nella discussione che mi hai inviato, non si sa mai nella vita che mi funzioni.
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
In questa parte di codice devi aggiungere in sessione il nome Utente se poi vuoi visualizzarlo in un altra pagina

PHP:
 // aggiungi alla select anche il nome utente
 $cerco = mysql_query("SELECT id,username FROM utenti WHERE username='$username' AND password='$pass'");
        while ($prelevo_id = mysql_fetch_array(($cerco))) {
            // preleva anceh la username
            $id = $prelevo_id['id'];
            $username = $prelevo_id['username'];
        }
        $x = mysql_num_rows($cerco);
        if ($x == 0) {
            header("Location:failed.html");
        } else {
            // metti in sessione anche il nome utente
              $_SESSION['username'] = $username;
              $_SESSION['login'] = $id;
            header("Location:benvenuto.php");
        }

ho fatto tre modifiche commentate
 

paperinik4

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

Ciao,

ti ringrazio. Ma se il fatto che non riesco a connettermi persiste, cosa debbo fare ??? Ho resettato anche la tabella più di una volta. Sai ogni tanto si sputtana. Ora riprovosubito il codice. Ah la parte riguardante la pagina riservata ??? C'è anche quella per caso ???
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
la pagina riservata andrebbe scritta piu omeno cosi

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

session_start();

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

anche se sarebbe meglio creare una funzione che controlli melgio la validita della sessione, ma si puo aggiungere piu avanti

il fatto che non riesco a connettermi persiste
sarà un problema di connetti.php
che errore ti restituisce?
 

paperinik4

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

Ciao,

nessun errore, non mi fa entrare. ora provo i due codici che mi hai dato e vediamo se tante volte risolvo. Sono sempre più cinvinto che dipenda dalla criptazione della password non so il perchè bah.
 

paperinik4

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

Ciao,

Allora non capisco un tubo del perchè non va. Comunque. Ti posto il codice che tu mi ha fatto, magari sbaglio io non lo so. Mi fa inkazzare...

Questo si chiama 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" />
                    
                </center> </form>
        </head>
        </body>
<?php

// da qua inizia il tuo codice con l'if iniziale del tasto "Loggati"
} else {

// aggiungi alla select anche il nome utente
 $cerco = mysql_query("SELECT id,username FROM utenti WHERE username='$username' AND password='$pass'");
        while ($prelevo_id = mysql_fetch_array(($cerco))) {
            // preleva anceh la username
            $id = $prelevo_id['id'];
            $username = $prelevo_id['username'];
        }
        $x = mysql_num_rows($cerco);
        if ($x == 0) {
            header("Location:failed.html");
        } else {
            // metti in sessione anche il nome utente
              $_SESSION['username'] = $username;
              $_SESSION['login'] = $id;
            header("Location:paginaris.php");
        }  
}
?>

Questa è la pagina riservata chiamata paginaris.php:


PHP:
<?php

require_once("connetti.php");

session_start();

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

?>

E va sulla pagina di failed.php Non capisco assolutamente il perkè non va. Magari provalo anche te.
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
intanto comincia a modificare cosi, prima non ci ho fatto caso
PHP:
// da qua inizia il tuo codice con l'if iniziale del tasto "Loggati"
} else {
// aggiungi alla select anche il nome utente
    $cerco = mysql_query("SELECT id,username FROM utenti WHERE username='$username' AND password='$pass'");

    $x = mysql_num_rows($cerco);
    if ($x == 0) {
        header("Location:failed.html");
    } else {
        //inutile il ciclo while visto che devi estrarre un solo dato
        // non mysql_fetch_array ma mysql_fetch_assoc ( verifica in rete la differenza )    
        $prelevo_id = mysql_fetch_assoc($cerco);
        // preleva anceh la username
        $id = $prelevo_id['id'];
        $username = $prelevo_id['username'];
        // metti in sessione anche il nome utente
        $_SESSION['username'] = $username;
        $_SESSION['login'] = $id;
        header("Location:paginaris.php");
    }
}

poi vediamo il resto un passo alla volta
 

paperinik4

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

Ciao,

Grazie e scusami se ti rompo. Ma ora riprovo il codice che mi hai dato, inoltre, ho tolto la criptazione md5 per vedere se il problema era quello, ovviamente non lo è. Immaginavo male. Ma all'inizio del tuo codice, ci devo mettere sempre session_start(); ????? Provato ora il codice e persiste. Non mi fa entrare. Ma perchè ????? Il limite di varchar è di 255 caratteri giusto ??? o va oltre ????
 
Ultima modifica:

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
@Borgo:
nella login mi sembra che manchi session_start().
session_start() deve esserci in tutte le pagine in cui usi le sessioni

certo all'inizio di ogni pagina
 

paperinik4

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

Ciao,

Sia con che senza, sembra che non gli piaccia. E il limite dei caratteri è max 255 ??? Un ultima cosa, fa differenza che c'è un campo nella tabella:
autorizzato ENUM('0', '1') DEFAULT '0', ???
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Sia con che senza, sembra che non gli piaccia.
se parli di session_start() lascialo
E il limite dei caratteri è max 255 ??? Un ultima cosa, fa differenza che c'è un campo nella tabella:
autorizzato ENUM('0', '1') DEFAULT '0', ???
Non c'entrano per ora, un passo alla volta

vediamo se la query va in errore
aggiungi un exho dopo la query e vedi se ti stampa un errore e semmai postalo
PHP:
$cerco = mysql_query("SELECT id,username FROM utenti WHERE username='$username' AND password='$pass'");
    if(!$cerco) {
        echo "Errore query: " . mysql_error();
    }
poi all'inizio della pagina di autenticazione aggiungi
PHP:
var_dump($_SESSION)
per vedere se riusciamo a settare le sessioni
 

paperinik4

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

Ciao,

ora ci provo e ti dico. Mi da subito questo come risultato:

array(1) { ["p"]=> &string(32) "96b54a4d6ec83f742d230b953142c995" }

ora dov'è esattamente che lo debbo mettere ex ???? Scusa ma non ho capito prima nel post. Inoltre, quando mi vado a loggare, mi dice username e password errati
mi va subito sulla pagina chiamata failed.php

Vado a cena, ci si sente domani se posti, poi lo leggo dall'ipad dopo. Grazie.
 
Ultima modifica:

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Lasciamo perder il var_dump($_SESSION) per il momento

mysql_error() non ti stampa niente?
modifica cosi che stampiamo anche la query

PHP:
$query = "SELECT id,username FROM utenti WHERE username='$username' AND password='$pass'";
    $cerco = mysql_query($query);
    if(!$cerco) {
        echo "Errore query: <br/>$query<br/>" . mysql_error();
    }else{
        echo $query;
    }

qualcosa deve stampare
 

paperinik4

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

Ciao,

Ho provato ora il codice, che mi hai inviato, mi stampa a video la seguente:


SELECT id,username FROM utenti WHERE username='' AND password=''

Per essere precisi, ho dovuto togliere la parte sotto, altrimenti andava direttamente sulla pagina failed.php

Ti posto il codice come l'ho fatto:

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='$username' AND password='$pass'";
    $cerco = mysql_query($query);
    if(!$cerco) {
        echo "Errore query: <br/>$query<br/>" . mysql_error();
    mysql_error();
    }else{
        echo $query;
    }  
    }  
   
?>

e così sembrerebbe che si logga, ma se tu clicchi sul tastino loggati, si logga ugualmente.
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
SELECT id,username FROM utenti WHERE username='' AND password=''

come vedi dalla query, $username e $password non sono valorizzate

prova cambiando la query cosi :
PHP:
$query = "SELECT id,username FROM utenti WHERE username='" . $_POST['username'] . "' AND password='" . $_POST['password'] . "'";
 
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
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
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 1
S problema con css bootstrap3 HTML e CSS 4
M .load() problema con caricamenti dinamici di js Javascript 0
G Problema ------- con Query PHP 1
G Problema con Query PHP 1
T problema con select dinamica con jquery Javascript 0
S Problema con spazi bianchi HTML e CSS 5
A PROBLEMA: insert mysqli con dati Tagsinput Presentati al Forum 0
Tommy03 Problema con z-index HTML e CSS 3
M Problema inserimento parole con apostrofo nel db PHP 5
C Problema con dati meteo xml XML 1
S Problema con infrarossi videocamera IP Cam e Videosorveglianza 1
V Problema con librerie allegro5 c++ C/C++ 1
M Problema con php per calcolo costo percentuale PHP 7
S Problema con mysqli_num_rows PHP 18
grgfede Problema javascript con aruba Javascript 1
M Problema con visibility e radio button Javascript 2
Marti1! Problema con casella mail cancellata Posta Elettronica 3
L [PHP] Problema con Telegram PHP 1

Discussioni simili