Problema con login e password

Ciao

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*/

Ciao Borgo,

Scusa, non c'avevo pensato. Senti ti volevo chiedere una cortesia, è possibile modificare il mio username ???Che quando l'ho digitato mi so dimenticato la "k" finale. Dovrebbe essere paperinik4 anzicchè paperini4. Visto che siete amministratori del sito. Provo a chiedere.
 
Ciao

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'];
}

Ciao,

ora provo e poi ti saprò dire. Volevo solo un chiarimento, questo campo chiamato da te livello: $_SESSION['livello'], viene sostituito con$_SESSION['autenticazione'], giusto ???? perchè io ho il seguente campo:

PHP:
autorizzato 	ENUM('0', '1') DEFAULT '0',
 
Ciao

Allora, speravo di cavarmela da solo, ma so proprio na sega. Ora non mi fa entrare e non capisco perchè. Partendo dal principio che la password è corretta. Ti posto i due soliti codici con le modifiche che mi hai postato prima. Forse l'inghippo è la.

Innanzi tutto, il campo livello, nel db, viene chiamato autorizzato.

PHP:
autorizzato 	ENUM('0', '1') DEFAULT '0',

Questo è la parte di login.php:

PHP:
 <?php
} else {

    session_start();
    $query = "SELECT id,username, nome, autorizzato FROM utenti WHERE username='" . $_POST['username'] . "' AND password='" . md5($_POST['password']) . "'";     
$_SESSION['autorizzato'] = $row['autorizzato']; 
$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";
    }
}
}
?>


E questa è la parte riguardante la paginaris.php:

PHP:
require_once("connetti.php");

session_start();

 if(isset($_SESSION['nome']) && $_SESSION['autorizzato'] = 0) {   
    echo "Ciao " . $_SESSION['nome'];
}      else {
    
   
    echo "Accesso non consentito";
}
?>

Io credo che sia nella query da prolungare con gli and o sbaglio ?????
 
PHP:
$_SESSION['autorizzato'] = $row['autorizzato'];

devi metterlo nel posto giusto vicino agli altri
PHP:
if (mysql_num_rows($cerco) == 1) {
        $row = mysql_fetch_assoc($cerco);        
        $_SESSION['nome'] = $row['nome'];
        $_SESSION['id'] = $row['id'];  
        $_SESSION['autorizzato'] = $row['autorizzato'];
        header("Refresh: 0;URL=paginaris.php");   
    } else {
        
        header("Refresh: 2;URL=login.php");    
        echo "Utente non trovato";
    }
 
Ciao

Cavoletti fritti,

continua a non farmi entrare il bastardo. Mi puoi ricontrollare l'intero codice con le modifiche apportate da te se ho fatto giusto per favore ????


PHP:
<?php
} else {

    session_start();
    $query = "SELECT id,username, nome, autorizzato 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['nome'] = $row['nome'];
        $_SESSION['id'] = $row['id'];  
        $_SESSION['autorizzato'] = $row['autorizzato'];
        header("Refresh: 0;URL=paginaris.php");   
    } else {
        
        header("Refresh: 2;URL=login.php");    
        echo "Utente non trovato";
    }  
    }
    }
?>

E poi la query è giusta ????:

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

In ultimo, la paginaris.php va modificata in qualche maniera ????
 
Ciao

Ciao,

Perdonami, scusa se insisto sulla query ma c'è qualcosa che non mi convince. Io ho fatto così, mi puoi dare un'occhiata per favore se tante volte fosse sballata ???? Perchè facendola girare mi da il seguente errore:

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

L'errore che mi da è questo:


SELECT id,username, nome, autorizzato FROM utenti WHERE username='paperinik4 AND nome=' AND autorizzato=' AND password='0c88028bf3aa6a6a143ed846f2be1ea4'
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '0c88028bf3aa6a6a143ed846f2be1ea4'' at line 1
 
rimetti la quert com'era prima

sei sicuro di questo?
Ti ricordi che ho fatto a livelli 0 = autorizzato 1 = non consentito

non è il contrario?
 
Ciao

Allora,

Ho risolto il problema, c'era un piccoloro erroresulla if che mi avevi fatto ti posto le due if che ho modificato. L'originaria tua e la modifica apportata eccole:

La tua:

