Newsgroup: it.comp.www.php
Titolo: [OT lughetto] Consiglio su come implementare procedura

Scusate se il post non è proprio IT, ma penso siate quelli più adatti a
 darmi un consiglio.
Stamattina mi è balenata un'idea che mi frullava per la testa già da un po'
di tempo, che mi piacerebbe mettere in piedi a tempo perso (si fa per dire),
sia per me stesso che per fare bella figura.
Questa cosa la vorrei fare con PHP+MYSQL, che so usare decentemente.
L'obiettivo finale è fare in modo che ogni nostro cliente si possa scaricare
(in formato txt, per adesso) un listino prezzi personalizzato, quindi con i
prezzi già scontati.
Per adesso tralascio il discorso prezzi, che comunque penso di poter gestire
agevolmente (tabella listino aziendale unico + tabella sconti clienti +
procedura di calcolo).
Il problema grosso è che, per come è strutturato il nostro gestionale e
soprattutto per il gran numero di articoli e di clienti presenti (più di
50.000 e di 2.000), non posso pensare di preparare un file per ogni cliente.
Oltretutto ci appoggiamo ad un provider esterno, per cui uploadare e
mantenere tutti questi file richiederebbe un dispendio notevole, sia di
tempo che di soldi. Inoltre questa cosa genera ulteriori problemi (non ho il
controllo completo della macchina con tutte le conseguenze del caso).
Ora, le soluzioni non mi sembrano tantissime (o almeno, io non ci arrivo
;) ).
L'unica plausibile che mi è venuta in mente è questa: il cliente fa il login
e richiede il listino; a questo punto parte una procedura php che, leggendo
il db, scrive su un file chiamato, per esempio, [codcliente].txt, e quando
finisce manda una mail al cliente che il listino è pronto, con il link per
scaricarlo (mandarlo via mail non mi sembra il caso visto che zippato minimo
verrà 5 o 6 mega).
Però ci sono almeno due punti non belli:
1) questa procedura di generazione file non graverà troppo sul server del
provider? potrebbe farmi storie?
2) una volta che il file è stato generato, rimarrà lì per sempre, occupando
spazio sul server; sarebbe l'ideale che, dopo un tot di tempo, venisse
cancellato, ma non credo che si possa fare agevolmente. Soprattutto, credo
che lo debba fare il provider stesso.
A questo punto vorrei sapere se qualcuno di voi ha già affrontato un
problema simile e se sì, se ha voglia di condividere con me come ha fatto...
Grazie anche solo per aver letto :)
-- 
Jax
====Le cose migliori si ottengono solo con il massimo della passione.
(Johann Wolfgang Goethe)

 agevolmente. Soprattutto, credo che lo debba fare il provider stesso.
Questo e' semplice, fai una procedura che gira una volta al giorno (ad
esempio) e rimuovoe tutti i file piu' vecchi di x giorni.
-- 
I am what I am, I do what I can
Sei un newbie? Leggi questo 
http://url.repository.biz/go/3C
Vuoi supportarmi? 
http://url.repository.biz/go/3E
Do. Or do not. There is not try.

 che lo debba fare il provider stesso.
No, i file che crei tramite php li puoi anche cancellare (a meno di 
configurazioni braindead del provider). Puoi fare delle routine di 
"garbage collection" che fanno pulito di quando in quando.
bye!
-- 
Fabrizio "Hermooz" Ermini

 "garbage collection" che fanno pulito di quando in quando.
So che si possono cancellare, ma come farlo di quando in quando *in php*?
Comunque dovrei farlo a mano e non in automatico... O mi sfugge qualcosa...?
-- 
Jax
====
La salute è quella cosa che ti fa sentire che la stagione in cui ti
trovi in quel momento è la più bella dell'anno.

 Comunque dovrei farlo a mano e non in automatico... O mi sfugge qualcosa...?
Non si può fare in automatico "vero", ma si può simulare abbastanza 
efficacemente. E' sufficiente inserire in un certo numero di pagine 
(anche in tutte al limite, o in un file in "automatic prepend") una 
chiamata ad una funzione che verifica certe condizioni e poi fa la 
pulizia in questione. Le condizioni possono essere un test statistico 
(ad es. random<0.2), un test sull'orario-data, ecc.; se le operazioni di 
garbage collection portano via poco tempo possono anche essere fatte 
tutte le volte.
In pratica se nessun utente chiama nessuna pagina, ovviamente la routine 
non gira mai. Ma se il sito è sottoposto ad un utilizzo medio 
significativo, ottieni comunque il risultato prefisso.
-- 
Fabrizio "Hermooz" Ermini

 significativo, ottieni comunque il risultato prefisso.
Non ci avevo pensato... è geniale, grazie :)
-- 
Jax
====
Attraverso l'amore ogni cosa è per sempre.

 
ciao
Alesi_27

 loro listini potenzialmente visibili a chiunque ?
