Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Sony INZONE H6 Air: il primo headset open-back di Sony per giocatori
Sony INZONE H6 Air: il primo headset open-back di Sony per giocatori
Il primo headset open-back della linea INZONE arriva a 200 euro con driver derivati dalle cuffie da studio MDR-MV1 e un peso record di soli 199 grammi
Nutanix cambia pelle: dall’iperconvergenza alla piattaforma full stack per cloud ibrido e IA
Nutanix cambia pelle: dall’iperconvergenza alla piattaforma full stack per cloud ibrido e IA
Al .NEXT 2026 di Chicago, Nutanix ha mostrato quanto sia cambiata: una piattaforma software che gestisce VM, container e carichi di lavoro IA ovunque, dall’on-premise al cloud pubblico. Con un’esecuzione rapidissima sulle partnership e sulla migrazione da VMware
Recensione Xiaomi Pad 8 Pro: potenza bruta e HyperOS 3 per sfidare la fascia alta
Recensione Xiaomi Pad 8 Pro: potenza bruta e HyperOS 3 per sfidare la fascia alta
Xiaomi Pad 8 Pro adotta il potente Snapdragon 8 Elite all'interno di un corpo con spessore di soli 5,75 mm e pannello LCD a 144Hz flicker-free, per un tablet che può essere utilizzato con accessori dedicati di altissima qualità. Fra le caratteristiche esclusive, soprattutto per chi intende usarlo con la tastiera ufficiale, c'è la modalità Workstation di HyperOS 3, che trasforma Android in un sistema operativo con interfaccia a finestre
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 16-08-2007, 17:25   #1
nazkul
Member
 
Iscritto dal: Sep 2004
Messaggi: 44
[JSP] applicazioni web e i database

Ciao, nella applicazione web che sto realizzando memorizzo dei dati (nome e cognome di un login) su un database mysql. Il dubbio che ho è che questa applicazione verrà consegnata al docente del corso, che poi verificherà se il tutto funziona.
Quando il docente lo testerà sul suo computer non avrà sicuramente lo stesso nome utente e password usati da me nel codice Java per creare il database, inserire dati, chiudere la connessione ecc... quindi mi domando come dovrei fare per far funziona rel'applicazione anche su altri computer. Per caso nelle specifiche devo mettere che per l'uso è necessario oltre ad aver installato ovviamente mysql, che deve essere creato un utente "tizio" con password"pwd" per esempio?

Il database non va inserito nel file web.xml? Cioè, nel mio caso all'inizio il database può essere anche vuoto, ma se fosse con alcuni elementi, come dovrebbe essere consegnato il database? Io no credo che vada nel .war, ma non ho affatto le idee chiare.

Ringrazio anticipatamente chiunque mi possa fornire qualche consiglio.
nazkul è offline   Rispondi citando il messaggio o parte di esso
Old 17-08-2007, 14:58   #2
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Puoi dare un dump al tuo professore per creare sia utente che tabelle, in questo modo ci penserà il professore a creare il tutto.
In alternativa puoi creare una piccola applicazione che permette di configurare le tua applicazione ed immettere i dati del server database (indirizzo, username e password). Ovviamente l'applicazione si occuperà di scrivere questi dati nel file di configurazione della tua applicazione e di creare le tabelle con i dati di partenza.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 17-08-2007, 20:07   #3
nazkul
Member
 
Iscritto dal: Sep 2004
Messaggi: 44
Ciao, grazie per la risposta, almeno per questo aspetto ho le idee un po più chiare.
Ma per quanto riguarda l'applicazione nel suo complesso, devo dichiarare da qualche parte l'uso del database? Nel senso: io in giro leggo che bisogna inserire del codice xml sul server.xml di Tomcat, poi leggo che va metto del codice anche sul deployment descriptor ( il web.xml ); poi leggo del Connector/J che da qualche parte va indicato che si deve usare com.sql.jdbc.Driver.
Premetto che come applicazione stand-alone l'accesso al database mi riesce, poi però se passo a fare l'applicazione web, pur mettendo anche com.sql.jdbc.Driver nella stessa posizione scelta nell'esempio stand-alone, con l'applicazione web non fa, la console di Eclipse dice che si pianta su quel driver.
Io non so assolutamente dove sbattere la testa. Se qualcuno mi sa indicare un filo logico da seguire gliene sarei grato.
nazkul è offline   Rispondi citando il messaggio o parte di esso
Old 17-08-2007, 20:08   #4
morskott
Member
 
