• User

    Prima cosa, grazie ancora del tempo dedicatomi, troppo gentile, mi stai salvando dall'esaurimento!

    La tabella utenti è già creata, perchè l'area riservata è già funzionante.

    Per quanto riguarda la tabella pratiche:
    diciamo che va bene per adesso solo la descrizione e lo stato della pratica, può bastare.*

    quindi...
    ti dico quello che non mi riporta:

    1. devo creare tante tabella per quanti clienti ho?
    2. e se il cliente ha più pratiche?
    3. nella/e tabella/e dove lo inserisco il valore per ogni campo e che tipo di valore?

    poi per quanto riguarda il codice che mi hai postato mi è più chiaro, a questo punto il mio problema si è decisamente dimezzato del 50% grazie a te, però abbi pazienza perchè nel database sono incasinato...

    *comunque il modello dell'avvocato è così:
    Cliente con password accede alla sua area dove trova dei file .doc dove cliccandoci li può aprire e leggere i suoi procedimenti penali o come dici te visualizzare il nome della pratica (descrizione) e vedere lo stato (a che punto sta).

    Diciamo che a me interessano tutti e due le soluzioni, ma il fatto sta a capire la logica della cosa, poi un discorso o un altro li personalizzo io.


  • Consiglio Direttivo
    1. devo creare tante tabella per quanti clienti ho?
    1. e se il cliente ha più pratiche?
    2. nella/e tabella/e dove lo inserisco il valore per ogni campo e che tipo di valore?spe...ti facilito l'associazione di pensiero, pensa ad una tabella del Db come ad un foglio excel

    Intestazione colonne = nome dei campi
    contenuto celle = dati del campo

    indi ti basta una sola tabella per tutti:
    | id | id_user | descrizione | stato | *nome campi = intestazione colonne
    *| _1 | 5 | pratica per..| ok | (pratica n. 1 relativa all'user n. 5)
    | _2 | 3 | pratica per..| ko | (pratica n. 2 relativa all'user n. 3)
    etc etc etc

    😉


  • User

    ...ma se per esempio l'id_user 5 ha 2 pratiche, devo fare una cosa del genere?

    | id | id_user | descrizione | stato | nome campi = intestazione colonne
    | _1 | 5 | pratica per..| ok | (pratica n. 1 relativa all'user n. 5)
    | _2 | 5 | pratica per..| ok | (pratica n. 2 relativa all'user n. 5)

    e comunque rimane il problema che non so come crearle in phpmyadmin, cioè che valore mettere del tipo: ID>TIPO>LUNGHEZZA>NULL>PREDEFINITO>CHIAVE PRIMARIA....come impostare?

    poi...una query riusciresti per pietà a crearmela tipo:

    query SQL:
    CREATE TABLE pratiche


  • User

    Questo è il risultato della pagina privata.php dopo il login, manca qualcosa...

    Pratica n.DescrizioneStato

    questa è la query per la creazione della tabella pratiche:

    CREATE TABLE pratiche (
    id int(11) NOT NULL auto_increment,
    id_user INT(11) NOT NULL,
    descrizione VARCHAR(255) NOT NULL,
    stato VARCHAR(10) NOT NULL,
    PRIMARY KEY (id)
    );

    che c'è di sbagliato?
    perchè non mi dà il numero della pratica e lo stato?

    mi viene fuori solo la tabella senza risultati sotto


  • Consiglio Direttivo

    Non vedi dati perchè hai solo creato una tabella, mancano i record al suo interno 😉

    prova così:
    [php] $sql="INSERT INTO pratiche (id_user, descrizione, stato) VALUES ('3', 'Pratica relativa al..........', 'evasa')";
    $query=@mysql_query ($sql) or die (mysql_error());[/php]questo tramite una pagina di php, richiamando ovviamente il file di connessione
    oppure molto più semplicemente dal pannello phpmyadmin manda la query:

    INSERT INTO pratiche (id_user, descrizione, stato) VALUES ('3', 'Pratica relativa al..........', 'evasa')
    

  • User

    intanto rinnovo il grazie, se non ci fossi tu...
    cmq pian piano ci sto arrivando...

    continua a non stamparmi niente dopo il login!

    ho inserito in phpmyadmn il record seguente:

    INSERT INTO pratiche (id_user, descrizione, stato) VALUES ('1', 'Casellario giudiziale', 'evasa')
    allora...
    ho nella tabella utenti registrato il mio nome.

    id= 1
    user= gino latino
    pass=25478

    nel record della tabella pratiche ho inserito id_user=1...invece dovevo inserire id_user=ginolatino?

    grazie in anticipo


  • Consiglio Direttivo

    @ginolatino said:

    nel record della tabella pratiche ho inserito id_user=1...invece dovevo inserire id_user=ginolatino?
    é giusto
    ma nella pagina di visualizzazione hai associato l'id dell'utente connesso alla variabile $id??
    Non so come tu abbia impostato la sessione, se nella sessioni ti "trasporti" l'id utente, una cosa del genere:
    [PHP]$id=$_SESSION['id'];[/PHP]


  • User

    guarda ti posto la pagina privata.php
    che farebbe parte dello script di thedarkita, ma modiificata con i tuoi script d'aiuto, eccola qui (mi sa che manca l'associazione dell'id utente?):

    privata.php

    [php]<?php
    // Includo la connessione al database
    require('config.php');
    // Se non è stata definita la variabile manda l'utente alla homepage
    if(!isset($_SESSION['login']))
    {
    header('Location: index.php');
    exit;
    }
    $sql="SELECT id, descrizione, stato FROM pratiche WHERE id_user='$id'"; //l'$id lo recuperi dalla sessione 😉
    $query = @mysql_query ($sql) or die (mysql_error());
    ?>
    <table border="1">
    <tr><th>Pratica n.</th><th>Descrizione</th><th>Stato</th></tr>
    <?
    while ($array= mysql_fetch_array($query)) // raccogliamo il risultato della query in un array e usciamo fuori tutto il suo contenuto a video
    {
    echo "<tr><td>".$array['id']."</td><td>".$array['descrizione']."</td><td>".$array['stato']."</td></tr>";
    }
    ?>
    </table>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Area privata</title>
    </head>
    <body>
    <br />
    <a href="logout.php">Logout</a><br />
    </body>
    </html>[/php]


  • Consiglio Direttivo

    @ginolatino said:

    (mi sa che manca l'associazione dell'id utente?)
    infatti 😉

    privata.php

    [php]<?php
    // Includo la connessione al database
    require('config.php');
    // Se non è stata definita la variabile manda l'utente alla homepage
    if(!isset($_SESSION['login']))
    {
    header('Location: index.php');
    exit;
    }
    $id=$_SESSION['login'];
    $sql="SELECT id, descrizione, stato FROM pratiche WHERE id_user='$id'"; //l'$id lo recuperi dalla sessione 😉
    $query = @mysql_query ($sql) or die (mysql_error());
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Area privata</title>
    </head>
    <body>
    <table border="1">
    <tr><th>Pratica n.</th><th>Descrizione</th><th>Stato</th></tr>
    <?
    while ($array= mysql_fetch_array($query)) // raccogliamo il risultato della query in un array e usciamo fuori tutto il suo contenuto a video
    {
    echo "<tr><td>".$array['id']."</td><td>".$array['descrizione']."</td><td>".$array['stato']."</td></tr>";
    }
    ?>
    </table>
    <a href="logout.php">Logout</a><br />
    </body>
    </html>[/php]Prova così 😉


  • User

    niente da fare, ho aggiunto la sessione, ma non mi mostra i risultati...

    senti stavo pensando che c'è un problema nella tabella del database:

    allora ricapitolando...

    ho creato questa tabella per le pratiche:

    CREATE TABLE `pratiche` (
    `id` int(11) NOT NULL auto_increment,
    `id_user` INT(11) NOT NULL,
    `descrizione` VARCHAR(255) NOT NULL,
    `stato` VARCHAR(10) NOT NULL,
    PRIMARY KEY (`id`)
    );
    
    

    poi in seguito al tuo consiglio ho aggiunto il record:

    INSERT INTO pratiche (id_user, descrizione, stato) VALUES ('1', 'Casellario giudiziale', 'evasa')
    

    Quindi, fin qui siamo al punto che:

    la pratica che si chiama casellario giudiziale e lo stato è evasa...

    nella tabella utenti risulta che lo username ginolatino è associato all'id=1...

    ...quando effettuo il login con ginolatino, mi dovrebbe venire fuori a video: casellario giudiziale = evasa...perchè nel record della tabella pratiche abbiamo aggiunto questo, giusto?

    mentre se effettuo il login con un altro utente dato che non è stato inserito nessun recor non dovrebbe venire fuori niente, giusto il ragionamento?

    ulteriormente:
    il login riconosce l'id 1 o username ginolatino?(quindi devo cambiare il record nella tabella pratiche da id_user >int >11 a id_user >varchar >25 e scrivere ginolatino??????

    ti prego fammi un pò di chiarezza!:?...se no altrimenti ti posto tutto lo script e le tabelle...è una minaccia!:giggle:


  • User

    ce l'ho fattaaaaaaaaaaaaaaaaaaaaaaa!!!!!!!!!!!!!!!!!!!!! 🙂

    sei un grande, grazie veramente!!!!!

    ho riportato la tabella pratiche come era prima, ossia con id_user=1, quindi quando mi loggo con ginolatino (id=1) mi viene fuori finalmente:

    pratica n.|descrizione |stato |
    1 |casellario giudiziale|evasa|

    ok, ora se non mi vuoi lasciare ti chiedo l'ultimo favore:

    vorrei far visualizzare al cliente (quello che mi è stato chiesto dall'avvocato) che si logga la lista delle sue pratiche esempio:

    |pratica numero|descrizione |stato |

    |1 |casellario giudiziale.doc|in lavorazione|
    |2 |denuncia.doc |lavorata |

    ma invece di visualizzare solo il testo ci dovrebbe essere un collegamento per aprire la pratica in formato .doc e leggerla

    se mi aiuti per questa cosa ti mando un camion di pizze margherite con spedizione veloce:yuppi:


  • Consiglio Direttivo

    Puoi aggiungere un campo alla tabella pratiche dove ti salvi il path del documento e quindi far visualizzare all'utente, nella tabella, il link al documento
    Due consigli:

    • fai gestire tutto con dei pdf non con dei .doc, .txt, .xls, etc etc.
    • dati i contenuti di questi documenti fossi in te starei molto attento a come/dove li salvi ne va del tuo lavoro e di quello dell'avvocato 😉

    In giro ci dovrebbero essere degli script per evitare i download 😉


  • User

    sì, in effetti stavo pensando che per la sicurezza dei dati, non è il caso creare dei collegamenti a dei file pdf, contenuti in delle cartelle...

    ma più che altro allora a questo punto sarebbe meglio far visualizzare a video una volta loggati, l'intera pratica che ne dici?


  • Consiglio Direttivo

    Se trovi uno script che ti blocca il DL dei file stai, più o meno, apposto.
    Senno' inserisci tutto su Db (volendo puoi usare la libreria FPDF per creare online dei PDF con i dati contenuti nel tuo Db 😉 )

    P.S. ah, in tutto questo ovviamente servirà una pagina ad accesso esclusivo dell'avvocato per caricare i record delle pratiche sul Db 😉 e poi metterei anche la tracciatura dei log degli utenti con tanto di IP ed altro 😉


  • User

    Sì in effetti mi sa che è la soluzione migliore...

    comunque in altra situazione meno delicata, volendo usare la soluzione del campo aggiunto nella tabella inserendo il path....

    la cartella si chiama pratiche, digitando ww.miosito/pratiche/pratica.pdf non si accede direttamente all'url?
    era questo che mio stavi dicendo con...

    @Samyorn said:

    Se trovi uno script che ti blocca il DL dei file stai, più o meno, apposto.


  • Consiglio Direttivo

    Si, praticamente tramite .htaccess blocchi il DL diretto, ed il Dl avverrà tramite uno script 😉

    Un qualcosa del genere almeno, ricordo di averlo visto tempo fa ma non l'ho usato 😉


  • ModSenior

  • User

    Ah, thank you, thedark...

    Molte grazie Samyor faccio un pò di prove e se ho bisogno, faccio un fischio 😉


  • User

    ciao samyor...
    ho creato un campo "pratiche" nella tabella "pratiche" e ho insreito il nome del pdf...pratica n.1.pdf

    ora il problema è che non riesco a far visualizzare a video il link, dopo il login dell'utente...come lo devo impostare nella pagina?

    ricordo la mia pagina privata.php:

    [php]<?php
    // Includo la connessione al database
    require('config.php');
    // Se non è stata definita la variabile manda l'utente alla homepage
    if(!isset($_SESSION['login']))
    {
    header('Location: index.php');
    exit;
    }
    $id=$_SESSION['login'];
    $sql="SELECT id, descrizione, stato FROM pratiche WHERE id_user='$id'"; //l'$id lo recuperi dalla sessione 😉
    $query = @mysql_query ($sql) or die (mysql_error());
    ?>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Area privata</title>
    </head>
    <body>
    <table width="972" border="1">
    <tr><th><div align="left"><u>Pratica</u></div></th><th><div align="left">Descrizione</div></th><th><div align="left">Stato</div></th></tr>
    <?
    while ($array= mysql_fetch_array($query)) // raccogliamo il risultato della query in un array e usciamo fuori tutto il suo contenuto a video
    {
    echo "<tr><td>".$array['id']."</td><td>".$array['descrizione']."</td><td>".$array['stato']."</td></tr>";
    }
    ?>
    </table>
    <p> </p>
    <p> </p>
    <p> </p>
    <p><a href="logout.php">Logout</a><br />
    </p>
    </body>
    </html>
    [/php]


  • Consiglio Direttivo

    [php]<?php
    // Includo la connessione al database
    require('config.php');
    // Se non è stata definita la variabile manda l'utente alla homepage
    if(!isset($_SESSION['login']))
    {
    header('Location: index.php');
    exit;
    }
    $id=$SESSION['login'];
    $sql="SELECT id, descrizione, stato, pratiche FROM pratiche WHERE id_user='$id'";
    $query = @mysql_query ($sql) or die (mysql_error());
    ?>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Area privata</title>
    </head>
    <body>
    <table width="972" border="1">
    <tr><th><div align="left"><u>Pratica</u></div></th><th><div align="left">Descrizione</div></th><th><div align="left">Stato</div></th></tr><tr><th>Visualizza</th></tr>
    <?
    while ($array= mysql_fetch_array($query))
    {
    echo "<tr><td>".$array['id']."</td><td>".$array['descrizione']."</td><td>".$array['stato']."</td><td><a href="".$array['pratiche']."">Apri</a></tr>";
    }
    ?>
    </table>
    <p> </p>
    <p> </p>
    <p> </p>
    <p><a href="logout.php">Logout</a><br />
    </p>
    </body>
    </html>
    [/php]
    Dovrebbe essere qualcosa del genere se non mi è sfuggito nulla
    Un consiglio, nel nome dei file non mettere spazi o altre robe del genere, magari chiamalo [id]
    [iduser] (per esempio la pratica 6 dell'utente 2 si chiamerà 6_2.pdf...poi fai te, ma non mettere spazi, è altamente sconsigliato 😉