PHP:
if(isset($_SESSION['nome']) && $_SESSION['autorizzato'] = 0) {   
    echo "Ciao " . $_SESSION['nome'];

Così non mi faceva entrare. ora ti posto la mia modificata:

PHP:
if(isset($_SESSION['nome']) && $_SESSION['autorizzato'] == 0) {   
    echo "Ciao " . $_SESSION['nome'];

Così mi fa entrare, mancava un "=". ora sembra funzionare il tutto, manca un ultima parte, che dovrebbe riguardare da 0 autorizzato a 1 non autorizzato. Ma questo è legato con l'email di accettazione che dovrebbe partiree tramite il synology (nas), non ci sono riuscito. Per quello credo che basti fare un update sulla tabella giusto ???? Ci sono altre modifiche da fare ????
 
ciao
a prescindere cosa cavolo c'entrano i $_POST
$_POST['nome']
e
$POST['autorizzato'] (che tra l'altro dovrebbe essere scritto $_POST['autorizzato'])
nella query quando nel form chiidi l'user e la password
poi se leggi attentamente quello che hai postato vedi un "piccolissimo" particolare

SELECT id,username, nome, autorizzato FROM utenti WHERE username='paperinik4 AND nome=' AND autorizzato=' AND password='0c88028bf3aa6a6a143ed846f2be1ea4'

non ti fa entrare perchè cerca un username così:
paperinik4 AND nome=
e di sicuro non lo trova
senza contare gli altri apici a spasso per conto loro
 
Ciao

ciao
a prescindere cosa cavolo c'entrano i $_POST
$_POST['nome']
e
$POST['autorizzato'] (che tra l'altro dovrebbe essere scritto $_POST['autorizzato'])
nella query quando nel form chiidi l'user e la password
poi se leggi attentamente quello che hai postato vedi un "piccolissimo" particolare

SELECT id,username, nome, autorizzato FROM utenti WHERE username='paperinik4 AND nome=' AND autorizzato=' AND password='0c88028bf3aa6a6a143ed846f2be1ea4'

non ti fa entrare perchè cerca un username così:
paperinik4 AND nome=
e di sicuro non lo trova
senza contare gli altri apici a spasso per conto loro

Ciao Borgo,

Non sono un grosso esperto di php, però posso dirti che ho risolto in un modo molto banale. Se leggi quello che ho postato al moderatore cricric. Ma comunque te lo riposto volentieri. A parte che la query come pensavo io non centrava assolutamente niente da allungarla.

Lui mi aveva postato la seguente if:

PHP:
if(isset($_SESSION['nome']) && $_SESSION['autorizzato'] = 0) {   
    echo "Ciao " . $_SESSION['nome'];
}      else {

Io l'ho modificata così l'if:

PHP:
if(isset($_SESSION['nome']) && $_SESSION['autorizzato'] == 0) {   
    echo "Ciao " . $_SESSION['nome'];
}      else {

Mettendo un doppio "=" anzicchè uno solo. Difatti così mi fa entrare, e non fa entrare chinon è registrato o chi non trova nel db. Mi sembra la soluzione più semplice. Ho fatto anche delle prove. Modificando da 0 autorizzato a 1 non autorizzato, ma modificandole dal db direttamente. E sembra funzionare.

L'unica cosa, che volevo aggiungere, era una doppia frase. Ossia quando non sei autorizzato che ti dica "A bello chi ti conosce ???E' per questo che non ti ha accettato la richiesta di registrazione". So che come frase non è molto simpatica, però per un bambino di 11 va più che bene. Ti posto la paginaris.php che mi ha fatto cricric, tante vole ti venisse qualche idea....

PHP:
<?php

require_once("connetti.php");

session_start();

 

//if $_SESSION['nome'] = $nome  {
    
 if(isset($_SESSION['nome']) && $_SESSION['autorizzato'] == 0) {   
    echo "Ciao " . $_SESSION['nome'];
}      else {
    
   
    echo "Accesso non consentito"; // Questo magari per quando sbagli lo username o la password e l'altra frase per quando non se autorizzato

}
?>
 
Ciao

rimetti la quert com'era prima

sei sicuro di questo?


non è il contrario?


Ciao,

Allora ho rimesso la query in origine. Avevi ragione tu. Se vai a vedere ti ho postato la piccola dimenticanza. Comunque te lo riposto. Purtroppo alcune vole l'email non mi arrivano e non so se qualcuno mi ha risposto:


Questo era in origine il tuo if:

PHP:
if(isset($_SESSION['nome']) && $_SESSION['autorizzato'] = 0) {   
    echo "Ciao " . $_SESSION['nome'];
}

Questo è il mio modificato di if:



PHP:
if(isset($_SESSION['nome']) && $_SESSION['autorizzato'] == 0) {   
    echo "Ciao " . $_SESSION['nome'];
}

E mi fa riconoscere ed entrare tranquillamente. Ovviamente, se metto un username o una password errata, non mi fa entrare. Ho modificato anche da 0 a 1 sul db direttamente. E funzione egregiamente. Quindi credo che il problema sia risolto. Rimane solo il fatto che non riesco ad inviare l'email dal mio nas, e non capisco il perchè. Comunque, volevo sapere se tu mi potevi aiutare anche per caricare le immagini con la funzione multipla anzicchè una ad una singolarmente. Ossia, premendo il tasto ctrl.quello de mouse. Se tante volte hai una risposta positiva, su questo argomento, apro un altro post. Grazie.
 

Discussioni simili