+ Rispondi alla Discussione
Pagina 1 di 2 12 UltimaUltima
Risultati da 1 a 15 di 27

[Script] Creare una pagina di annunci con foto

Ultimo Messaggio di max-98 il:
  1. #1
    User Attivo L'avatar di Tuonorosso
    Data Registrazione
    Mar 2005
    Località
    Lecco
    Messaggi
    1,946

    [Script] Creare una pagina di annunci con foto

    Potete trovare la versione funzionante Qui

    Bene,
    questo post serve come tutorial per creare una pagina che effettua le seguenti operazioni:

    1) Inserimento di un annuncio (campi testuali) più upload di un file (foto) salvando il tutto in un file
    2) Lettura del file e visualizzazione dell'annuncio in una pagina

    Cominciamo con il punto 1:

    Cominciamo con il codice per l'inserimenti di campi testuali.
    Per fare questo ci rivolgiamo alla Guida php di Giorgio Taverniti per l'invio di informazioni tramite form php

    Ecco qui il codice:

    Pagina html: upload.html
    Codice:
    <html>
    <head>
    <title>Upload</title>
    </head>
    
    <body>
    
    <form enctype="multipart/form-data" action="upload.php" method="POST">
    
    Nome 
    <input type="text" name="nome" size="20"> 
    
    Recapito 
    <input type="text" name="recapito" size="20"> 
    
    
    
    Oggetto 
    
     <textarea name="oggetto" rows="3" cols="40"></textarea> </p> 
    <input type="submit" value="Invia">
    </form>
    
    </body>
    </html>
    Pagina upload.php
    Codice:
    <?
    if &#40;!empty&#40;$_POST&#91;'nome'&#93;&#41;&#41;&#123;
    $nome = $_POST&#91;'nome'&#93;;
    
    &#125;
    if &#40;!empty&#40;$_GET&#91;'nome'&#93;&#41;&#41;&#123;
    $nome = $_GET&#91;'nome'&#93;;
    &#125;
    
    if &#40;!empty&#40;$_POST&#91;'recapito'&#93;&#41;&#41;&#123;
    $recapito = $_POST&#91;'recapito'&#93;;
    
    &#125;
    if &#40;!empty&#40;$_GET&#91;'recapito'&#93;&#41;&#41;&#123;
    $recapito = $_GET&#91;'recapito'&#93;;
    &#125;
    
    
    if &#40;!empty&#40;$_POST&#91;'oggetto'&#93;&#41;&#41;&#123;
    $oggetto = $_POST&#91;'oggetto'&#93;;
    
    &#125;
    if &#40;!empty&#40;$_GET&#91;'oggetto'&#93;&#41;&#41;&#123;
    $oggetto = $_GET&#91;'oggetto'&#93;;
    &#125;
    
    
    echo "<center>"; 
    echo "Ciao ecco i risultati del tuo inserimento&#58;"; 
    $errore= false; 
    
    If&#40;&#40;!$nome&#41; || &#40;!$recapito&#41; || &#40;!$oggetto&#41;&#41; &#123; 
    
    #controllo che nessun campo sia vuoto 
    $errore=true; 
    echo "Non hai compilato tutti i campi <a href=\"uno.htm\">torna indietro</a>"; 
    exit; 
    &#125; 
    else&#123; 
    echo " i campi sono ok"; 
    &#125; 
    
    echo "<HR>"; 
     
    
    #controllo che il file sia accessibile 
    if &#40;!$apri = fopen &#40;"file.txt","a+"&#41;&#41; &#123; 
    $errore=true; 
    echo "non posso aprire il file"; 
    &#125;else&#123; 
    $apriw = fopen &#40;"file.txt","a+"&#41;; 
    
    #ora creo una variabile che contiene la linea di reparazione 
    $linea ="<hr color=red>"; 
    # e sul file scrivo nome e vado a capo,il recapito e vado a capo 
    
    # l'oggetto e vado a capo e la linea ti separazione 
    fputs&#40;$apriw,"$nome\n"&#41;; 
    fputs&#40;$apriw,"$recapito\n"&#41;; 
    fputs&#40;$apriw,"$oggetto\n"&#41;; 
    fputs&#40;$apriw,"$linea"&#41;; 
    
    #chiudo il file 
    fclose&#40;$apriw&#41;; 
    &#125; 
    
    #se c'e l'errore mi dice di inserirli di nuovo altrimenti mi fa leggere gli annunci 
    if&#40;$errore&#41;&#123; 
    echo"
     Riinseriscili perfavore
    "; 
    &#125; 
    else&#123; 
    echo "
     <a href=\"annunci.php\">leggi gli annunci</a>"; 
    &#125; 
    
    
    ?>

    Ecco la pagina che mi legge dal file chiamata annunci.php
    Codice:
    <?php
    echo "Ecco i vostri annunci
    ";
    if &#40;!$apri = fopen&#40;"file.txt","r"&#41;&#41;&#123;
    echo "Non posso aprire il file";
    &#125;else&#123;
    
    #Se il file si può leggere allora con un ciclo while
    
    # leggo tutte le righe del mio file
    while&#40;!feof&#40;$apri&#41;&#41;&#123;
    $leggo = fgets&#40;$apri,255&#41;;
    echo "$leggo
    ";
    &#125;
    &#125;
    fclose&#40;$apri&#41;;
    ?>
    Tra poco posterò il codice per l'upload del file

  2. #2
    User Attivo L'avatar di Tuonorosso
    Data Registrazione
    Mar 2005
    Località
    Lecco
    Messaggi
    1,946
    Bene,
    ora passiamo al punto 2

    Prendiamo il codice dalla Guida PHP per l'upload di un file di giorgiotave e lo uniamo al codice usato prima.

    Aggiungiamo il box per lo sfoglia del file nella nostra pagina upload.html che diventerà:
    Codice:
    <html>
    <head>
    <title>Upload</title>
    </head>
    
    <body>
    
    <form enctype="multipart/form-data" action="upload.php" method="POST">
    
    Nome 
    <input type="text" name="nome" size="20"> 
    
    Recapito 
    <input type="text" name="recapito" size="20"> 
    
    
    
    Oggetto 
    
     <textarea name="oggetto" rows="3" cols="40"></textarea> </p> 
    <input type="hidden" name="MAX_FILE_SIZE" value="30000">
    Invia questo file&#58; <input name="userfile" type="file">
    <input type="submit" value="Invia File">
    </form>
    
    </body>
    </html>
    Ora modifichiamo la nostra pagina upload.php:

    Codice:
    <?
    //percorso della cartella dove mettere i file caricati
    $uploaddir = '/home/httpd/vhosts/';
    
    if &#40;!empty&#40;$_POST&#91;'nome'&#93;&#41;&#41;&#123;
    $nome = $_POST&#91;'nome'&#93;;
    
    &#125;
    if &#40;!empty&#40;$_GET&#91;'nome'&#93;&#41;&#41;&#123;
    $nome = $_GET&#91;'nome'&#93;;
    &#125;
    
    if &#40;!empty&#40;$_POST&#91;'recapito'&#93;&#41;&#41;&#123;
    $recapito = $_POST&#91;'recapito'&#93;;
    
    &#125;
    if &#40;!empty&#40;$_GET&#91;'recapito'&#93;&#41;&#41;&#123;
    $recapito = $_GET&#91;'recapito'&#93;;
    &#125;
    
    
    if &#40;!empty&#40;$_POST&#91;'oggetto'&#93;&#41;&#41;&#123;
    $oggetto = $_POST&#91;'oggetto'&#93;;
    
    &#125;
    if &#40;!empty&#40;$_GET&#91;'oggetto'&#93;&#41;&#41;&#123;
    $oggetto = $_GET&#91;'oggetto'&#93;;
    &#125;
    
    
    echo "<center>"; 
    echo "Ciao ecco i risultati del tuo inserimento&#58;"; 
    $errore= false; 
    
    If&#40;&#40;!$nome&#41; || &#40;!$recapito&#41; || &#40;!$oggetto&#41;&#41; &#123; 
    
    #controllo che nessun campo sia vuoto 
    $errore=true; 
    echo "Non hai compilato tutti i campi <a href=\"uno.htm\">torna indietro</a>"; 
    exit; 
    &#125; 
    else&#123; 
    echo " i campi sono ok"; 
    &#125; 
    
    
    //Recupero il percorso temporaneo del file
    $userfile_tmp = $_FILES&#91;'userfile'&#93;&#91;'tmp_name'&#93;;
    
    //recupero il nome originale del file caricato
    $userfile_name = $_FILES&#91;'userfile'&#93;&#91;'name'&#93;;
    
    print "<pre>";
    //copio il file dalla locazione temporanea alla mia cartella upload
    if &#40;move_uploaded_file&#40;$userfile_tmp, $uploaddir . $userfile_name&#41;&#41;
    &#123;
    //Se l'operazione è andata a buon fine...
    print "File inviato con successo. Ecco alcune informazioni&#58;\n"; 
    print_r&#40;$_FILES&#41;;
    &#125;
    else
    &#123;
    //Se l'operazione è fallta...
    print "Upload NON valido! Alcune informazioni&#58;\n"; 
    print_r&#40;$_FILES&#41;;
    &#125;
    print "</pre>";
    
    echo "<HR>"; 
     
    
    #controllo che il file sia accessibile 
    if &#40;!$apri = fopen &#40;"file.txt","a+"&#41;&#41; &#123; 
    $errore=true; 
    echo "non posso aprire il file"; 
    &#125;else&#123; 
    $apriw = fopen &#40;"file.txt","a+"&#41;; 
    
    #ora creo una variabile che contiene la linea di reparazione 
    $linea ="<hr color=red>"; 
    # e sul file scrivo nome e vado a capo,il recapito e vado a capo 
    
    # l'oggetto e vado a capo e la linea ti separazione 
    fputs&#40;$apriw,"$nome\n"&#41;; 
    fputs&#40;$apriw,"$recapito\n"&#41;; 
    fputs&#40;$apriw,"$oggetto\n"&#41;; 
    fputs&#40;$apriw,"<img src=$userfile_name>\n"&#41;; 
    fputs&#40;$apriw,"$linea"&#41;; 
    
    #chiudo il file 
    fclose&#40;$apriw&#41;; 
    &#125; 
    
    #se c'e l'errore mi dice di inserirli di nuovo altrimenti mi fa leggere gli annunci 
    if&#40;$errore&#41;&#123; 
    echo"
     Riinseriscili perfavore
    "; 
    &#125; 
    else&#123; 
    echo "
     <a href=\"annunci.php\">leggi gli annunci</a>"; 
    &#125; 
    
    
    ?>
    Il nostro file annunci.php non subisce variazioni:
    Codice:
    <?php 
    echo "Ecco i vostri annunci
    "; 
    if &#40;!$apri = fopen&#40;"file.txt","r"&#41;&#41;&#123; 
    echo "Non posso aprire il file"; 
    &#125;else&#123; 
    
    #Se il file si può leggere allora con un ciclo while 
    
    # leggo tutte le righe del mio file 
    while&#40;!feof&#40;$apri&#41;&#41;&#123; 
    $leggo = fgets&#40;$apri,255&#41;; 
    echo "$leggo
    "; 
    &#125; 
    &#125; 
    fclose&#40;$apri&#41;; 
    ?>

  3. #3
    User Attivo L'avatar di Tuonorosso
    Data Registrazione
    Mar 2005
    Località
    Lecco
    Messaggi
    1,946
    Non ho ancora avuto tempo di testarlo.

    Fatemi sapere eventualmente se ci sono degli errori che li correggiamo insieme.

    Appena posso lo testo.

    CIAOCIAO!

  4. #4
    User
    Data Registrazione
    Mar 2005
    Messaggi
    503
    piccola precisazione di sicurezza (che esula dall'esempio specifico)

    attenzione a usare la varibili (GET,POST,SESSION,FILES) direttamente (cioè senza $_GET,$_POST,ecc.....)

    in particolare la cosa diventa pericolosa se si usane le sessioni, quindi conviene sempre recuperare il valore da:

    $val=$_SESSION[val];

  5. #5
    User
    Data Registrazione
    Sep 2005
    Messaggi
    19
    Grazie per l'esempio che hai fatto,dopo tanta mia insistenza,sei molto gentile,l'ho testato,ma non funge(preticamente non carica la foto),infatti il risultato è questo:

    Ciao ecco i risultati del tuo inserimento: i campi sono ok
    nome del file locale creato dopo l'invio: D:\\WPM\\djspot nuovo\\ca3idch5.jpg
    nome originale del file remoto:
    dimensioni del file in byte:
    tipo di file:


    --------------------------------------------------------------------------------
    Invio del file fallito
    leggi gli annunci

  6. #6
    User Attivo L'avatar di Tuonorosso
    Data Registrazione
    Mar 2005
    Località
    Lecco
    Messaggi
    1,946
    hai impostato il path assoluto del tuo sito?

    Ciao!

  7. #7
    User
    Data Registrazione
    Sep 2005
    Messaggi
    19
    hai impostato il path assoluto del tuo sito?

    Ciao!
    Oddio,non saprei come fare. Adesso mi odi vero?
    Ti riferisci alla directory dove salvare le foto? Ho specificato una directory,ma non funge lo stesso $path="/annunci/foto";

  8. #8
    User Attivo L'avatar di Tuonorosso
    Data Registrazione
    Mar 2005
    Località
    Lecco
    Messaggi
    1,946
    devi dare il path assoluto /home/httpd/www/ecc ecc

    Ovviamente devi sapere qual'è quello del tuo provider...

  9. #9
    User
    Data Registrazione
    Sep 2005
    Messaggi
    19
    Ciao,eccomi dal momento che sto provando su un sito su altervista il mio path assoluto è $path="/membri/djperfeste/annunci/foto"; ,ma non funge aspita.

    http://forum.altervista.org/showthre...=path+assoluto <------ il path è giusto da quello che dicono qui.

  10. #10
    User Attivo L'avatar di Tuonorosso
    Data Registrazione
    Mar 2005
    Località
    Lecco
    Messaggi
    1,946
    non ne sono certo ma credo che per altervista sia:

    "/home/utente"

    non ne sono certo però..

    PATERRRRRRRRRRRRR...tu lo sai?

  11. #11
    User Attivo
    Data Registrazione
    Nov 2004
    Località
    Catania
    Messaggi
    1,142
    Citazione Originariamente Scritto da Tuonorosso
    non ne sono certo ma credo che per altervista sia:

    "/home/utente"

    non ne sono certo però..

    PATERRRRRRRRRRRRR...tu lo sai?
    mmm... chiedere nel forum di supporto no eh?

    Prova lì sae ti aiutano, magari dopo ci dici come è andata

  12. #12
    User
    Data Registrazione
    Sep 2005
    Messaggi
    19
    Ci sono gia messaggi sul forum di altervista e tutti dicono la stessa cosa cioe' che il path assoluto è /membri/nick ecco i risultati http://forum.altervista.org/showthre...=path+assoluto

    Oddio non vorrei dire cavolate perche' non capisco praticamente quasi nulla in php,ma l'hai provato sul tuo server? Odiami pure ehhhhh

    Ho fatto comunque un post in altervista anche

  13. #13
    User
    Data Registrazione
    Mar 2005
    Messaggi
    503
    questo ti dovrebbe dare il path assoluto

    $_SERVER["SCRIPT_FILENAME"]

  14. #14
    User
    Data Registrazione
    Sep 2005
    Messaggi
    19
    Ecco fatto,il risultato è :/membri/djperfeste/annunci/annunci.php

  15. #15
    User Attivo L'avatar di Tuonorosso
    Data Registrazione
    Mar 2005
    Località
    Lecco
    Messaggi
    1,946
    Allora,
    ho testato e sistemato lo script, l'ho modificato in un po di parti...ora così funziona alla grande ve lo assicuro...

    Buon divertimento..

+ Rispondi alla Discussione
Pagina 1 di 2 12 UltimaUltima

Tag per Questa Discussione

^ Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
  • Il codice BB è Attivato
  • Le faccine sono Attivato
  • Il codice [IMG] è Attivato
  • Il codice [VIDEO] è Attivato
  • Il codice HTML è Disattivato
  • Trackbacks Attivato
  • Pingback Attivato
  • Refback Attivato

SEO by vBSEO 3.6.0 PL2 ©2011, Crawlability, Inc.