Iscritto dal: Jul 2005
Messaggi: 291
e se crei un file xml con i dati di configurazione?
Del tipo
Codice:
<?xml version="1.0" encoding="UTF-8"?> 
<DBConf>
<driver>Mio.Driver</driver>
<url>jdbc:myURL</url>
<usn>cicillo</usn>
<psw>cacace</psw>
</DBConf>
e poi con un (DOM/SAX)parser te li parsi nel ConnectionManager, che è sulla falsa riga di
Codice:
public class ConnectionManager{
private static ConnectionManager conman=null; //usato per il pattern Singleton

private ConnectionManager(){
SqlConfig pars=new SqlConfig(new File("mioFile.xml")); //ho supposto che la classe XMLParser (che ti devi creare tu) prenda come parametro il file XML
Class.forName(pars.getDriver());
}

public static ConnectionManager getConnectionManager(){
if (conman==null) conman=new ConnectionManager(); //inizializzazione lazy, per caricare il driver sql il piu tardi possibile
return conman;
}

public syncronized Connection getConnection(){ //metodo syncronized per gestire la concorrenza di piu thread sull'unica istanza del ConnectionManager
SqlConfig pars=new SqlConfig(new File("mioFile.xml"));
return DriverManager.getConnection(pars.getURL(),pars.getUserName(),pars.getPassword());
}

public syncronized void close(Connection conn){ //Metodo che puo sembrare inutile (puoi fare un conn.close() anche fuori dal ConnectionManager), ma che rende banale l'estenzione usando un pooling di connessioni a disposizione
conn.close();
}
}
dove XMLParser è il parser che ti sei creato e il ConnectionManager è facilissimo estenderlo inserendoci la gestione di pooling di connessioni.
Attenzione, non mi son preoccupato di gestire le dovute eccezioni.

Ultima modifica di morskott : 18-08-2007 alle 17:28.
morskott è offline   Rispondi citando il messaggio o parte di esso
Old 17-08-2007, 20:31   #5
nazkul
Member
 
Iscritto dal: Sep 2004
Messaggi: 44
Ciao, grazie anche a te per l'idea; è che io di parser non ne so nulla, purtroppo ho una scadenza per la consegna e quindi mi tocca far leva sulle cose che so "meno peggio"
Casomai stavo pensando se poteva essere meglio un doc xml al posto del database perché da quello che leggo in giro mi pare di dover fare una montagna di operazioni per far funzionare il tutto, anche se credo che essendo comunque dei sistemi di persistenza dati più o meno vadano fatti presente lo stesso in file tipo web.xml.
Purtroppo mi hanno parlato solo di pattern come mvc, dei filter, del front controller, tutti concetti, tutte scelte progettuali, poi per quanto riguarda l'implementazione non so da che parte farmi.
Grazie mille.
nazkul è offline   Rispondi citando il messaggio o parte di esso
Old 17-08-2007, 21:04   #6
morskott
Member
 
Iscritto dal: Jul 2005
Messaggi: 291
Allora, ti posto i sources dei parser che ho fatto io, il mio file xml è del tipo
Codice:
<?xml version="1.0"?>
<sqlConfig>
	<driver driverName="org.apache.derby.jdbc.EmbeddedDriver" />
	<connectionUrl url="jdbc:derby:#DB_NAME#" />
	<creationUrl creationUrl="jdbc:derby:#DB_NAME#;create=true" />
