- Home
- Categorie
- Coding e Sistemistica
- PHP
- inserire allegato
-
inserire allegato
di programmazione capisco poco... quindi...
ho cercato in rete ma non ho risolto....il problema è che sul mio piccolo guestbook
quando inserisco messaggi vorrei anche poter allegare delle immaginiora ho 3 files di cui riporto il codice....
form.php
[php]
<html>
<head>
<title>Form per l'inserimento dei dati</title>
<link rel="stylesheet" href="stile.css" type="text/css">
</head>
<body bgcolor="#9999FF">
<?php include("config.php");
if (!(file_exists($file)))
{fopen($file,"w");}
$arr_mess=file($file);
$count=count($arr_mess);
$pagine_totali= ceil($count/$risultati_per_pagina);
?><div align="center"> </div>
<table width="407" border="1" align="center" cellpadding="4" bordercolor="#0000FF" bgcolor="#FFFFFF">
<tr>
<td width="373" height="60" bgcolor="#FFFFCC"> <?php echo "<center><div class="carattere"><a href='view.php?pagina=$pagine_totali'>GUARDA I MESSAGGI</a></div></center>" ?></td>
</tr>
</table>
<br>
<table width="400" align="center" cellpadding="4" cellspacing="0" bordercolor="#000000" style="border:1px solid">
<tr>
<td bgcolor="#FF0000" style="border-bottom:1px solid;"><div align="center"><font color="#FFFFFF" size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>INSERISCI
IL TUO MESSAGGIO </strong></font></div></td>
</tr>
<tr>
<td bgcolor="#FFFFCC">
<form method="post" action="insert.php">
<table width="400" border="0">
<tr>
<td width="90" bgcolor="#FFFFCC"><font size="2">NOME:</font></td>
<td width="310" bgcolor="#FFFFCC"><input name="nome" id="nome" size="30" maxlength="25" style="border:1px solid"></td>
</tr>
<tr>
<td width="100" bgcolor="#FFFFCC"><font size="2">EMAIL:</font></td>
<td bgcolor="#FFFFCC"><input name="email" type="text" id="email" style="border:1px solid" size="30" maxlength="40"></td>
</tr>
<tr>
<td bgcolor="#FFFFCC"><font size="2">URL:</font></td>
<td bgcolor="#FFFFCC"><input name="url" type="text" id="url" style="border:1px solid" size="30" maxlength="50" ></td>
</tr>
<tr>
<td valign="top" bgcolor="#FFFFCC"><font size="2">MESSAGGIO:</font></td>
<td bgcolor="#FFFFCC"><textarea name="messaggio" cols="40" rows="10" id="commento" style="border:1px solid"></textarea></td>
</tr>
<tr>
<td valign="top" bgcolor="#FFFFCC"> </td>
<td bgcolor="#FFFFCC"><input type="submit" name="Submit" value="Invia"></td>
</tr>
</table>
</form>
</td>
</tr><tr>
<td bgcolor="#FFFFCC"><font size="2"><em>* Se inserite l'URL non dimenticatevi
di inserire http:// all'inizio</em></font></td>
</tr>
</table>
<br>
<div align="right">
<p> </p>
</div>
</body>
</html>
[/php]insert.php
[php]
<html>
<head>
<title>Inserimento dati</title>
</head>
<body bgcolor="#9DB8F7">
<?php
include("config.php");
$nome=$_POST['nome'];
$email=$_POST['email'];
$url=$_POST['url'];
$messaggio=$_POST['messaggio'];
// Rilevazione tag html, presenza del nome e del messaggio
$cercanome = strstr($nome,"<");
$cercanome2 = strstr($nome,">");
$cercaemail = strstr($email,"<");
$cercaemail2 = strstr($email,">");
$cercaurl = strstr($url,"<");
$cercaurl2 = strstr($url,">");
$cercames = strstr($messaggio,"<");
$cercames2 = strstr($messaggio,">");
if ( $cercanome & $cercanome2 ){
echo "<center><b><font size="2">IL TUO MESSAGGIO NON E' STATO INSERITO IN QUANTO SONO STATI RILEVATI TAG HTML</font></b></center><br>";
echo "<center><b><font size="2"><a href="form.php">TORNA INDIETRO</a></font></b></center>";
}
elseif ( $cercaemail & $cercaemail2 )
{
echo "<center><b><font size="2">IL TUO MESSAGGIO NON E' STATO INSERITO IN QUANTO SONO STATI RILEVATI TAG HTML</font></b></center><br>";
echo "<center><b><font size="2"><a href="form.php">TORNA INDIETRO</a></font></b></center>";
}
elseif ( $cercaurl & $cercaurl2 )
{
echo "<center><b><font size="2">IL TUO MESSAGGIO NON E' STATO INSERITO IN QUANTO SONO STATI RILEVATI TAG HTML</font></b></center><br>";
echo "<center><b><font size="2"><a href="form.php">TORNA INDIETRO</a></font></b></center>";
}
elseif ($cercames & $cercames2)
{
echo "<center><b><font size="2">IL TUO MESSAGGIO NON E' STATO INSERITO IN QUANTO SONO STATI RILEVATI TAG HTML</font></b></center><br>";
echo "<center><b><font size="2"><a href="form.php">TORNA INDIETRO</a></font></b></center>";
}
else{
if ($nome == "")
{ echo "<center><font size="2">DEVI INSERIRE IL TUO NOME</font></center><br>";
echo "<center><font size="2"><a href="form.php">RITORNA INDIETRO</a></font></center>";
}
elseif ($messaggio == "")
{ echo "<center><font size="2">DEVI INSERIRE IL MESSAGGIO</font></center><br>";
echo "<center><font size="2"><a href="form.php">RITORNA INDIETRO</a></font></center>";
}
else{
$messaggio=ereg_replace("\n","<br>",$messaggio);
$data=date("d/m/Y");
$orario=date("H.i");
$commento=$nome."|".$email."|".$url."|".$messaggio."|".$data."|".$orario."\n";
if (!(file_exists($file)))
{fopen($file,"w");}
// Scrittura del nuovo messaggio su file
$new_mess=fopen($file,"a+");
fwrite($new_mess,$commento);
fclose($new_mess);
$arr_mess=file($file);
$count=count($arr_mess);
$pagine_totali= ceil($count/$risultati_per_pagina);
$tab_ins= "<table width="400" align="center" cellpadding="5" cellspacing="0" bordercolor="#333333" bgcolor="#FFFFFF" style="border:1px solid;">";
$tab_ins .= "<tr><td><center><font family="Arial" size="2">IL TUO MESSAGGIO E' STATO INSERITO CORRETTAMENTE</font></center>";
$tab_ins .= "</td></tr></table><br>";
$tab_ins .= "<table width="400" align="center" cellpadding="5" cellspacing="0" bordercolor="#000000" bgcolor="#FFFFFF" style="border:1px solid;">";
$tab_ins .="<tr><td bgcolor="#FFFFCC"><center><font family="Arial" size="2"><a href='view.php?pagina=$pagine_totali'>VISUALIZZA I MESSAGGI</a></font></center></td></tr></table>";
echo $tab_ins;
}
}
?>
</body>
</html>
[/php]view.php
[php]
<html>
<head>
<title>Visualizzazione dati</title>
<link rel="stylesheet" href="stile.css" type="text/css">
</head>
<body>
<!-- Codice del Morris Guestbook -->
<?php include("config.php");
if (!(file_exists($file)))
{ fopen($file,"w"); }
?>
<p>
<table width="348" align="center" cellpadding="0" cellspacing="0" bordercolor="#000000" style="border:1px solid;">
<tr>
<td width="346" height="73" bgcolor="#FFCCCC"> <?php echo "<center><div class="carattere"><a href="form.php"> INSERISCI UN MESSAGGIO</a></div></center>"; ?></td>
</tr>
</table>
</p>
<p>
<?php
include("config.php");
$pagina=$_GET['pagina'];
// Estrazione dati e paginazione
$rows_file=file($file);
$count=count($rows_file);
$numero_messaggi=$count;
if ($numero_messaggi == 0)
{
echo "<center><font family="Verdana" size="2">NON CI SONO ANCORA MESSAGGI</font></center>";
}
$inizio=0;
$pagine_totali= ceil($count/$risultati_per_pagina);
if (isset($pagina) AND $pagina > 0)
{
if ($pagina > $pagine_totali)
{
$pagina = $pagine_totali;
} else
{
$inizio=$pagina*$risultati_per_pagina - $risultati_per_pagina;
}
} else {
$pagina = 1;
$inizio = 0;
}$mess_pag=array_slice($rows_file,$inizio,$risultati_per_pagina);
$mess_pag=array_reverse($mess_pag);
$cont1=count($mess_pag);
$cont2=0;
// Stampa dati su schermo
while ($cont2<$cont1) {
$mess=$mess_pag[$cont2];
$info=explode("|",$mess);
$nome=$info[0];
$email=$info[1];
$url=$info[2];
$messaggio=$info[3];
$data=$info[4];
$orario=$info[5];
$num_proib=count($parole_proibite);
for ($i=0;$i<$num_proib;$i++)
{
$nome=ereg_replace($parole_proibite*,"",$nome);
$messaggio=ereg_replace($parole_proibite*,"",$messaggio);
}
// Creazione della tabella contenente tutti i dati del messaggio
if (($email=="") & ( $url==""))
{
$tabella = "<table width="415" align="center" cellpadding="5" cellspacing="0" bordercolor="#000000">";
$tabella .= "<tr><td width="100" bgcolor="#FFFFCC" class="tabella"><b><font class="carattere">".$nome."</font></b>";
$tabella .= "<br><font class="carattere">"."scritto il ".$data."<br>ore:".$orario."</font></td>";
$tabella .= "<td bgcolor="#FFFFFF" style="border:1px solid" valign="top"><font class="carattere">".$messaggio."</font></td></tr></table><br>";
}
if ( (!($email=="")) & ( $url==""))
{
$tabella = "<table width="415" align="center" cellpadding="5" cellspacing="0" bordercolor="#000000">";
$tabella .= "<tr><td width="100" bgcolor="#FFFFCC" class="tabella"><b><font class="carattere">".$nome."</font></b>";
$tabella .= "<br><font class="carattere">"."scritto il ".$data."<br>ore:".$orario."</font><br><a href="<A href="mailto:$email">"."<img">mailto:$email">"."<img src="smail.gif" border="none">"."</a></td>";
$tabella .= "<td bgcolor="#FFFFFF" style="border:1px solid" valign="top"><font class="carattere">".$messaggio."</font></td></tr></table><br>";
}
if ( ($email=="") & (!( $url=="")) )
{
$tabella = "<table width="415" align="center" cellpadding="5" cellspacing="0" bordercolor="#000000">";
$tabella .= "<tr><td width="100" bgcolor="#FFFFCC" class="tabella"><b><font class="carattere">".$nome."</font></b>";
$tabella .= "<br><font class="carattere">"."scritto il ".$data."<br>ore:".$orario."</font><br>"."<a href='$url'>"."<img src="home.gif" border="none">"."</a>"."</td>";
$tabella .= "<td bgcolor="#FFFFFF" style="border:1px solid" valign="top"><font class="carattere">".$messaggio."</font></td></tr></table><br>";
}
if ( (!($email=="")) & (!( $url=="")) )
{
$tabella = "<table width="415" align="center" cellpadding="5" cellspacing="0" bordercolor="#000000">";
$tabella .= "<tr><td width="100" bgcolor="#FFFFCC" class="tabella"><b><font class="carattere">".$nome."</font></b>";
$tabella .= "<br><font class="carattere">"."scritto il ".$data."<br>ore:".$orario."</font><br><a href="<A href="mailto:$email">"."<img">mailto:$email">"."<img src="smail.gif" border="none">"."</a>"." "."<a href='$url'>"."<img src="home.gif" border="none">"."</a>"."</td>";
$tabella .= "<td bgcolor="#FFFFFF" style="border:1px solid" valign="top"><font class="carattere">".$messaggio."</font></td></tr></table><br>";
}
$tabella = ereg_replace('\\','',$tabella);
echo $tabella;
$cont2++;
}
$pagina_precedente = $pagina - 1;
$pagina_seguente = $pagina + 1;
if ($pagina_precedente < 1)
{
$pagina_precedente = 1;
}
if ($pagina_seguente > $pagine_totali)
{
$pagina_seguente = $pagine_totali;
}
?></p>
<p>
<center>
<table width="350" cellpadding="0" cellspacing="0" bordercolor="#000000" style="border:1px solid;">
<tr bgcolor="#FFCCCC">
<td height="22" colspan="2">
<?php
echo "<center><div class="carattere">PAGINA $pagina DI $pagine_totali PAGINE TOTALI</div></center>" ?>
</td>
</tr>
<tr>
<td width="175" height="24" bgcolor="#FFFFFF">
<?php
if (!($pagina == 1)){
if (!($pagine_totali == 0)){
echo "<center><div class="carattere"><a href='view.php?pagina=$pagina_precedente'>PAGINA PRECEDENTE</a></div></center>";}}?>
</td>
<td width="175" bgcolor="#FFFFFF">
<?php
if (!($pagina == $pagine_totali)){
if (!($pagine_totali == 0)){
echo "<center><div class="carattere"><a href='view.php?pagina=$pagina_seguente'>PAGINA SUCCESSIVA</a></div></center>";}}?>
</td>
</tr>
<tr bgcolor="#FFCCCC">
<td height="24" colspan="2"><?php echo "<center><div class="carattere">IN TOTALE CI SONO $numero_messaggi MESSAGGI</div></center>" ?></td>
</tr>
</table>
</center>
</p>
<div align="right">
<p><font size="2"><em></em></font> </p></div>
</body>
</html>
[/php]
in rete ho trovato che si potrebbe fare....
create una tabella nel vostro database utilizzando la seguente query:
CREATE TABLE
foto
(
id
int(11) NOT NULL auto_increment,
nomefoto
varchar(100) NOT NULL default '',
ipfoto
varchar(100) NOT NULL default '',
commento
varchar(100) NOT NULL default '',
alt
varchar(100) NOT NULL default '',
PRIMARY KEY (id
)
)e questo sotto è lo script:
[php]<?
//INIZIO SCRIPT DI SALVATAGGIO DATI (se l'utente ha attivato il form)
//recupero le variabili del form
$hfoto=$_GET['hfoto'];
$termini=$_POST['termini'];
$newfoto=$_POST['newfoto'];
$attivaform=$_POST['attivaform'];
$commento=strip_tags($_POST['commentofoto']);
//variabili del database (le conoscete SOLO VOI!!)
$database="..nome_del_vostro_database..";
$hos="localhost";
$user="..Vostro_user_database..";
$pass="..Vostra_password_database..";
$link = mysql_connect($hos,$user,$pass);//variabile di connessione database
//FINE variabili database
if($attivaform==2){//se il form è stato attivato proseguo
if($termini==2){//se il box 'termini e condizioni' è stato attivato proseguo
$grand=filesize($_FILES['newfoto']['tmp_name']);//Controllo la grandezza della foto
if($grand<=1000){//Se la foto è minore di 1000 byte proseguo. Dato da variare in funzione alle tue esigenze
if ($_FILES['newfoto']['type'] == "image/gif" or $_FILES['newfoto']['type'] == "image/jpg" or $_FILES['newfoto']['type'] == "image/jpeg"){//se la foto è uno di queti tre formati proseguo
copy ($_FILES['newfoto']['tmp_name'], "/home/httpd/vhosts/nome_vostro_sito/httpdocs/nome_vostra_directory_foto/".$_FILES['newfoto']['name']);//copio la foto nella directory che ho creato (deve avere tutti i permessi di scrittura attivi)
$foto3=$_FILES['newfoto']['name'];
//CONTROLLO SE ESISTE UN NOME UGUALE NELLA DIRECTORY (Praticamente impossibile perchè il nome foto è il timestamp di salvataggio, comunque...):
$ra=time();//variabile con il timestamp
$veriffoto="/home/httpd/vhosts/nome_vostro_sito/httpdocs/nome_vostra_directory_foto/".$ra.".jpg";
while(is_file($veriffoto)){//Proseguo con il ciclo while fino a quando non trovo un nome libero
$ra=time();
$veriffoto="/home/httpd/vhosts/nome_vostro_sito/httpdocs/nome_vostra_directory_foto/".$ra.".jpg";
}
$foto4=$ra;
//MEMORIZZO I DATI NEL DATABASE
$ipfoto=$_SERVER['REMOTE_ADDR'];//ricavo l'ip del navigatore
mysql_db_query($database,"insert into foto (nomefoto, ipfoto, commento, alt) values('".$foto4."', '".$ipfoto."', '".$commento."', '".$foto3."')",$link);
//adesso cambio il nome della foto
rename("/home/httpd/vhosts/nome_vostro_sito/httpdocs/nome_vostra_directory_foto/".$foto3, "/home/httpd/vhosts/nome_vostro_sito/httpdocs/nome_vostra_directory_foto/".$foto4.".jpg");//Rinomino la foto che in precedenza avevo salvato con il suo vero nome
$errornewfoto=2;//nessun errore
}
else{
$errornewfoto=3;//formato NON supportato
}
}
else{
$errornewfoto=4;//foto troppo grande
}
}
else{
$errornewfoto=5;//termini e condizioni NON letti
}
}
//MESSAGGI DI ERRORE O CONFERMA
if($errornewfoto==2){echo"<br><br><center>FOTO INSERITA CON SUCCESSO</center><br><br>";}
if($errornewfoto==3){echo"<br><br><center>FORMATO FOTO NON SUPPORTATO<BR>La foto NON è stata salvata</center><br><br>";}
if($errornewfoto==4){echo"<br><br><center>FOTO TROPPO GRANDE<BR>La foto NON è stata salvata</center><br><br>";}
if($errornewfoto==5){echo"<br><br><center>TERMINI NON LETTI<BR>La foto NON è stata salvata</center><br><br>";}
//DA ADESSO CHIUDO CON php E PROSEGUO CON IL FORM HTML ?>
<center>
<table class="testo" width="500" cellpadding="15">
<tr><td align="center">
<fieldset style="margin:10px 0px 0px 0px">
<legend>Inserisci una foto:</legend>
<div style="padding:3px">
<form action="nome_vostra_pagina_utilizzo_form" method="POST" enctype="multipart/form-data">
<input type="hidden" name="attivaform" value="2">
<textarea rows="8" cols="80" wrap="virtual" style="background:#FFFFE6 ; font-size: 9px; COLOR: #C0C0C0; FONT-FAMILY: Verdana, arial;">
Termini, condizioni e privacy
ASSOLUTAMENTE VIETATO:- Inserire foto che possono risultare: offensive, pornografiche, a sfondo razziale, illegali secondo leggi vigenti italiane ed internazionali.
- Inserire immagini coperte da copyright (anche se ne siete i proprietari).
- Inserire immagini che possano violare la privacy di terze parti.
ALTRE CONDIZIONI:
- TUTTE le immagini inserite potranno essere cancellate SOLO dal webmaster del sito allwebfree.it
- Il navigatore è il solo responsabile del materiale da lui stesso salvato.
- Tutto ciò che è legato direttamente ed anche indirettamente all'utilizzo del seguente script può variare o cessare senza preavviso o comunicazione alcuna.
- Il codice IP di chi inserisce l'immagine, la data e l'ora dell'inserimento sono visibili da ogni utente.
</textarea><br>
Ho letto ed accetto le condizioni
<font color="red"><b></b></font><input type="checkbox" name="termini" value="2">
<br>
<br>
<font color="blue" size="2"><b>Carica foto:</b></font><br>
Puoi inserire immagini di formato .jpg .jpeg .gif<br>
e con grandezza NON superiore a 100 byte (piccole).<br>
Per motivi di spazio nello script di esempio le immagini saranno visibili con formato 60x60px.<br>
<input type="file" name="newfoto" size="18"><br>
<br>
<input type="text" name="commentofoto" value="commenta..." size=30 maxlength=100><br>
<br>
<input type="submit" style="font-size : 10px; color : blue; background:#CECEFF ; font-family :verdana, arial; font-weight : bold;" value="Invia"><br>
<b>N.B.</b> Devi attendere che la foto sia caricata sul nostro sito
</form>
</div>
</fieldset>
</td></tr></table>
</center>
<br>
<br>
<br>
<center><h3>FOTO INSERITE:</h3></center>
<center>Le foto sono ordinate per data di inserimento<br>
Per motivi di spazio saranno visibili con formato 60x60px.</center><br>
<br>
<br>
<?
//RIAPRO php E MOSTRO LE FOTO FINORA SALVATE
$queryfoto=mysql_db_query($database,"select * from foto order by nomefoto DESC ",$link);
$risultati=mysql_num_rows($queryfoto);
//TROVO IL NUMERO DI PAGINE
$rispag=15;//15 sono i risultati per pagina (5 file da 3) modificatelo in funzione delle vs. esigenze
$numpag=ceil($risultati/$rispag);//numero di pagine
//agisco sulle variabili del ciclo while (vedi sotto) per estrarre SOLO i risultati che mi interessano (in base al numero di pagina)
if(!isset($hfoto) or $hfoto==0){$aa=0; $risultati2=$rispag;}//se sono alla pagina iniziale mostro i primi 15 risultati
else{$aa=$hfoto$rispag; $risultati2=$aa+$rispag;}//altrimenti mostro i risultati in base al numero della pagina
if($risultati2>$risultati){$risultati2=$risultati;}//se sono nell'ultima pagina evito di mostrare risultati inesistenti
//TABELLA CON IL NUMERO DI PAGINE E LORO LINK
echo"<fieldset style="margin:10px 0px 0px 0px">
<legend>".$numpag." pagine:</legend>
<div style="padding:3px">";
for($aa3=0;$aa3<$numpag;$aa3++){
$aa3b=$aa3+1;//$aa3b deve essere una unità superiore al reale numero della pagina, altrimenti partiamo dalla pagina zero, la usiamo solo per mostrare il numero di pagina al navigatore, nel link utiliziamo $aa3
echo" <a href="articolo_php_salvare_dati_da_pc_utente_2.php?hfoto=".$aa3."">".$aa3b."</a> ";
}
echo"</div>
</fieldset>";
$aa2=0;//veriabile per andare 'a capo' nella tabella delle foto
echo"<table class="testo" width="100%"><tr>";
while($aa<$risultati2){//Queste due variabili sono risultate dalle pagine trovate
//ESTRAGGO I DATI DAL DATABASE
$nomefoto=@mysql_result($queryfoto,$aa,"nomefoto");
$timefoto=date('d-m-y H:i:s',$nomefoto);
$ipfoto=@mysql_result($queryfoto,$aa,"ipfoto");
$commento=@mysql_result($queryfoto,$aa,"commento");
$alt=@mysql_result($queryfoto,$aa,"alt");
if($aa2==3){echo"</tr><tr>"; $aa2=0;}//se modifico questo dato (adesso 3) ottengo + o - risultati per riga
echo"<td align="center"><img width="60" height="60" src="nome_vostra_directory_foto/".$nomefoto.".jpg" alt="".$alt.""><br>
<font size="1">
Inserito il ".$timefoto."<br>
Da:".$ipfoto."<br>
</font>
COMMENTO:<br>
".$commento."
</td>";
$aa++;
$aa2++;
}
echo"</tr></table>";
?>
[/php]
lo so, ho fatto un macello...
ho provato a mescolare un pò le cose ma non viene....c'è qualcuno di buona volontà che mi faccia allegare le immagini
con un semplice script inserito in quei 3 in alto che ho messo....nel codice riportato devi spuntare la casella per accettare i termini...
creare la tabella nel database.... e poi mi risultano
2 pulsanti per l'invio... e non credo neanche che metta l'immagine
nel posto giusto.... se qualcuno riuscisse ad aiutarmi....
credo che non sia difficile.... ma di programmazione capisco poco...cmq grazie....
-
un thread sotto il tuo c'era uno che parlava di upload e c'era questo link http://www.giorgiotave.it/guida_php/upload_file.php
-
ti ringrazio infinitamente....
farò un pò di prove per vedere se riesco....la vedo dura inserire il codice al posto giusto... ma ci proverò...
ma se qualcuno ben allenato riuscisse subito
a colpo d'occhio a dirmi come fare sarebbe ancora meglio....cmq di nuovo grazie
-
Ciao lovemusic,ricorda la prossima volta di mettere il codice tra gli appositi tags [ PHP ] e [/ PHP ],senza spazi.
Per stavolta lo faccio io per te
Ciao!