Un Evento Unico. 5 Sale. 27 Interventi. SEO, SOCIAL, E-Commerce, Mobile, Turismo.
CLICCA QUI e SCOPRI DI PIù X Chiudi
 
Forum GT: Condividiamo idee e conoscenza Forum GT: Condividiamo idee e conoscenza


Condividi questo contenuto nei Social Network:
Ti stiamo aspettando: Registrati subito e gratis. Entra a far parte di una delle comunità più attive in Italia. Se hai dimenticato i tuoi dati li puoi recuperare subito.


Vai indietro   Forum per Webmaster: Condividiamo Idee e Conoscenza > Sviluppo e Gestione siti web > Php - Mysql > Scripting e Risorse utili
Benvenuto! Forum Regole FAQ Lista utenti Calendario Segna come letti


Rispondi
 
LinkBack Strumenti di discussione
Vecchio 09-09-05, 09:49   #1 (permalink)
User Attivo
 
L'avatar di Tuonorosso
 
Data di registrazione: Mar 2005
Ubicazione: Lecco
Messaggi: 1,946
Invia un messaggio tramite MSN a Tuonorosso Invia un messaggio tramite Skype a Tuonorosso
[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 (!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>"; 
 

#controllo 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
Codice:
<?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
__________________
Film
Tuonorosso non in linea   Rispondi citando
Vecchio 09-09-05, 11:46   #2 (permalink)
User Attivo
 
L'avatar di Tuonorosso
 
Data di registrazione: Mar 2005
Ubicazione: Lecco
Messaggi: 1,946
Invia un messaggio tramite MSN a Tuonorosso Invia un messaggio tramite Skype a Tuonorosso
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: <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 (!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>"; 
 

#controllo 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:
Codice:
<?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); 
?>
__________________
Film
Tuonorosso non in linea   Rispondi citando
Vecchio 09-09-05, 11:48   #3 (permalink)
User Attivo
 
L'avatar di Tuonorosso
 
Data di registrazione: Mar 2005
Ubicazione: Lecco
Messaggi: 1,946
Invia un messaggio tramite MSN a Tuonorosso Invia un messaggio tramite Skype a Tuonorosso
Non ho ancora avuto tempo di testarlo.

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

Appena posso lo testo.

CIAOCIAO!
__________________
Film
Tuonorosso non in linea   Rispondi citando
Vecchio 09-09-05, 12:49   #4 (permalink)
User
 
Data di 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];
riky78 non in linea   Rispondi citando
Vecchio 09-09-05, 14:55   #5 (permalink)
User
 
Data di 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
djspot non in linea   Rispondi citando
Vecchio 09-09-05, 15:11   #6 (permalink)
User Attivo
 
L'avatar di Tuonorosso
 
Data di registrazione: Mar 2005
Ubicazione: Lecco
Messaggi: 1,946
Invia un messaggio tramite MSN a Tuonorosso Invia un messaggio tramite Skype a Tuonorosso
hai impostato il path assoluto del tuo sito?

Ciao!
__________________
Film
Tuonorosso non in linea   Rispondi citando
Vecchio 09-09-05, 15:41   #7 (permalink)
User
 
Data di registrazione: Sep 2005
Messaggi: 19
Quote:
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";
djspot non in linea   Rispondi citando
Vecchio 09-09-05, 16:59   #8 (permalink)
User Attivo
 
L'avatar di Tuonorosso
 
Data di registrazione: Mar 2005
Ubicazione: Lecco
Messaggi: 1,946
Invia un messaggio tramite MSN a Tuonorosso Invia un messaggio tramite Skype a Tuonorosso
devi dare il path assoluto /home/httpd/www/ecc ecc

Ovviamente devi sapere qual'è quello del tuo provider...
__________________
Film
Tuonorosso non in linea   Rispondi citando
Vecchio 09-09-05, 17:18   #9 (permalink)
User
 
Data di 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.
djspot non in linea   Rispondi citando
Vecchio 09-09-05, 17:58   #10 (permalink)
User Attivo
 
L'avatar di Tuonorosso
 
Data di registrazione: Mar 2005
Ubicazione: Lecco
Messaggi: 1,946
Invia un messaggio tramite MSN a Tuonorosso Invia un messaggio tramite Skype a Tuonorosso
non ne sono certo ma credo che per altervista sia:

"/home/utente"

non ne sono certo però..

PATERRRRRRRRRRRRR...tu lo sai?
__________________
Film
Tuonorosso non in linea   Rispondi citando
Vecchio 09-09-05, 18:31   #11 (permalink)
User Attivo
 
Data di registrazione: Nov 2004
Ubicazione: Catania
Messaggi: 1,142
Invia un messaggio tramite MSN a PaTeR
Quote:
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
PaTeR non in linea   Rispondi citando
Vecchio 09-09-05, 18:34   #12 (permalink)
User
 
Data di 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
djspot non in linea   Rispondi citando
Vecchio 09-09-05, 20:01   #13 (permalink)
User
 
Data di registrazione: Mar 2005
Messaggi: 503
questo ti dovrebbe dare il path assoluto

$_SERVER["SCRIPT_FILENAME"]
riky78 non in linea   Rispondi citando
Vecchio 09-09-05, 20:12   #14 (permalink)
User
 
Data di registrazione: Sep 2005
Messaggi: 19
Ecco fatto,il risultato è :/membri/djperfeste/annunci/annunci.php
djspot non in linea   Rispondi citando
Vecchio 09-09-05, 21:03   #15 (permalink)
User Attivo
 
L'avatar di Tuonorosso
 
Data di registrazione: Mar 2005
Ubicazione: Lecco
Messaggi: 1,946
Invia un messaggio tramite MSN a Tuonorosso Invia un messaggio tramite Skype a Tuonorosso
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..
__________________
Film
Tuonorosso non in linea   Rispondi citando
Rispondi
Tags: , , , ,



Strumenti di discussione

Regole di scrittura
Non puoi postare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi allegare file
Non puoi editare i tuoi post

BB code is Attivo
smilies è Attivo
[IMG] il codice è Attivo
Il codice HTML è Disattivato
Trackbacks are Attivo
Pingbacks are Attivo
Refbacks are Disattivato
Vai al forum



Tutti gli orari sono GMT +3. Attualmente sono le 20:19.




Forum GT - © 2004-2009 GT idea S.r.l P.iva 02418200800 - Privacy/Disclaimer

SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.