Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: Login php

  1. #1
    Utente di HTML.it L'avatar di laskot
    Registrato dal
    Jun 2017
    residenza
    Milan
    Messaggi
    34

    Login php

    Ciao a tutti, avrei un problema con il login al mio sito, sono una novizia di php e non so come risolvere.
    Codice PHP:
    <?php
    session_start
    ();
    require (
    'connessione.php');

       if ( !isset (
    $_SESSION["utente"])) {
           
    $usr $_POST["username"];
           
    $pass $_POST["pass"];
       }

           
    $_query "SELECT username,password FROM utente WHERE username ='$usr' and password = '$pass'";
           echo 
    $_query;
           
    $result =  pg_query("$query");
           echo 
    $result;
            if(
    pg_fetch_array($result)) {
                
    $_SESSION["utente"] = $usr;
                
    $_SESSION["password"] = $pass;
                echo 
    "ciao $usr, sei loggato al sito";
            }
    ?>
    grazie per l'aiuto

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    E il problema quale sarebbe?

  3. #3
    Utente di HTML.it L'avatar di laskot
    Registrato dal
    Jun 2017
    residenza
    Milan
    Messaggi
    34
    Si scusa non sono stata molto chiara! Il problema è che mi stampa la query ma non credo effettui il login. Dopo ho provato a stampare l'array,la variabile session (echo "$_SESSION) e mi stampa solo la scritta Array. Quindi credo che non succeda nulla, ma non so nemmeno bene come guardare se il login è avvenuto o no!

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Un array non si stampa con echo, prova
    print_r($_SESSION)

    con echo puoi stampare solo un elemento specifico dell'array, non la sua struttura.

    P.S. spero che il codice sia parziale, solo per brevità, perché se realmente non fai nessun controllo sui dati che arrivano tramite $_POST avrai seri problemi di sicurezza.
    Ultima modifica di Alhazred; 26-06-2017 a 14:50

  5. #5
    Utente di HTML.it L'avatar di laskot
    Registrato dal
    Jun 2017
    residenza
    Milan
    Messaggi
    34
    Ah non sapevo, ho provato ma ora mi stampa Array().
    Riguardo alla sicurezza, è uno dei miei primi codici php quindi non so come occuparmi della sicurezza.
    E' che al momento non mi funziona nemmeno il login.
    E sopratutto non mi stampa nemmeno la fine dell'if, echo "ciao $usr..."
    Ultima modifica di laskot; 26-06-2017 a 15:54

  6. #6
    Utente di HTML.it L'avatar di laskot
    Registrato dal
    Jun 2017
    residenza
    Milan
    Messaggi
    34
    In realtà ho sbagliato a scrivere una variabile, pensavo fosse un problema più ampio in realtà non è così!
    Mi dispiace averti fatto perdere tempo grazie mille, ma posso comunque chiederti un approfondimento veloce sulla sicurezza?

  7. #7
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Prova questo codice
    Codice PHP:
     <?php
    session_start
    ();
    require (
    'connessione.php');

    if ( !isset (
    $_SESSION["utente"])) 
    {
       
    $usr $_POST["username"];
       
    $pass $_POST["pass"];

        
    $_query "SELECT username,password FROM utente WHERE username ='$usr' and password = '$pass'";
        echo 
    $_query;
        
    $result =  pg_query($query);
        
        if( ! 
    $result )
        {
            echo 
    "C'è stato un errore nell'esecuzione della query";
        }
        
        if(
    pg_fetch_array($result)) 
        {
            
    $_SESSION["utente"] = $usr;
            
    $_SESSION["password"] = $pass;
            echo 
    "ciao $usr, sei loggato al sito";
        }
        else
        {
            echo 
    "I dati forniti per il login non sono corretti!"
        
    }
    }
    else
    {
        echo 
    "Hey " $_SESSION['utente'] . ", sei già loggato!";
    }
    ?>
    Per quanto riguarda la sicurezza, come minimo dovresti fare un'escape della query prima di eseguirla per assicurarti che non ci sia codice malevolo nei dati inseriti dall'utente (per maggiori informazioni cerca "sql injection").
    Con PostgreSQL non ho molto a che fare, ma dopo una rapida consultazione del manuale, ciò che dovrebbe servirti è la funzione pg_escape_literal().

    P.S. anche
    echo $result;
    non è corretto, $result contiene un resultset, non una stringa, oppure FALSE se la query fallisce.

  8. #8
    Utente di HTML.it L'avatar di laskot
    Registrato dal
    Jun 2017
    residenza
    Milan
    Messaggi
    34
    Ti ringrazio, ho usato il codice che mi hai scritto è molto più completo!
    Riguardo alla sicurezza leggerò volentieri quello che mi hai detto.

    Ne approfitto un po, ma c'è un altro dubbio che ho: una volta che il mio utente è loggato io vorrei cambiare l'aspetto della mia homepage, ad esempio togliere il form di login e metterne un altro per aggiungere informazioni personali e sloggarsi. Ma non ho idea di come "dire" al mio sito cambia quando l'utente è loggato.

  9. #9
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Nella home metti
    Codice PHP:
    <?php
    if( ! isset($_SESSION['utente']) )
    {
    ?>
        // qui ci metti il codice per per mostrare il form di login
    <?php
    }
    else
    {
    ?>
        // qui ci metti i contenuti da far vedere agli utenti loggati
    <?php
    }
    ?>

  10. #10
    Utente di HTML.it L'avatar di laskot
    Registrato dal
    Jun 2017
    residenza
    Milan
    Messaggi
    34
    Ho capito, grazie mille domani provo.
    Quindi il mio file html lo faccio diventare un file php corretto?
    Ti ringrazio tanto per l'aiuto

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.