Dipende da come lo rende scaricabile.


 
Certo, dipende, ma entrano in gioco problematiche non proprio semplici 
da risolvere.
ciao
Alesi_27

 quando scarichi un file.
Innanzitutto grazie per avermi fatto notare che il file sarebbe a
disposizione di chiunque: era una cosa a cui proprio non avevo pensato.
Sulla tua soluzione ci penserò sopra bene, generare al volo una "pagina txt"
è allettante dal mio punto di vista perché è semplice; per adesso ho solo un
paio di perplessità.
La prima è pratica e sulla dimensione del listino: generandolo
dinamicamente, comunque penso che verrebbe sui 6 mega... e una pagina,
seppur tutta di testo, di 6 mega non credo sia il massimo per un browser. La
seconda è stilistica: non mi piace molto l'idea di far vedere una sequenza
immonda di caratteri apparentemente senza senso, per poi dover lasciare
all'utente (il livello oltretutto nel mio caso è molto basso) il compito di
aspettare che finisca di caricare tutto e poi salvarselo a mano in un file.
Penso che la maggior parte della gente si aspetti di dover *scaricare*
qualcosa nel più classico dei modi; uno resterebbe quantomeno interdetto di
fronte ad un comportamento del genere, non credi?
Oppure, di nuovo, mi sfugge qualcosa?
-- 
Jax
====
Ogni uomo nasce gemello, colui che è e colui che crede di essere.
(Martin Kessel)

 listino.
Mi state dando un sacco di idee, ho solo l'imbarazzo della scelta :D
Effettivamente far fare tutto al mio server non è affatto una cattiva idea,
anzi... avrei il controllo completo di tutto il processo, e sarei sganciato
da upload, aggiornamenti, cambi di dominio (c'è pure quello in ballo)...
ganzo.
A questo punto, se non è troppo grande, invio direttamente il listino via
mail...
L'unica pecca è che con PHP in questo caso c'è ben poco da fare, ma per
fortuna c'è sempre il fido Delphi a darmi una mano... oltretutto non sei un
delphista anche tu? :)
Direi che la tua è la strada che inizierò a percorrere.
Grazie a tutti, veramente.
-- 
Jax
====
"La bomba al centro commerciale finlandese e' stata costruita su Internet"
titolo di una diffusa newsletter

 oltretutto non sei un delphista anche tu? :)
Si.


 semplici da risolvere.
Quali sarebbero queste problematiche?
A parer mio un semplice sistema a one time pad va benissimo, e'
efficiente e sicuro quanto basta.
-- 
I am what I am, I do what I can


 notepad).
Mysql. Non hai tutti i torti... anche se con delphi mi destreggio molto
molto meglio... però php ha tutte quelle belle funzioncine di gestione
stringhe che invidio tanto :)
-- 
Jax
====
La facoltà di ingannare se stesso, questo è il requisito essenziale per
chi voglia guidare gli altri. (Tomasi di Lampedusa)

 efficiente e sicuro quanto basta.
Se magna?
-- 
Jax
====
Uno sciocco e il suo denaro condividono lo stesso materasso.

 Se magna?
Cioe'?
-- 
I am what I am, I do what I can
Sei un newbie? Leggi questo 
http://url.repository.biz/go/3C
Vuoi supportarmi? 
http://url.repository.biz/go/3E


 Cioe'?
Non so cos'è :D
-- 
Jax
====
Il senso della storia si conquista facendone un po'. (Antonio Baldini)

 Non so cos'h :D
Un sistema che permetta l'autenticazione tramite una password valida
solamente per una volta.
Nel tuo caso specifico mandi all'utente un link del tipo:
http://www.tuosito.it/b95f6e680daa39e2f0c2d46e15eb56f8/listino.txt
Tramite mod_rewrite (o tecniche simili) peschi la password, la
convalidi nel DB, la impsoti come gia' utilizzata e restituisci
all'utente il file.
In questo modo anche se l'utente invia, volontariamente o meno, ad
altri il link questo non sara' piu' utilizzabile.


 solamente per una volta.
Penso che ti contatterò in futuro... sono molto carente in queste cose, e mi
sarebbero utili. Posso?
-- 
Jax
====
Genio è chi crea concordanza tra il mondo in cui vive ed il mondo che
vive in lui. (Hugo Von Hofmansthal)

 cose, e mi sarebbero utili. Posso?
Sull'ng, si.


 Sull'ng, si.
Resta da decidere su quale, visto che parlare di autenticazione e protezione
su web non mi sembra propriamente IT qua ;)
-- 
Jax
====
Fino al giorno della sua morte, nessun uomo puņ essere sicuro del suo
coraggio. (Jean Anouilh)

 protezione su web non mi sembra propriamente IT qua ;)
Se lo implementi in PHP e' IT.


 
puoi benissimo far scaricare il file invece che visualizzarlo, sempre 
creandolo al volo, agendo su header
ciao
Alesi_27

 efficiente e sicuro quanto basta.
sicuramente puň andar bene
ciao
Alesi_27