</sqlConfig>
e i 2 file di parsing sono
Codice:
import java.io.*;
import org.w3c.dom.*;
import org.xml.sax.SAXException;
import javax.xml.parsers.*;

public class SqlConfig {
    private String url;
    private String driver;
    private String creationUrl;

    public SqlConfig(String xmlFile){
        XMLParser parser=new XMLParser();
        SAXParserFactory factory = SAXParserFactory.newInstance();
        SAXParser saxParser;
        try {
            saxParser = factory.newSAXParser();
            saxParser.parse( new File(xmlFile), parser );
            this.url=parser.getUrl();
            this.driver=parser.getDriver();
            this.creationUrl=parser.getCreationUrl();
        } catch (SAXException ex) {
            ex.printStackTrace();
        } catch (ParserConfigurationException ex) {
            ex.printStackTrace();
        }catch (IOException ex) {
            ex.printStackTrace();
        }
    }

    public String getDriver(){
            return this.driver;
    }

    public String getUrl(){
            return this.url;
    }
    
    public String getCreationUrl(){
        return this.creationUrl;
    }
}
e
Codice:
public class XMLParser  extends DefaultHandler{
    private String driver="";
    private String url="";
    private String creationUrl="";

    public void startElement(String uri,String localName,String qName,Attributes attrs) throws SAXException{
            if (qName.equals("driver")){
                if (attrs != null) {
                for (int i = 0; i < attrs.getLength(); i++) {
                    String aName = attrs.getLocalName(i); // Attr name
                    if ("".equals(aName)) aName = attrs.getQName(i);
                    if (aName.equals("driverName"))
                            this.driver=attrs.getValue(i);
                }
            }
            }else{
                    if (qName.equals("connectionUrl")){
                            if (attrs != null) {
                                for (int i = 0; i < attrs.getLength(); i++) {
                                    String aName = attrs.getLocalName(i); // Attr name
                                    if ("".equals(aName)) aName = attrs.getQName(i);
                                    if (aName.equals("url"))
                                            this.url=attrs.getValue(i);
                                }
                    }
                    }else{
                            if (qName.equals("creationUrl")){
                                if (attrs != null) {
                                    for (int i = 0; i < attrs.getLength(); i++) {
                                        String aName = attrs.getLocalName(i); // Attr name
                                        if ("".equals(aName)) aName = attrs.getQName(i);
                                        if (aName.equals("creationUrl"))
                                                this.creationUrl=attrs.getValue(i);
                                    }
                                }
                            }else{
                                    //do nothing
                            }
                    }
            }	
    }

    public String getDriver(){
        return this.driver;
    }

    public String getUrl(){
        return this.url;
    }
    
    public String getCreationUrl(){
        return this.creationUrl;
    }
}
naturalmente devi modificare il nome dei parametri (non è che io sia granchè come coder di parsers, sono un autodidatta in parsing XML, se cerchi in rete ne troverai 3000 fatti meglio, cmq è una buon punto di partenza), io dal ConnectionManager chiamo la classe SqlConfig che a sua volta usa la classe XMLParser (forse un livello di indirezione di troppo).

Ultima modifica di morskott : 17-08-2007 alle 21:07.
morskott è offline   Rispondi citando il messaggio o parte di esso
Old 18-08-2007, 08:18   #7
nazkul
Member
 
Iscritto dal: Sep 2004
Messaggi: 44
Dunque, grazie per il codice.
Vediamo un po, perché sono testone a capire
Questi 3 file .xml mi servono per trasportare un db su un'altra postazione giusto? servono per ricreare stessa situazione che nel mio pc, compreso utente e password che poi a livello di codice Java servono per accedere alla base di dati. Ma dove dovrei mettere questi 3 file? Mi vanno dentro il progetto immagino, ma c'è una collocazione obbligatoria? tipo il file web.xml deve stare in un punto ben preciso, roba così intendo.
E come si lanciano? cioè da come la capisco io questi dovranno essere i primi a essere eseguiti.
E il db mysql dove viene gestito nel tuo codice? comunque devo fare un file dump?
Grazie per i consigli e la pazienza.
nazkul è offline   Rispondi citando il messaggio o parte di esso
Old 18-08-2007, 08:31   #8
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Ad occhio mi sembra che serva solamente a trasportare le impostazioni di connessione
Ma MySQL nel tuo progetto è un requisito oppure hai scelto te di utilizzarlo ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 18-08-2007, 09:05   #9
nazkul
Member
 
