Wizard per fare creare pagine ai visitatori

di il
4 risposte

Wizard per fare creare pagine ai visitatori

Salve a tutti,

non sono abilissimo in php...in genere utilizzo script già pronti....volevo creare un wizard per fare pubblicare file (ebook) ai visitatori sullo stile di quanto fa lulu.com a questo indirizzo:

http://www.lulu.com/author/wizard/index.php?fWizard=ebook&cid=it_ebk_b1

voglio fare esattamente la stessa cosa....è possibile???

grazie mille a tutti!

4 Risposte

  • Re: Wizard per fare creare pagine ai visitatori

    Ciao,
    non so quanto convenga avventurarsi in imprese del genere senza una certa conoscenza del linguaggio... posso darti un'idea, a grandi linee, di come fare, ma per il codice o ne trovi uno bell'e pronto, oppure ti consiglio di assumere uno sviluppatore.

    Il programma dovrebbe fare le seguenti cose, in sequenza:
    1. Input dell'utente tramite form di dati testuali (titolo, autore, etc)
    2. Elaborazione, eventuale purificazione ed inserimento di un nuovo record in un database
    3. Input dell'utente del singolo file
    4. Verifiche sul file caricato, rielaborazione se necessario, salvataggio del file ed aggiornamento del record registrato al passo 2 con il richiamo al file fisico

    Al termine si dovrebbe disporre di una tabella database contenente un record per ogni documento creato ed una cartella sul disco rigido contenente i file caricati.

    Spero di esserti stato d'aiuto ciao!
  • Re: Wizard per fare creare pagine ai visitatori

    Grazie! provo a scrivere i singoli passi!!!! vediamo che combino!!!!!
  • Re: Wizard per fare creare pagine ai visitatori

    IroPicci ha scritto:


    Ciao,
    non so quanto convenga avventurarsi in imprese del genere senza una certa conoscenza del linguaggio... posso darti un'idea, a grandi linee, di come fare, ma per il codice o ne trovi uno bell'e pronto, oppure ti consiglio di assumere uno sviluppatore.

    Il programma dovrebbe fare le seguenti cose, in sequenza:
    1. Input dell'utente tramite form di dati testuali (titolo, autore, etc)
    2. Elaborazione, eventuale purificazione ed inserimento di un nuovo record in un database
    3. Input dell'utente del singolo file
    4. Verifiche sul file caricato, rielaborazione se necessario, salvataggio del file ed aggiornamento del record registrato al passo 2 con il richiamo al file fisico

    Al termine si dovrebbe disporre di una tabella database contenente un record per ogni documento creato ed una cartella sul disco rigido contenente i file caricati.

    Spero di esserti stato d'aiuto ciao!
    sono riuscito a fare quel che mi hai detto (solo che il file non crea una cartella ma va nel database)...ecco il codice
    <?php  
    if(!isset($_POST)) $_POST = $HTTP_POST_VARS; $self = isset($_SERVER) ? $_SERVER["PHP_SELF"] : $HTTP_SERVER_VARS["PHP_SELF"];  if($_POST["invia"])
    
    {  
    //CONNESSIONE AL MYSQL @mysql_connect("localhost", "xxx", "xxx") or die("Connessione fallita !");  
    
    // SELEZIONE DATABASE @mysql_select_db("my_xxxxx") or die("Selezione Database fallita !");  
    
    // MEMORIZZIAMO NELLA VARIABILE $data IL CONTENUTO DEL FILE $data = addslashes(fread(fopen($_FILES["file_binario"]["tmp_name"], "rb"), $_FILES["file_binario"]["size"]));  
    
    // ESEGUIAMO LA QUERY DI INSERIMENTO $result = @mysql_query("INSERT INTO file_binari (Autore, Titolo, Descrizione, DatiBinari, Nome, Size, Type)      VALUES ('" . $_POST["Autore"] . "','" . $_POST["Titolo"] . "','" . $_POST["Descrizione"] . "','$data','" . $_FILES["file_binario"]["name"] . "', '" . $_FILES["file_binario"]["size"] . "','" . $_FILES["file_binario"]["type"] . "')") or die("Query di inserimento fallita !");  
    
    // ESITO POSITIVO echo "Il file " . basename($_FILES["file_binario"]["name"]) . " è stato correttamente inserito nel Database.";  
    
    // CHIUDIAMO LA CONNESSIONE A MYSQL @mysql_close();  }
     else {  echo " 
    <html> 
    <head> 
    <title>Form per l'inserimento</title> 
    </head> 
    <body>    <
    div align=\"center\"> 
    <table> <form action=\"$self\" method=\"POST\" enctype=\"multipart/form-data\" name=\"modulo\">  
    <tr> <td valign=\"top\">Autore</td> <td><textarea name=\"Autore\" cols=\"40\" rows=\"1\"></textarea></td> </tr>  
    <tr> <td valign=\"top\">Titolo</td> <td><textarea name=\"Titolo\" cols=\"40\" rows=\"1\"></textarea></td> </tr>  
    <tr> <td valign=\"top\">Descrizione </td> <td><textarea name=\"Descrizione\" cols=\"40\" rows=\"5\"></textarea></td> </tr> 
    <tr> <td>File</td> <td><input type=\"file\" name=\"file_binario\" size=\"40\"></td> </tr> 
    <tr> <td colspan=\"2\" valign=\"bottom\" align=\"center\" height=\"30\"> <input type=\"submit\" value=\"Invia il file\" name=\"invia\"></td> </tr> 
    </form> 
    </table> 
    </div>  
    </body> 
    </html>  
     ";  
     }     
    ?>
    mi aiutereste a fare 2 cose adesso???

    1) validare il form: rendere tutti questi campi obbligatori
    2) inseriti i dati, fare creare una pagina con questi dati e un link al file


    grazie mille!!!!!!!!!!!!!!!!
  • Re: Wizard per fare creare pagine ai visitatori

    jimmy83 ha scritto:


    mi aiutereste a fare 2 cose adesso???

    1) validare il form: rendere tutti questi campi obbligatori
    2) inseriti i dati, fare creare una pagina con questi dati e un link al file

    grazie mille!!!!!!!!!!!!!!!!
    Dunque, punto 1:
    La validazione di una form si può fare in due modi, utilizzando prima JavaScript e poi PHP stesso.
    La parte JavaScript si attiva quando la form viene inviata (form.onsubmit()) chiamando una funzione che cicla fra tutti gli elementi e, nel caso trovi un campo non compilato, annulla l'operazione e visualizza un messaggio d'errore tramite alert o dentro l'HTML.
    Esempio (assumendo form chiamata "inviodati"):
    <script type="text/javascript">
    var checkData = function(form) {
    	var empty = new Array();
    	for (i=0; i<form.length; i++)
    		if (!form.elements[i].value.length)
    			empty.push(form.elements[i].name)
    	if (empty.length) {
    		var message = "È necessario compilare tutti i campi per continuare.";
    		message += "\nTi mancano:\n\n" + empty.join("\n");
    		alert(message);
    		return false;
    	}
    	return true;
    }
    var inviodatiform = document.forms["inviodati"];
    if (inviodatiform)
    	inviodatiform.onsubmit = function() { return checkData(this); }
    </script>
    La parte PHP sta in un controllo, che io metterei dentro la casistica if($_POST["invia"]) ed ha praticamente le stesse dinamiche del JavaScript, riportando un messaggio di errore contenente i nomi dei campi vuoti nel caso ne dovesse trovare:
    if($_POST["invia"])
    {
    	$verifica = array("Autore","Titolo","Descrizione");
    	$campi_vuoti = array();
    	foreach ($verifica as $campo)
    		if (!trim($_POST[$campo])) $campi_vuoti[] = $campo;
    	if (!$_FILES["file_binario"]) $campi_vuoti[] = "File da caricare";
    	if (count($campi_vuoti))
    		die("È necessario compilare tutti i campi per continuare.<br /><br />Ti mancano:<br />".implode("<br />",$campi_vuoti)."<br /><br /><a href='{$_SERVER["HTTP_REFERER"]}'>Torna indietro</a>");
    
    ...
    Spero sia tutto chiaro poi te lo personalizzi come vuoi ;^)
    A mio parere sarebbe bene usare sia la soluzione PHP che quella JavaScript, in quanto la prima serve a bloccare la richiesta nel caso sia errata (l'utente si accorge prima di aver mancato un campo e perde meno tempo nel sistemarlo e, allo stesso tempo, il server non deve servire una pagina in quel caso inutile), ma non è detto che tutti abbiamo JavaScript attivo sul loro browser, perciò è necessaria la seconda, come ultimo controllo indipendente dal client.

    Per quanto riguarda il punto 2 temo di non aver capito... se quel che ti serve è creare una pagina con i file già caricati, basta una query SELECT sul database <.<

    Ciao!
Devi accedere o registrarti per scrivere nel forum
4 risposte