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:
$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?
 
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
 
@Jonathan2705
Da regolamento del forum, come tutti noi sei tenuto ad usare il tag
code-gif.6007
o il tag
php-png.6009
per il PHP, quando posti del codice, oppure la funzione codice dalla barra degli strumenti
box-inserisci-2-png-jpg.6008

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
 
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!
 
@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");
}
 

Discussioni simili