- Home
- Categorie
- Coding e Sistemistica
- PHP
- [Script] Creare una pagina di annunci con foto
-
[Script] Creare una pagina di annunci con foto
Potete trovare la versione funzionante [url=http://www.tesiweb.net/testGT/annunci/upload.html]Qui
Bene,
questo post serve come tutorial per creare una pagina che effettua le seguenti operazioni:- 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 [url=http://www.giorgiotave.it/guida_php/scrivere_file_form.php]Guida php di Giorgio Taverniti per l'invio di informazioni tramite form phpEcco qui il codice:
Pagina html: upload.html
<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
<? if (!empty($_POST['nome'])){ $nome = $_POST['nome']; } if (!empty($_GET['nome'])){ $nome = $_GET['nome']; } if (!empty($_POST['recapito'])){ $recapito = $_POST['recapito']; } if (!empty($_GET['recapito'])){ $recapito = $_GET['recapito']; } if (!empty($_POST['oggetto'])){ $oggetto = $_POST['oggetto']; } if (!empty($_GET['oggetto'])){ $oggetto = $_GET['oggetto']; } echo "<center>"; echo "Ciao ecco i risultati del tuo inserimento:"; $errore= false; If((!$nome) || (!$recapito) || (!$oggetto)) { #controllo che nessun campo sia vuoto $errore=true; echo "Non hai compilato tutti i campi <a href=\"uno.htm\">torna indietro</a>"; exit; } else{ echo " i campi sono ok"; } echo "<HR>"; che il file sia accessibile if (!$apri = fopen ("file.txt","a+")) { $errore=true; echo "non posso aprire il file"; }else{ $apriw = fopen ("file.txt","a+"); #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($apriw,"$nome\n"); fputs($apriw,"$recapito\n"); fputs($apriw,"$oggetto\n"); fputs($apriw,"$linea"); #chiudo il file fclose($apriw); } #se c'e l'errore mi dice di inserirli di nuovo altrimenti mi fa leggere gli annunci if($errore){ echo" Riinseriscili perfavore "; } else{ echo " <a href=\"annunci.php\">leggi gli annunci</a>"; } ?>
Ecco la pagina che mi legge dal file chiamata annunci.php
<?php echo "Ecco i vostri annunci "; if (!$apri = fopen("file.txt","r")){ echo "Non posso aprire il file"; }else{ #Se il file si può leggere allora con un ciclo while # leggo tutte le righe del mio file while(!feof($apri)){ $leggo = fgets($apri,255); echo "$leggo "; } } fclose($apri); ?>
Tra poco posterò il codice per l'upload del file
- Inserimento di un annuncio (campi testuali) più upload di un file (foto) salvando il tutto in un file
-
Bene,
ora passiamo al punto 2Prendiamo il codice dalla [url=http://www.giorgiotave.it/guida_php/upload_file.php]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à:
<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: <input name="userfile" type="file"> <input type="submit" value="Invia File"> </form> </body> </html>
Ora modifichiamo la nostra pagina upload.php:
<? //percorso della cartella dove mettere i file caricati $uploaddir = '/home/httpd/vhosts/'; if (!empty($_POST['nome'])){ $nome = $_POST['nome']; } if (!empty($_GET['nome'])){ $nome = $_GET['nome']; } if (!empty($_POST['recapito'])){ $recapito = $_POST['recapito']; } if (!empty($_GET['recapito'])){ $recapito = $_GET['recapito']; } if (!empty($_POST['oggetto'])){ $oggetto = $_POST['oggetto']; } if (!empty($_GET['oggetto'])){ $oggetto = $_GET['oggetto']; } echo "<center>"; echo "Ciao ecco i risultati del tuo inserimento:"; $errore= false; If((!$nome) || (!$recapito) || (!$oggetto)) { #controllo che nessun campo sia vuoto $errore=true; echo "Non hai compilato tutti i campi <a href=\"uno.htm\">torna indietro</a>"; exit; } else{ echo " i campi sono ok"; } //Recupero il percorso temporaneo del file $userfile_tmp = $_FILES['userfile']['tmp_name']; //recupero il nome originale del file caricato $userfile_name = $_FILES['userfile']['name']; print "<pre>"; //copio il file dalla locazione temporanea alla mia cartella upload if (move_uploaded_file($userfile_tmp, $uploaddir . $userfile_name)) { //Se l'operazione è andata a buon fine... print "File inviato con successo. Ecco alcune informazioni:\n"; print_r($_FILES); } else { //Se l'operazione è fallta... print "Upload NON valido! Alcune informazioni:\n"; print_r($_FILES); } print "</pre>"; echo "<HR>"; che il file sia accessibile if (!$apri = fopen ("file.txt","a+")) { $errore=true; echo "non posso aprire il file"; }else{ $apriw = fopen ("file.txt","a+"); #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($apriw,"$nome\n"); fputs($apriw,"$recapito\n"); fputs($apriw,"$oggetto\n"); fputs($apriw,"<img src=$userfile_name>\n"); fputs($apriw,"$linea"); #chiudo il file fclose($apriw); } #se c'e l'errore mi dice di inserirli di nuovo altrimenti mi fa leggere gli annunci if($errore){ echo" Riinseriscili perfavore "; } else{ echo " <a href=\"annunci.php\">leggi gli annunci</a>"; } ?>
Il nostro file annunci.php non subisce variazioni:
<?php echo "Ecco i vostri annunci "; if (!$apri = fopen("file.txt","r")){ echo "Non posso aprire il file"; }else{ #Se il file si può leggere allora con un ciclo while # leggo tutte le righe del mio file while(!feof($apri)){ $leggo = fgets($apri,255); echo "$leggo "; } } fclose($apri); ?>
-
Non ho ancora avuto tempo di testarlo.
Fatemi sapere eventualmente se ci sono degli errori che li correggiamo insieme.
Appena posso lo testo.
CIAOCIAO!
-
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];
-
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
-
hai impostato il path assoluto del tuo sito?
Ciao!
-
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";
-
devi dare il path assoluto /home/httpd/www/ecc ecc
Ovviamente devi sapere qual'è quello del tuo provider...
-
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/showthread.php?t=12648&highlight=path+assoluto <------ il path è giusto da quello che dicono qui.
-
non ne sono certo ma credo che per altervista sia:
"/home/utente"
non ne sono certo però..
PATERRRRRRRRRRRRR...tu lo sai?
-
@Tuonorosso said:
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
-
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/showthread.php?t=11898&highlight=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
-
questo ti dovrebbe dare il path assoluto
$_SERVER["SCRIPT_FILENAME"]
-
Ecco fatto,il risultato è :/membri/djperfeste/annunci/annunci.php
-
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..
-
Ciao e grazie ora funziona,ma solo per alcune foto,per altre non c'è verso
http://www.djperfeste.altervista.org/annunci/annunci.phpOk ok ho capito il perche',se ci sono degli spazi nel nome della foto,tipo gino_ .jpg,non funge mea culpa,c'è la possibilita' di accettare anche quelli?
-
si, ti basta fare un replace dello spazio nella stringa, togliendolo!
(ti lascio il divertimento di trovare la funzione per lo string replace(ti ho dato anche un bell'aiutino :D))
-
Ehhh sono talmente ignorante che la funzione replace la sento per la prima volta ora,uhahahhahah
http://www.camelotpub.com/galleria/pervert_night/index.php?directory=.¤tPic=1 <---un po' di pelozzo,lo so che non è il massimo pero' ehhh
-
Frustami a sangue se vuoi,ehh.
Scusami se sono ancora qui a rompere,ma grazia a tutti questi tutorial sto imparando anche io,mi spieghi quella cosa della stringa replace per piacere?
A un piccolo bug,alcune foto jpg anche se col nome singolo,senza spazi o caratteri strani,non me le stampa,puoi vedere anche nella tua home(dove hai messo il tuo tutorial).
-
@Tuonorosso said:
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..
Ciao e buongiorno a tutti
Sto cercando di utilizzare gli scripts da te fatti per visualizzare sul sito che vorrei pubblicare, il contenuto di alcuni file txt. (sito di una società sportiva dilettantistica).
Ho creato i files necessari (upload.html upload.php annunci.php) e li sto provando su piattaforma xp usando easy php.
Il problema è che se faccio l'upload mi copia solo ed esclusivamente il file "upload.php".
Dove combino una cavolata ?
Grazie
Gable