- Home
- Categorie
- Coding e Sistemistica
- PHP
- Area riservata per ogni singolo utente!
-
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.
-
- devo creare tante tabella per quanti clienti ho?
- e se il cliente ha più pratiche?
- 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 campoindi 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
-
...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 TABLEpratiche
-
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
-
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')
-
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=25478nel record della tabella pratiche ho inserito id_user=1...invece dovevo inserire id_user=ginolatino?
grazie in anticipo
-
@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]
-
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]
-
@ginolatino said:
(mi sa che manca l'associazione dell'id utente?)
infattiprivata.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ì
-
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!
-
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
-
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
-
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?
-
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
-
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.
-
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
-
http://www.giorgiotave.it/forum/php-mysql/87179-proteggere-dei-file.html
può esservi utile...
-
Ah, thank you, thedark...
Molte grazie Samyor faccio un pò di prove e se ho bisogno, faccio un fischio
-
ciao samyor...
ho creato un campo "pratiche" nella tabella "pratiche" e ho insreito il nome del pdf...pratica n.1.pdfora 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]
-
[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