- Home
- Categorie
- Coding e Sistemistica
- PHP
- Area riservata per ogni singolo utente!
-
...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
-
funzionaaaaa!!!!!!
Grazie veramente, sei stato un grande...non sarei riuscito a fare niente senza il tuo aiuto e sto imparando più così che con i tutorial!anche se ancora mi sfugge una cosina...
...non ho capito dove imposto il path del file, se è in un altra cartella...
cioè, mi ha funzionato il tutto perchè il pdf è nella stessa directory dello script php, ma se lo stesso pdf lo volessi mettere in una cartella chiamata pratiche, dove la imposto questa cosa?
non sono riuscito perchè non capisco quello slash al contrario nella stringa...sarebbe il backslash forse
-
@ginolatino said:
cioè, mi ha funzionato il tutto perchè il pdf è nella stessa directory dello script php, ma se lo stesso pdf lo volessi mettere in una cartella chiamata pratiche, dove la imposto questa cosa?
basta modificare dove andarlo a cercare
[php]echo "<tr><td>".$array['id']."</td><td>".$array['descrizione']."</td><td>".$array['stato']."</td><td><a href="pratiche/".$array['pratiche']."">Apri</a></tr>";[/php]> non sono riuscito perchè non capisco quello slash al contrario nella stringa...sarebbe il backslash forseYesse