Iscritto dal: Sep 2004
Messaggi: 44
No non è un requisito, è una scelta perché il progetto in pratica consiste in un gioco, di cui mi sono state fornite le librerie, e io devo pensare a tutto ciò che lo fa funzionare se fosse un'applicazione web; siccome simulo una specie di registrazione dei nuovi utenti e poi ho una pagina di login, mi serve un sistema di persistenza dati e avevo pensato di utilizzare mysql, tanto da quello che ho capito o mysql o documento xml.
nazkul è offline   Rispondi citando il messaggio o parte di esso
Old 18-08-2007, 09:14   #10
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Ci sono anche altre alternative...ad esempio un JavaDB embedded.
In questo modo sarà la tua web application a far partire il database.

Il problema principale di MySQL è che non è detto che il tuo prof abbia un server mysql per provarlo
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 18-08-2007, 09:29   #11
nazkul
Member
 
Iscritto dal: Sep 2004
Messaggi: 44
Si ma ha spiegato che basta mettere nella relazione tutto ciò che è necessario per far funzionare l'applicazione, poi ci pensa lui a metterlo se non ce l'ha. Almeno da questo punto di vista non ci sono vincoli
nazkul è offline   Rispondi citando il messaggio o parte di esso
Old 18-08-2007, 09:33   #12
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Allora va benissimo
Gli fai il dump delle tabelle ed in cima ci metti anche il comando GRANT per creare l'utente.
Ovviamnete gli dici di importare il dump come root.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 18-08-2007, 10:27   #13
nazkul
Member
 
Iscritto dal: Sep 2004
Messaggi: 44
OK, ma per quanto riguarda dover dire al deployment descriptor che c'è un database, poi ho letto in modo un po sintetico che pare vada impostato anche server.xml di tomcat per usare il db, sono cose che ho interpretato male oppure vanno fatte? o basta fare una classe di accesso al db che usi connector/J e poi il dump per l'esportazione?
Il dubbio mi è venuto in quanto a fare un normale programmino java che usa il connector/J ha funzionato, adesso mi segnala errore all'istruzione Class.forName(com.sl.jdbc.Driver).
Il connector l'ho messo nel progetto, anche se dubito che a questo punto sia nel path giusto, però non fa. Da qui mi è venuto da pensare che vadano fatti ulteriori passaggi.
Grazie mille
nazkul è offline   Rispondi citando il messaggio o parte di esso
Old 18-08-2007, 12:23   #14
morskott
Member
 
Iscritto dal: Jul 2005
Messaggi: 291
Il file xml serve per poter cambiare il db senza dover ricompilare l'applicazione, in pratica gli dici sia che db utilizzare, tramite il driver, l'url con il quale connettersi e le credenziali d'accesso. Poi naturalmente nella macchina del tuo prof ci dev'essere un'istanza del DB con le tabelle create e accessibili dalle credenziali fornite.
morskott è offline   Rispondi citando il messaggio o parte di esso
Old 18-08-2007, 13:35   #15
nazkul
Member
 
Iscritto dal: Sep 2004
Messaggi: 44
Ciao, dunque facendo un po il punto della situazione, che sono duro a capire, come il granito
Io ho trovato questa roba:

http://www.mokabyte.it/2005/03/j2ee-datasources.htm

dove in pratica, con troppa sintesi in rapporto a quanto ne so, pare sia detto che bisogna configurare Tomcat per usare il mio database, e poi devo anche mettero mano al file web.xml della mia applicazione.

