Prelevare dati dal db Mysql

Jonathan2705

Nuovo Utente
23 Ago 2018
6
0
1
Ciao ragazzi!
Ho creato un sistema di registrazione e login con php e mysql.
Una volta effettuata la registrazione bisogna confermare l'email. Quando si conferma email il
valore "attivo" della tabella mysql passa da 0 a 1.
Quando la persona effettua il login sono riuscito a far controllare tramite php semplicemente che i campi
"email" e "password" corrispondessero a quelli presenti nel db. Come posso dire a php di controllare anche
che il campo "attivo" sia 1 e che se non è così anche se i valori email e password sono corretti bisogna dire che
il login sia fallito??
Vi lascio un po' di righe del mio codice..
PHP:
<?php
session_start ();
$con = mysqli_connect ('//', '//', '//');
mysqli_select_db($con, '//');
$email = $_POST['email'];
$password = $_POST['password'];
$s= "SELECT id FROM iscrizioni WHERE email='$email' AND password='$password'";
$result = mysqli_query($con, $s);
$num = mysqli_num_rows($result);
if($num == 0){
    header("Location: // ");
 
} else {
 
    header("Location: // ");
}
?>
 
Ultima modifica di un moderatore:

macus_adi

Utente Attivo
5 Dic 2017
1.119
63
48
IT/SW
$s= "SELECT id FROM iscrizioni WHERE email='$email' AND password='$password'";
Prova così!
PHP:
$s= "SELECT id FROM iscrizioni WHERE email='$email' AND password='$password' AND attivo = 1";
Ma una curiosità... la password è in chiaro?
Effettui la query senza processare gli input?
 

Jonathan2705

Nuovo Utente
23 Ago 2018
6
0
1
Prova così!
PHP:
$s= "SELECT id FROM iscrizioni WHERE email='$email' AND password='$password' AND attivo = 1";
La password per ora la lascio in chiaro, ma tra poco la faccio in md5.
Comunque, ho fatto come mi hai detto, ma stesso problema. Se i dati son corretti anche se il valore attivo è 0
il sistema fa loggare lo stesso
 

Max 1

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
29 Feb 2012
4.005
295
83
@Jonathan2705
Da regolamento del forum, come tutti noi sei tenuto ad usare il tag
o il tag
per il PHP, quando posti del codice, oppure la funzione codice dalla barra degli strumenti

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
 

macus_adi

Utente Attivo
5 Dic 2017
1.119
63
48
IT/SW
Utente: mario
Pass: 12345
Stato:0
???
WHERE utente="mario" and password="12345" and stato=1
Come fa a funzionare se lo stato sta a 0??????
Non verificandosi la condizione di stato=1 il risultato è ZERO!

Controlla la bontà della query!
 

Jonathan2705

Nuovo Utente
23 Ago 2018
6
0
1
@macus_adi
Sono riuscito, grazie!
Ora però ho un altro problema.. la pagina dopo il login la devo far visualizzare solo agli utenti loggati..
ma mettiamo il caso che un tizio cambi url del mio sito ed inserisca la pagina dopo il login... ad esempio miosito.lol/home.php
devo creare una funzione in php che blocchi l'accesso agli utenti non loggati.. l'ho già fatto, ma ho un problema..
dacci un'occhiata
PHP:
<?php
session_start();

// controlliamo se è stata inizializzata la sessione
if(isset($_SESSION['id']))
{
   
pagina html che al suo interno contiene anche codice php..
quindi il php ad inizio file non si collega ad else a fine file ma al php presente nell'html.. come posso ovviare??
Ps. ovviamente nel login.php ho inizializzato la sessione

    } else{
  //controllo sessione con esito negativo
  @header("Location: index.php");
}