Topolinux Forum

Versione completa: [PHP]
Sta attualmente guardando una versione leggera del Forum. Guarda la versione completa per una corretta formattazione.
Ciao a tutti. Come ben sapete sto creando un portale su linux dove troverete script,programmi,guide ecc... la mia intenzione era quella di farlo web2.0,ovvero che gli utenti potessero aggiungere contenuti. Ora cominciano i problemi. Scartando la soluzione delle e-mail,come fare per far inserire file????la risposta era nel PHP!!! Tutto contento ho comprato un ottimo libro (Apogeo Pocket,7,50 EURO) sull argomento. Il problema è che non ho capito se posso fare gli script PHP e poi metterli nel hosting di Aruba (quello che vorrei). Il mio dubbio è che serve un server costoso per far girare PHP. é vero??? Che devo fare???Ciao
No non serve un server costoso, però se implementi una roba simile devi essere davvero sicuro di saperla scrivere bene e di aver fatto i dovuti controlli.

La cosa peggiore di un sito è trovarsi 200 commenti linkanti siti porno o peggio mandati in automatico da bot che girano per la rete: ti serve comunque un controllo umano, o prima (invio messaggio -> approvazione -> pubblicazione) o dopo (invio messaggio -> pubblicazione -> eventuale rimozione).

Senza contare che se non fai i dovuti controlli sull'input puoi mettere a rischio il tuo sito e l'intero server.
Perfetto!Grazie tante!!!
Se ti interessa (e se non l'hai già vista) topolinux ha una rubrica professionale di php chiamata "Echo Feedback".
Nella prima puntata abbiamo discusso proprio di come filtrare l'input dell'utente, perché non ci si deve mai fidare dell'utente: devi sempre pensare che sia un cracker malvagio disonesto e un po' puzzolente... Mr. Green
Bella rubrica!!! Ho scoperto che nell' host di Aruba è presente l'opzione "mysql"(chiaramente la dovrò attivare). il costo è di 7EURO l'anno per 100MB max. Secondo te,per script,kernel,programmini ecc...basta???Posso copiare le cose che hanno messo gli utenti al di fuori di mysql???Ciè,posso farmi inviare uno script e tagliarmelo in un area diversa del sito???ciaociao
Non sono sicuro di aver capito cosa intendi.

Mysql è un database, serve per immagazzinare dati e renderli reperibili velocemente. Puoi fare ricerche, inserire e manipolare dati e altro molto rapidamente, ma devi scrivere TU un programma che si interfacci al mysql, perché a differenza di access di microsoft, mysql è un VERO database e non ha alcuna interfaccia grafica: è un server!

Quindi l'interfaccia te la devi scrivere in php, connettendoti al server mysql con nome e password, selezionando il db che vuoi utilizzare e poi operando sulle varie tabelle all'interno del db.

Per farti un esempio semplice: un sito con molti utenti potrebbe decidere di avere un database per nomi e password. Potremmo creare una tabella chiamata "utenti" le cui colonne sarebbero:
id (un contatore numerico)
nome (il nome utente)
password (la password)

A questo punto al login, una volta che l'utente ci ha inviato nome e password, noi ci connettiamo al server, selezioniamo il db che vogliamo e poi chiediamo qualcosa come:
SELECT * FROM utenti WHERE nome='nomeutente'

ovviamente al posto di nomeutente metteremo il nome inserito dall'utente. Con questa stringa preleviamo i dati dell'utente e poi potremo confrontare la password con quella inserita.

Avremmo anche potuto scrivere:
SELECT * FROM utenti WHERE nome='nomeutente' AND password='passwordutente'

in questo caso se uno dei due non corrispondesse il db non troverebbe alcun record e ci ritornerebbe un insieme vuoto.
Ma questo sistema non va mai utilizzato perchè è sensibile ad un attacco di tipo injection che permette di entrare anche senza sapere la password.

In generale quando si lavora con php e mysql occorre prendere tutte le precauzioni possibili (non si salvano le password nel db ma i loro hash, si filtra sempre l'input, si usa un utente speciale che abbia solo permesso in lettura al db, ecc) perchè questa accoppiata è potentissima ma molto molto soggetta da attacchi.

Se vuoi fare un db di articoli da visualizzare, sì mysql va bene, se vuoi memorizzare FILES dentro al db no... evita... mysql viene molto bene per dati semplici e testi ma non per files binari di grandi dimensioni.


Se vuoi un buon libro per iniziare ti consiglio "PHP 5 Guida Completa", è praticamente la bibbia: http://www.apogeonline.com/libri/9788850323043/scheda
Esatto,proprio ciò che intendo,io scrivo i vari listato PHP e li interfaccio con il server,in pratica faccio in modo che gli utenti possano spedire un file al server,aggiungere commenti ecc... Riguardo al libro,ti ringrazio molto,ma ho gia comprato PHP5 della Apogeo Pocket,collana con cui mi sono trovato molto bene. La mia domanda è: posso copiare il database(ed i file) da un'altra parte una volta finiti i 100MB???
Scusami,ho riletto bene ciò che avevi scritto ed ho capito meglio: quindi MySql serve solo per gli inserimenti di record. ma allora,dove vanno a finire i file che faccio spedire??In pratica,io vorrei fare in modo che chiunque volesse potrebbe inviare un file senza l'uso di e-mail. è possibile????Ciao,a presto!
URL di riferimento