La via che mi indichi tu morskott mi pare di capire che permetta di scavalcare questa procedura, correggimi se mi sto sbagliando.
Quello che non capisco è:
io mi trovo con 3 file .xml come quelli che mi hai passato te, ovviamente correggendo nome utente, password ... per adattarli ai miei parametri di configurazione.
Ma dove li metto questi 3 file xml? e come faccio in modo che siano diciamo letti da non so chi in modo tale che facciano il loro lavoro?

Scusate se sono un po noioso, progettare così con la sola arte dell'arrangiarsi è veramente brutto, purtroppo se non chiedo non so da che parte mettere le mani per portare in fondo questo progetto.
Grazie per la pazienza
nazkul è offline   Rispondi citando il messaggio o parte di esso
Old 18-08-2007, 13:59   #16
morskott
Member
 
Iscritto dal: Jul 2005
Messaggi: 291
Si, la mia soluzione andrebbe a scavalcare quella procedura, anche perchè non ne conoscevo l'esistenza .
La soluzione che mi hai linkato è meglio della mia, e anche un po piu semplice, e presuppone una modifica ai file di configurazione dell'application server non troppo difficile.
La mia soluzione è un po piu "fatta in casa", in cui per ottenere un oggetto Connection hai bisogno di un ConnectionManager che a sua volta ha bisogno dei parametri di accesso al DB (è lui, e solo lui, che sa come accedere al db), queste info possono essere hard coded (cioè messe direttamente nel codice, e ha come vantaggio la semplicità ma come svantaggio che in caso di cambio del db o di credenziali devi cambiare il sorgente e ricompilare), oppure possono esser messi in un file di configurazione e parsati per passarli al ConnectionManager (leggermente piu complesso da implementare ma portabilità su diversi DB molto superiore).
Per "far trovare" il file xml dall'applicazione potresti fare una
Codice:
System.out.println((new File(.)).getPath())
per sapere la dir di lavoro per poi mettere il file là e ripescarlo con un
Codice:
File confFile=new File("mioFile.xml")
(naturlamente la System.out la fai solo la prima volta (per "debug"), poi il percorso (relativo) sarà sempre quello).

Anch'io ho dovuto praticare la sana arte dell'arrangiarsi quando è toccato per il mio progetto!!!!!
morskott è offline   Rispondi citando il messaggio o parte di esso
Old 18-08-2007, 14:40   #17
nazkul
Member
 
Iscritto dal: Sep 2004
Messaggi: 44
La soluzione del link che ho inserito però impone che in qualsiasi macchina verrà esportato il mio progetto, dovrà essere modificato il file server.xml di tomcat giusto?

Se scegliessi la tua soluzione, quelle 2 righe di codice che hai inserito chi le dovrebbe fare?
Ho una servlet ServletNewUser.java, che delega il lavoro al javaBeanNewUser che per inserire un nuovo utente con i valori ricevuti dalle form della pagina jsp delega il tutto a un oggetto della classe ElaboraDB.java. Credo che sia quest'ultima classe a dover fare ciò giusto?
Grazie
nazkul è offline   Rispondi citando il messaggio o parte di esso
Old 18-08-2007, 17:26   #18
morskott
Member
 
Iscritto dal: Jul 2005
Messaggi: 291
Allora, uno scetch di "ElaboraDB.java" potrebbe essere (faccio il caso di un inserimento di un utente)
Codice:
public class ElaboraDB{

	//suppongo che la tabella utente abbia come campi: UserName, Password, nome e cognome
	public boolean store(Utente ut) throws SQLException{
		ConnectionManager conman=ConnectionManager.getConnectionManager(); //prendo l'istanza del ConnectionManager per prendermi la connessione
		Connection conn=conman.getConnection(); //chiedo al ConnectionManager di darmi una connessione, io ElaboraDB non so come faccia
		//con la connessione che mi son preso inserisco nel db la tupla relativa all'utente
		PreparedStatement ps=conn.prepareStatement("insert into utente values(?,?,?,?)");
		ps.setString(1,ut.getUserName());
		ps.setString(2,ut.getPassword());
		ps.setString(3,ut.getNome());
		ps.setString(4,ut.getCognome());
		int ris=ps.executeUpdate();
		ps.close();
		conman.close(conn); //dico al ConnectionManager che la Connection non mi serve piu
		return ris==1;
	}
}
e il ConnectionManager è il pezzo di codice che ti ho scritto sopra.

Poi metti il file xml con la configurazione nella dir che ti dice il System.out e dovresti essere a posto.

Ultima modifica di morskott : 18-08-2007 alle 17:29.
morskott è offline   Rispondi citando il messaggio o parte di esso
Old 19-08-2007, 10:35   #19
nazkul
Member
 
Iscritto dal: Sep 2004
Messaggi: 44
Ciao, non capisco i significati dei tag url nel documento xml; avevo pensato di fare il mio file Dati.xml in questo modo:

Codice:
<?xml version="1.0"?>
<sqlConfig>
   <driver driverName="com.sql.jdbc.Driver" />
   <connectionUrl url="jdbc:mysql://localhost/gioco" />
   <creationUrl creationUrl="jdbc:mysql://localhost/gioco;create=true" />
   <usn>nomeUtente</usn>
   <psw>password</psw>
</sqlConfig>
Il driver è quello di Connector/J, e nell'applicazione stand alone avevo usato quella stringa e funzionava per cui sono tranquillo almeno lì.
connectionUrl e creationUrl avevo pensato di farli in quel modo ma non sono affatto sicuro; erano più o meno le stringhe usate nell'applicazione stand alone. Che mi consigli?
Grazie
nazkul è offline   Rispondi citando il messaggio o parte di esso
Old 19-08-2007, 17:20   #20
morskott
Member
 
Iscritto dal: Jul 2005
Messaggi: 291
la "creationUrl" la usavo io per creare un db usando il db embedded in java, non credo ti serva per il progetto (il db te lo dovresti già creare prima della prima esecuzione), il tag connectionUrl è l'url che passi al DriverManager per farti dare l'oggetto Connection "DriverManager.getConnection(url,usn,psw)".
Per l'usn e psw nel formato che hai usato pur essendo corretto al 100% per l'xml il codice del mio parser non lo parsa (non so io come farlo, non è che non si puo fare), dovresti mettere "<usn user="blah" />" e "<psw pass="bleh" />" oppure migliorare (e passarmelo) il parser.
morskott è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Sony INZONE H6 Air: il primo headset open-back di Sony per giocatori Sony INZONE H6 Air: il primo headset open-back d...
Nutanix cambia pelle: dall’iperconvergenza alla piattaforma full stack per cloud ibrido e IA Nutanix cambia pelle: dall’iperconvergenza alla ...
Recensione Xiaomi Pad 8 Pro: potenza bruta e HyperOS 3 per sfidare la fascia alta Recensione Xiaomi Pad 8 Pro: potenza bruta e Hyp...
NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abbiamo provato il tris d'assi di NZXT NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abb...
ASUS ROG Swift OLED PG34WCDN recensione: il primo QD-OLED RGB da 360 Hz ASUS ROG Swift OLED PG34WCDN recensione: il prim...
Ecovacs presenta la gamma 2026: paviment...
Efficienza energetica fino a 2.000 volte...
Lenovo 360: il programma di canale dell'...
Appena 10.000 qubit per rompere la critt...
Analisi dei transistor durante il funzio...
Attacco informatico a Booking.com: espos...
A quattro mesi dal divieto dei social ne...
NVIDIA GeForce RTX 5060 e 5060 Ti: in ar...
Rebellions, Arm e SK Telecom, nuova alle...
Modernizzazione delle app: Red Hat OpenS...
Nel mirino di Google c'è il back ...
PRAGMATA in bundle con GeForce RTX 5000:...
Le novità MOVA per il 2026: robot e impi...
Windows, stop all'attivazione telefonica...
ASUS porta la serie TUF nel formato Mini...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 06:19.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v