• Regolamento Macrocategoria DEV
    Prima di aprire un topic nella Macrocategoria DEV, è bene leggerne il suo regolamento. Sei un'azienda o un hosting/provider? Qui sono anche contenute informazioni per collaborare con Sciax2 ed ottenere l'accredito nella nostra community!

Problema risolto Dubbio Login PHP/PDO

Stato
Discussione chiusa ad ulteriori risposte.

FulmineVerde

Utente Medio
Autore del topic
10 Marzo 2013
109
32
Miglior risposta
0
Salve utenti di Sciax2,
avevo un piccolo "cms" creato da me in php e mysql, che ora volevo aggiornare in pdo per una maggiore sicurezza in caso di utilizzo, fino ad ora andava tutto bene fino a quando non mi sono comparsi i post del login e register, che in mysql erano più semplici da configurare utilizzando
PHP:
Perfavore, Entra oppure Registrati per vedere i codici!
, in modo che quando loggavi andava a richiamare la funzione, in pdo ho qualche problema, come faccio a richiamare la funzione di login?
Potete pubblicarmi qualche esempio di login?
In attesa di una risposta, cordiali saluti.
 
Allora parto col dare alcune specifiche, correggimi se sbaglio:
La tua intenzione è creare una pagina di accesso dove inserendo Username e Password e validandoli con quelli presenti nel database, nel caso siano corretti inserisce all'interno della sessione l'id dell'utente, altrimenti stampa l'errore.
Ora, ho vari dubbi riguardo il codice che hai scritto; nella prima porzione di codice, alla riga 6 si fa riferimento a una variabile "$db" che spero tu definisca in qualche file che poi includi all'inizio della pagina. Ed è proprio quest'ipotetico file che a me interessa poichè, come potrai ben vedere dal sito
Perfavore, Entra oppure Registrati per vedere i Link!
, il PDO è un'estensione che riguarda la connessione al database e non l'intero codice PHP.
Poi, prima della riga 2 del secondo codice, c'è bisogno di una selezione, più specificamente riguardo la variabile "login" di tipo POST, proprio come hai scritto tu a inizio discussione.
(In fin dei conti, ti serve a controllare se hai raggiunto la suddetta pagina attraverso la richiesta POST; solo successivamente puoi controllare se i campi "username" e "password" sono vuoti.)
Ancora, nel secondo codice alla riga 1 e all'ultima riga, non ha senso fare una selezione della variabile "login" di tipo SESSION, altrimenti non mostrerà nulla se si ha già effettuato l'accesso. (Capisco che vuoi mostrare altri contenuti per chi ha già effettuato l'accesso, ma già fai il controllo a inizio del primo codice, ti basta mettere un "else" e un reindirizzamento a una pagina, come per esempio "home.php" ecc.)
Infine, da come vedo nel secondo codice alla riga 5, hai impostato come azione del form la pagina stessa; ciò implica che il primo codice e il secondo codice devono essere nello stesso file.
Giusto per specificare, non "richiami funzioni" in PDO, ma semplicemente ti connetti al database.
 
Quel che tu hai postato è una selezione, ovvero controlla se la variabile "login" contenuta nella variabile globale $_POST (che ti ricordo essere in funzione solo quando alla pagina PHP arriva una richiesta di tipo POST) è attiva o meno. Qui non c'entra il PDO. Non so tu cosa intenda.
 
Si, il $db poi c'è in un'altra pagina e praticamente va ad eseguire la query, per quanto riguarda il secondo codice, praticamente se non sei loggato ti mostra il LOGIN, altrimenti se sei loggato ti mostra altri contenuti, non ho messo tutto il codice ma il codice intero continua poi con

PHP:
Perfavore, Entra oppure Registrati per vedere i codici!

per quanto riguarda la variabile di tipo login, è perchè con mysql prima si collegava a
PHP:
Perfavore, Entra oppure Registrati per vedere i codici!
, mentre ora con PDO non riesco a far collegare le due variabili, come dovrei fare?
 
F FulmineVerde Forse parliamo e non ci comprendiamo :emoji_laughing:
PDO è un'estensione che riguarda prettamente la connessione al database. Perciò, per evitare ulteriori repost inutili, puoi inviare la tua vecchia e la tua nuova connessione al database? Facciamo prima :emoji_laughing:
 
Da quanto vedo, hai creato una classe che se istanziata, effettua la connessione al database. Ora il punto è: dove istanzi la classe "Conn"? Perchè vedo che nella pagina di login tu fai riferimento alla variabile $db ma non vedo che assegni a quest'ultima il metodo "getConnection" della classe "Conn".
 
Ritorniamo sempre alla stessa questione. Nella pagina di login dove hai assegnato il valore della variabile $db?
 
Ok ho risolto, praticamente nel secondo codice, invece di mettere nel login name="login" avevo id="login" quindi....chiudo come problema risolto. Grazie a ToadFungoso ToadFungoso comunque per avermi aiutato!
 
Stato
Discussione chiusa ad ulteriori risposte.