Pagina 1 di 8 12345 ... UltimaUltima
Risultati da 1 a 10 di 78

Discussione: estrazione mysql in base al login

  1. #1
    iperboreo è offline Utente del Forum
    Data Registrazione
    Jun 2012
    Messaggi
    125

    estrazione mysql in base al login

    Buona sera a tutti, sono nuovo e sono felice di far parte del forum di MRWEBMASTER.
    Ho un problema e spero mi possiate aiutare:
    Ho un sistema di registrazione e login in php e mysql, e vorrei estrarre i dati da una tabella in mysql, ma non tutti i dati,
    solamente quelli relativi all'utente loggato al momento.
    Vi ringrazio per l'aiuto, attendo fiducioso e grazie a tutti.

    Iperboreo (max)

  2. #2
    L'avatar di borgo italia
    borgo italia è offline Super Moderatore
    Data Registrazione
    Feb 2008
    Località
    PR
    Messaggi
    11,231
    ciao iperboreo e benvenuto nel forum.
    certo che è possibile, però dipende da come sono strutturate le tabelle del db.
    dovresti postare la loro struttura

  3. #3
    iperboreo è offline Utente del Forum
    Data Registrazione
    Jun 2012
    Messaggi
    125

    Estrazione da mysql in base all'utente

    Buon giorno e grazie per la risposta,
    vi posto i miei file php se possono essere utili, non son perfetti ma funzionano, sto imparando.

    MAIN_LOGIN : questo è form del login

    Codice HTML:
    <HTML>
    <HEAD>
    <TITLE>prova</TITLE>
    </HEAD>
    <BODY>
    <table border="0" cellspacing="1" cellpadding="0" width="300" align="center" bgcolor="#cccccc"><tbody>
    <tr><form action="checklogin.php" method="post"> <input name="phpMyAdmin" type="hidden" value="V0N0db6Fl62QWr6eBkly75xAGn3" /><td>
    
    
    
    <table border="0" cellspacing="1" cellpadding="3" width="100%" bgcolor="#ffffff"><tbody>
    <tr>
    <td colspan="3"><strong>Member Login </strong></td>
    </tr>
    <tr>
    <td width="78">Username</td>
    <td width="6">:</td>
    <td width="294"><input id="myusername" name="myusername" type="text" /></td>
    </tr>
    <tr>
    <td>Password</td>
    <td>:</td>
    <td><input id="mypassword" name="mypassword" type="password" /></td>
    </tr>
    <tr>
    <td></td>
    <td></td>
    <td><input name="Submit" type="submit" value="Login" /></td>
    </tr>
    </tbody></table>
    </td>
    </form></tr>
    </tbody></table>
    </BODY>
    CHECKLOGIN.PHP : QUESTA LA PAGINA DI CONTROLLO DEL LOGIN :

    Codice PHP:
    <?php
    $host
    ="localhost"// Hostname
    $username="basefull"// Mysql username
    $password=""// Mysql password
    $db_name="my_basefull"//Nome del Database
    $tbl_name="registrazione"// Nome della Tabella
    // Procedimento per connettersi al Database

    mysql_connect("$host""$username""$password")or die("cannot connect");
    mysql_select_db("$db_name")or die("cannot select DB");
    // Nome utente e password inviate attraverso il form

    $myusername=$_POST['myusername'];
    $mypassword=$_POST['mypassword'];
    $sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
    $result=mysql_query($sql);



    // Mysql_num_row is counting table row
    $count=mysql_num_rows($result);
    // If result matched $myusername and $mypassword, table row must be 1 row
    if($count==1){


    // Register $myusername, $mypassword and redirect to file "http://www.basefull.altervista.org/home.html"
    session_register("myusername");
    session_register("mypassword");
    header("location:http://www.basefull.altervista.org/home.html");
    }
    else {
    echo 
    "Attenzione username o password errati !  altrimenti procedere con la REGISTRAZIONE";
    }

    ?>
    iscritti.php : questa pagina l'ho creata per eseguire la sessione sull'id

    Codice PHP:
    <?php
    session_start
    ();

    // controlliamo se è stata inizializzata la sessione
    if(isset($_SESSION['id']))
    {
      
    //controllo id con esito positivo
      
    echo "Benvenuto! Processo di attivazione concluso positivamente!";
    header("location:http://www.basefull.altervista.org/home.html");
    }else{
      
    //controllo sessione con esito negativo
      
    @header("Location: http//www.basefull.altervista.org");
    }
    ?>


    QUESTE LE PAGINE PHP INTERESSATE, NON SO COME FORMULARE LA QUERY PER LìESTRAZIONE IN MYSQL,
    tipo: $sql = "SELECT * FROM images where id_utente=$session_id";

    NEL DATABASE MYSQL ho due tabelle, una è REGISTRAZIONE (contiene i campi ID, nome, cognome, password)
    e una table chiamata IMAGES, (contiene i campi ID, nome, id_utente)

    POSSONO BASTARE COME INFORMAZIONI? non riesco a mettere in relazione il campo ID_UTENTE della table registrazione con la table IMAGES.

    Sono mesi che tento !

    Grazie per l'aiuto, buona giornata

    Iperboreo
    Ultima modifica di borgo italia; 22-06-2012 alle 11:40

  4. #4
    L'avatar di borgo italia
    borgo italia è offline Super Moderatore
    Data Registrazione
    Feb 2008
    Località
    PR
    Messaggi
    11,231
    ciao
    ci do un occhio poi ti so dire, anche se cos' ad occhio e croce c'è ualcosa che non mi torna.
    comunque ricordati: quando posti del codice racchiudilo nei relativi tag, barra di formattazione post 2° riga ultime tre iconcine, nell'ordine code html php

    dimenticavo:
    sino a che lo script non è perfetto non usare il silent (la @) davanti alle istruzioni perchè non vedi eventuali errori
    Ultima modifica di borgo italia; 22-06-2012 alle 11:55 Motivo: dimenticavo

  5. #5
    L'avatar di borgo italia
    borgo italia è offline Super Moderatore
    Data Registrazione
    Feb 2008
    Località
    PR
    Messaggi
    11,231
    ciao
    alcuni appunti e domande
    non fai i controlli sui dati immessi dal form
    l'importanza dei controlli esempio:
    se uno nel campo del form scrive
    ' or password !='
    e tu fai semplicemente (io uso il termine brutalmente)
    $mypassword=$_POST['mypassword'];
    e non fai un controllo la query risulta
    ....and password='' or password !=''";
    uno accede alla pag. riservata senza avere l'autorizzazione
    analogo per myusername

    poi sempre nella CHECKLOGIN.PHP (dopo aver aggiunto i controlli)
    1. io metterei all'inizio anche qui
    Codice PHP:
    <?php
    session_start
    ();
    $host="localhost"// Hostname
    $username="basefull"// Mysql username 
    //...
    ?>
    2. tutta la parte della connessione la scriverei in un file a parte chiamato es. connessione.php, per cui
    Codice PHP:
    <?php
    session_start
    ();
    require_once 
    "connessione.php";
    //...
    ?>
    3. quando verifichi se user e pass sono giusti io estrarre anche l'id del cliente
    Codice PHP:
    <?php
    //....
    if($count==1){
     
    $riga=mysql_fetch_array($result);
     
    //e avendo messo all'inizio session_start
     
    $_SESSION['id_utente']=$riga['id'];//da questo nella pag riservata puoi fare la query $sql = "SELECT * FROM images where id_utente=".$_SESSION['id_utente'];
     
    $_SESSION['nome']=$riga['nome'];//meglio estrarlo che usare quello che viene dal form
    //...
    ?>
    4. poi perchè rimandi (se user e pass sono giusti) alla pag. home.html? non dovresti riinviare ad una pag riservata? tra l'altro per usare i dati invitai la pag dovrebbe essere .php
    io rimanderei alla home.html (o al form) se user e pass errati

    per ora penso che basti

  6. #6
    iperboreo è offline Utente del Forum
    Data Registrazione
    Jun 2012
    Messaggi
    125
    Ciao, e grazie,
    la silent la posso eliminare cosi vedo gli errori, ma non capisco proprio come uno possa riuscire a bypassare i controlli di nome e password. io non riesco, sembra funzionare bene.

    Aggiungo il controllo ID oltre che nome e password,

    ma per estrarre la foto dell utente loggato come faccio?
    ho sbagliato le tabelle vero?
    ho REGISTRAZIONE che racchiude tutti gli utenti, e
    ho FOTO che racchiude la foto dell utente in questione.

    Quando un utente si logga, mi mostra le foto di tutti gli utenti.

    Non riesco a risolvere, ma so che sta tutto nelle tabelle in mysql e nella query di estrazione che pongo. giusto?

  7. #7
    L'avatar di borgo italia
    borgo italia è offline Super Moderatore
    Data Registrazione
    Feb 2008
    Località
    PR
    Messaggi
    11,231
    ciao
    nella tab IMAGES, (contiene i campi ID, nome, id_utente) giustamente per collegarla alla tabella utenti hai messo id_utente, ma cosa contiene il campo nome?
    poi dove vuuoi che vengano fuori le immagini dell'utente? hai una pag apposita (ricordati che deve essere .php)?

    p.s.
    la cross injection è una delle cose più semplici da fare e se non si fanno controlli ti può capitare.

  8. #8
    iperboreo è offline Utente del Forum
    Data Registrazione
    Jun 2012
    Messaggi
    125
    Ciao borgo italia, non riuscivo a connettermi!
    la mia tabella REGISTRAZIONE contiene i campi: ID,nome,cognome,mail
    la tabella IMAGES contiene i campi: ID,nome(nome della foto dell'utente), id_utente (sarebbe il campo dove credo debba automaticamente comparire l ID dell utente della tabella REGISTRAZIONE.

    le foto appaiono in una pagina php chiamata FOTO. (NELLA QUAL PAGINA HO INSERITO LA QUERY: <?php $query = "SELECT * FROM images WHERE id_utente=".$_SESSION['id']."ORDER By Id"; ?>

  9. #9
    L'avatar di borgo italia
    borgo italia è offline Super Moderatore
    Data Registrazione
    Feb 2008
    Località
    PR
    Messaggi
    11,231
    ciao
    se in "nome" come detto hai il nome della foto, es. pinco.jpg
    ti schematizzo
    Codice PHP:
    <?php
    //....
    $cartella="immagini/";//qui dovrai mettere il percorso rispetto allo script o no se sono nella stessa cartella
    $query "SELECT * FROM images WHERE id_utente=".$_SESSION['id']."ORDER By Id";
    $ris=mysql_query($query);
    if(
    mysql_num_rows($ris)==0){
        echo 
    "non ci sono immagini";
    }else{
        while(
    $riga=mysql_fetch_array($ris)){
            
    $immagine=$riga['nome'];
            
    $immagine=$cartella.$immagine;
            echo 
    "<img src=\"$immagine\" width=\"100%\" height=\"100%\" border=\"0\"title=\"quello che vuoi se hai il tit dell'imm\" / ><br />";
        }
    }
    //.....
    ?>

  10. #10
    iperboreo è offline Utente del Forum
    Data Registrazione
    Jun 2012
    Messaggi
    125
    Ciao,
    facendo come suggerito, che secondo mè è giusto, mi riporta il seguente errore, invece di visualizzare la foto.
    che potrebbe essere? la versione?

    "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 'ORDER By Id' at line 1 "

Pagina 1 di 8 12345 ... UltimaUltima

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •