Eseguire controlli sul form delle foto

searedone

Utente Attivo
11 Giu 2010
508
0
0
Sera a tutti,
non ho mai fatto i controlli per le foto quindi non so,
lo script che posto oltre a postarmi i messaggi mi carica 5 foto.

se le carico tutte e 5 e piccole not problem, se invece le carico grosse non mi da' errore
ovvio non ci sono controlli...

chi mmi sa dire come implementarli ???

tra l'altro non capisco io in teoria ho un limite di 100kb per foto e il campo in mysql e longblob ...

perché mi da errore a volte anche se metto 100kb per foto ????

PHP:
 <?php echo $_SESSION['user_id'];   

require ("db_connect.php");    

  

if (isset($_POST['messaggio'])): 


  // x un nuovo annuncio usa il form   
     

 $user_id = $_POST['user_id'];   

  $aid = $_POST['aid'];   
  $cid = $_POST['cid'];   
  $did = $_POST['did'];   
   $eid = $_POST['eid'];   
    $fid = $_POST['fid']; 
     $hid = $_POST['hid'];   
    $gid = $_POST['gid']; 
    $sid = $_POST['sid']; 
    $mid = $_POST['mid'];  
  
 $messaggio=$_POST["messaggio"]; 
$messaggio=ereg_replace("\n","<br>",$messaggio);  
  $mq = $_POST['mq'];   
   $via = $_POST['via']; 
    $strumentazione = $_POST['strumentazione']; 
     $dotazione = $_POST['dotazione']; 
  $locali = $_POST['locali'];   
  $prezzo = $_POST['prezzo'];   
  $tipologia = $_POST['tipologia'];   
  $altro = $_POST['altro'];   
  $cats = $_POST['cats'];   
   
   
 $nome_file_temporaneo = $_FILES['file_inviato']['tmp_name']; 
    $nome_file_vero = $_FILES['file_inviato']['name']; 
    $tipo_file = $_FILES['file_inviato']['type']; 
    $dati_file = file_get_contents($nome_file_temporaneo); 
    $dati_file = addslashes($dati_file); 
     
     $nome_file_temporaneo2 = $_FILES['file_inviato2']['tmp_name']; 
    $nome_file_vero2 = $_FILES['file_inviato2']['name']; 
    $tipo_file2 = $_FILES['file_inviato2']['type']; 
    $dati_file2 = file_get_contents($nome_file_temporaneo2); 
    $dati_file2 = addslashes($dati_file2); 
   
   
   $nome_file_temporaneo3 = $_FILES['file_inviato3']['tmp_name']; 
    $nome_file_vero3 = $_FILES['file_inviato3']['name']; 
    $tipo_file3 = $_FILES['file_inviato3']['type']; 
    $dati_file3 = file_get_contents($nome_file_temporaneo3); 
    $dati_file3 = addslashes($dati_file3); 
     
     $nome_file_temporaneo4 = $_FILES['file_inviato4']['tmp_name']; 
    $nome_file_vero4 = $_FILES['file_inviato4']['name']; 
    $tipo_file4 = $_FILES['file_inviato4']['type']; 
    $dati_file4 = file_get_contents($nome_file_temporaneo4); 
    $dati_file4 = addslashes($dati_file4); 


 $nome_file_temporaneo5 = $_FILES['file_inviato5']['tmp_name']; 
    $nome_file_vero5 = $_FILES['file_inviato5']['name']; 
    $tipo_file5 = $_FILES['file_inviato5']['type']; 
    $dati_file5 = file_get_contents($nome_file_temporaneo5); 
    $dati_file5 = addslashes($dati_file5); 
     
    if(get_magic_quotes_gpc()) {  
     
     
    $messaggio=stripslashes($messaggio); 

}   


$messaggio =mysql_real_escape_string($messaggio);  

  if ($aid == '') {   
    exit('<p>Non hai inserito la provincia.</p>');   
  }  
   
  if ($cid == '') {   
    exit('<p>Non hai inserito il comune</p>');   
  }  
   
  if ($did == '') {   
    exit('<p>Non hai inserito il comune.</p>');   
  }  

if ($eid == '') {   
    exit('<p>Non hai inserito la tipologia del cliente</p>');   
  }  
   
  if ($fid == '') {   
    exit('<p>Non hai scelto il tipo di barca es nuovo, usato, ecc</p>');   
  }  


if ($gid == '') {   
    exit('<p>Non hai inserito le condizioni della barca</p>');   
  }  

if ($mid == '') {   
    exit('<p>Non hai inserito la tipologia di barca</p>');   
  }  
if ($sid == '') {   
    exit('<p>Non hai inserito la fascia di prezzo</p>');   
  }  



  $sql = "INSERT INTO annunci SET   
      descrizione='$descrizione',  
      messaggio='$messaggio',   
      mq='$mq',   
      locali='$locali',   
      prezzo='$prezzo',   
      tipologia='$tipologia',   
       strumentazione='$strumentazione',   
        dotazione='$dotazione',   
      altro='$altro',  
      via='$via',  
      
      provinciaid='$aid',   
      cittaid='$cid',   
      regioneid='$did',   
      clienteid='$eid',   
       tipoid='$fid',   
       modelloid='$mid', 
       fasciaid='$sid',   
       condizioniid='$gid', 
       nome_file = '$nome_file_vero',  
                tipo_file = '$tipo_file',  
                dati_file = '$dati_file',  
                 
                nome_file2 = '$nome_file_vero2',  
                tipo_file2 = '$tipo_file2',  
                dati_file2 = '$dati_file2',  
                 
                nome_file3 = '$nome_file_vero3',  
                tipo_file3 = '$tipo_file3',  
                dati_file3 = '$dati_file3',  
                 
                nome_file4 = '$nome_file_vero4',  
                tipo_file4 = '$tipo_file4',  
                dati_file4 = '$dati_file4',  
                 
                nome_file5 = '$nome_file_vero5',  
                tipo_file5 = '$tipo_file5',  
                dati_file5 = '$dati_file5',  
         
      user_id=".$_SESSION['user_id'].""; 
  if (@mysql_query($sql)) { 
    echo '<p></p>'; 
  } else { 
    exit('<p>Errore aggiunta nuovo annuncio: ' . mysql_error() . '</p>'); 
  } 
   
  
  $jid = mysql_insert_id(); 

  if (isset($_POST['cats'])) { 
    $cats = $_POST['cats']; 
  } else { 
    $cats = array(); 
  } 

  $numCats = 0; 
  foreach ($cats as $catID) { 
    $sql = "INSERT IGNORE INTO cittaprovinciauser 
            SET annunciid=$jid, cittaid=$catID, regioneid=$catID,  clienteid=$catID, tipoid=catID, condizioniid=catID "; 
    $ok = @mysql_query($sql); 
    if ($ok) { 
      $numCats = $numCats + 1; 
    } else { 
      echo "<p>Errore inserimento annuncio $catID: " . 
          mysql_error() . '</p>'; 
    } 
   
  } 
  ?> 
   
  
<p>Annuncio salvato correttamente <?php echo $Cats; ?> categories.</p> 

<h2>Clicca qui per tornare alla tua home page</h2> 
<a href="mypage.php"><button class="button orangeButt"><br />Ritorna a my page<br /><br /></button></a> 
<?php 
else: // inserimento provincia e citta' 

  $authors = @mysql_query('SELECT id, name FROM provincia'); 
  if (!$authors) { 
    exit('<p>errore inserimento provincia.</p>'); 
  } 

  $cats = @mysql_query('SELECT id, citta FROM citta'); 
  if (!$cats) { 
    exit('<p>errore inserimento citta.</p>'); 
  } 
   
  $regiones = @mysql_query('SELECT id, regione FROM regione'); 
  if (!$regiones) { 
    exit('<p>errore inserimento regione.</p>'); 
  } 
   
  $clientes = @mysql_query('SELECT id, cliente FROM cliente'); 
  if (!$clientes) { 
    exit('<p>errore inserimento tipologia venditore.</p>'); 
  } 
   
  $tipos = @mysql_query('SELECT id, tipo FROM tipo'); 
  if (!$tipos) { 
    exit('<p>errore inserimento tipologia barca.</p>'); 
  } 
   
  $condizionis = @mysql_query('SELECT id, condizioni FROM condizioni'); 
  if (!$condizionis) { 
    exit('<p>errore inserimento condizioni.</p>'); 
  } 
   
  $modellos = @mysql_query('SELECT id, modello FROM modello'); 
  if (!$modellos) { 
    exit('<p>errore inserimento tipo barca.</p>'); 
  } 
   
 $fascias = @mysql_query('SELECT id, fascia FROM fascia'); 
  if (!$fascias) { 
    exit('<p>errore inserimento fascia prezzo.</p>'); 
  } 
   
  
?> 
  


<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"  method="post" enctype="multipart/form-data">  
<p><h1>Inserisci annuncio</h1> 
<h2>Dati Barca</h2> 
lunghezza o piedi:<br /> 
<textarea name="mq" rows="1" cols="10"> 
</textarea><br/> 
Cabine:<br /> 
<textarea name="locali" rows="1" cols="10"> 
</textarea><br/> 

Bagni:<br /> 
<textarea name="tipologia" rows="1" cols="15"> 
</textarea><br/> 
Motorizzazione:<br /> 
<textarea name="altro" rows="1" cols="15"> 
</textarea><br/> 
descrizione<br /> 
<textarea name="messaggio" rows="10" cols="75"> 
</textarea></p> 
Strumentazione di bordo<br /> 
<textarea name="strumentazione" rows="10" cols="75"> 
</textarea></p> 
Dotazioni di bordo<br /> 
<textarea name="dotazione" rows="10" cols="75"> 
</textarea></p> 
<h3>Inserire il prezzo e la fascia di prezzo, solo in caso di trattativa riservata <br /> 
non aggiungere il prezzo ma selezionare trattativa riservata</h3>  
prezzo:<br /> 
<textarea name="prezzo" rows="1" cols="15"> 
</textarea><br/> 

<p>Fascia di prezzo:<br /> 
<select name="sid" size="1"> 
  <option selected value="">Seleziona fascia di prezzo</option> 
  <option value="">---------</option> 
<?php 
   while ($fascia = mysql_fetch_array($fascias)) { 
    $sid = $fascia['id']; 
    $sfascia = htmlspecialchars($fascia['fascia']); 
    echo "<option value='$sid'>$sfascia</option>\n"; 
  } 
?> 
</select></p> 

<p>Condizioni Barca:<br /> 
<select name="gid" size="1"> 
  <option selected value="">Condizioni Barca:</option> 
  <option value="">---------</option> 
<?php 
   while ($condizioni = mysql_fetch_array($condizionis)) { 
    $gid = $condizioni['id']; 
    $gcondizioni = htmlspecialchars($condizioni['condizioni']); 
    echo "<option value='$gid'>$gcondizioni</option>\n"; 
  } 
?> 

</select></p> 
<h3>Inserire dove si trova la barca </h3> 
<p>Regione:<br /> 
<select name="did" size="1"> 
  <option selected value="">Seleziona Regione</option> 
  <option value="">---------</option> 
<?php 
   while ($regione = mysql_fetch_array($regiones)) { 
    $did = $regione['id']; 
    $dregione = htmlspecialchars($regione['regione']); 
    echo "<option value='$did'>$dregione</option>\n"; 
  } 
?> 
</select></p> 


<p>Provincia:<br /> 
<select name="aid" size="1"> 
  <option selected value="">Seleziona Provincia</option> 
  <option value="">---------</option> 
<?php 
  while ($author = mysql_fetch_array($authors)) { 
    $aid = $author['id']; 
    $aname = htmlspecialchars($author['name']); 
    echo "<option value='$aid'>$aname</option>\n"; 
  } 
?> 
</select></p> 
<p>Comune:<br /> 
<select name="cid" size="1"> 
  <option selected value="">Seleziona Citta</option> 
  <option value="">---------</option> 
<?php 
   while ($cat = mysql_fetch_array($cats)) { 
    $cid = $cat['id']; 
    $cname = htmlspecialchars($cat['citta']); 
    echo "<option value='$cid'>$cname</option>\n"; 
  } 
?> 
</select></p> 

Via<br /> 
<textarea name="via" rows="1" cols="25"> 
</textarea></p> 


<p>Tipo Cliente:<br /> 
<select name="eid" size="1"> 
  <option selected value="">Seleziona tipo cliente</option> 
  <option value="">---------</option> 
<?php 
   while ($cliente = mysql_fetch_array($clientes)) { 
    $eid = $cliente['id']; 
    $ecliente = htmlspecialchars($cliente['cliente']); 
    echo "<option value='$eid'>$ecliente</option>\n"; 
  } 
  ?> 
</select></p> 




<p>Canale Annuncio:<br /> 
<select name="fid" size="1"> 
  <option selected value="">Seleziona tipo annuncio</option> 
  <option value="">---------</option> 
<?php 
   while ($tipo = mysql_fetch_array($tipos)) { 
    $fid = $tipo['id']; 
    $ftipo = htmlspecialchars($tipo['tipo']); 
    echo "<option value='$fid'>$ftipo</option>\n"; 
  } 
  ?> 
</select></p> 

<p>Tipo barca Annuncio:<br /> 
<select name="mid" size="1"> 
  <option selected value="">Seleziona tipo annuncio</option> 
  <option value="">---------</option> 
<?php 
   while ($modello = mysql_fetch_array($modellos)) { 
    $mid = $modello['id']; 
    $mmodello = htmlspecialchars($modello['modello']); 
    echo "<option value='$mid'>$mmodello</option>\n"; 
  } 
  ?> 
</select></p> 



  

<h3>Peso massimo per foto 100 KB</h3> 
<input type="hidden" value="1000000" name="MAX_FILE_SIZE" /> 
    
  
 <input type="file" name="file_inviato">  
 <br/> 
 <br/> 
 <input type="file" name="file_inviato2">  
 <br/> 
 <br/> 
 <input type="file" name="file_inviato3">  
 <br/> 
 <br/> 
 <input type="file" name="file_inviato4">  
 <br/> 
 <br/> 
 <input type="file" name="file_inviato5">  
 <br/> 
 <br/> 
<button class="button orangeButt"><br />Pubblica<br /><br /></button> 
</form> 

<?php endif; ?>
 
ciao
usa
$_FILES['file_inviato']['size']
ti restituisce le grandezza in byte
PHP:
<?php
//......
$max_grandezza = 50; //50 kb
if(($_FILES['file_inviato']['size']/1024 ) > $max_grandezza){
   echo "file troppo grande: > 50 kb";
}else{
   echo "file OK";
}
//....
?>
 
Ciao
ho capito bene devo fare così:

$nome_file_temporaneo = $_FILES['file_inviato']['size']; // e cambiarlo a tutti

oppure devo aggiungere

PHP:
$nome_file_temporaneo5 = $_FILES['file_inviato5']['tmp_name'];
$nome_file_temporaneo5 =$_FILES['file_inviato']['size']  // aggiungo questo ad insert
    $nome_file_vero5 = $_FILES['file_inviato5']['name'];  
    $tipo_file5 = $_FILES['file_inviato5']['type'];  
    $dati_file5 = file_get_contents($nome_file_temporaneo5);  
    $dati_file5 = addslashes($dati_file5);

e questo
PHP:
<?php 
//...... 
$max_grandezza = 50; //50 kb 
if(($_FILES['file_inviato']['size']/1024 ) > $max_grandezza){ 
   echo "file troppo grande: > 50 kb"; 
}else{ 
   echo "file OK"; 
} 
//.... 
?>
lo aggiungo prima di

PHP:
<h3>Peso massimo per foto 100 KB</h3>  
<input type="hidden" value="1000000" name="MAX_FILE_SIZE" />  
     
   
 <input type="file" name="file_inviato">   
 <br/>  
 <br/>  
 <input type="file" name="file_inviato2">   
 <br/>  
 <br/>  
 <input type="file" name="file_inviato3">   
 <br/>  
 <br/>  
 <input type="file" name="file_inviato4">   
 <br/>  
 <br/>  
 <input type="file" name="file_inviato5">   
 <br/>  
 <br/>  
<button class="button orangeButt"><br />Pubblica<br /><br /></button>  
</form>

Ho capito bene ??????
 
Ho provato anche così,
ma mi da' ok ancora prima di caricare il file :(

PHP:
<input type="hidden" value="1000000" name="MAX_FILE_SIZE" />
 
 
 <input type="file" name="file_inviato"> 
 <?php 
//...... 
$max_grandezza = 50; //50 kb 
if(($_FILES['file_inviato']['size']/1024 ) > $max_grandezza){ 
   echo "file troppo grande: > 50 kb"; 
}else{ 
   echo "file OK"; 
} 
//.... 
?>
 <br/>
 <br/>
 <input type="file" name="file_inviato2"> 
 <br/>
 <br/>
 <input type="file" name="file_inviato3"> 
 <br/>
 <br/>
 <input type="file" name="file_inviato4"> 
 <br/>
 <br/>
 <input type="file" name="file_inviato5"> 
 <br/>
 <br/>
<button class="button orangeButt"><br />Pubblica<br /><br /></button>
</form>
 
Ho risolto così...

grazie milleeeeeeeeee :)

PHP:
	$max_grandezza = 100; //50 kb 
if(($_FILES['file_inviato']['size']/1024 ) > $max_grandezza){ 
   echo "file troppo grande: > 50 kb"; 
}else{ 
   echo "file 1 OK"; 
} 
$max_grandezza = 100; //50 kb 
if(($_FILES['file_inviato2']['size']/1024 ) > $max_grandezza){ 
   echo "file troppo grande: > 50 kb"; 
}else{ 
   echo "file 2 OK"; 
} 
$max_grandezza = 100; //50 kb 
if(($_FILES['file_inviato3']['size']/1024 ) > $max_grandezza){ 
   echo "file troppo grande: > 50 kb"; 
}else{ 
   echo "file 3 OK"; 
} 
$max_grandezza = 100; //50 kb 
if(($_FILES['file_inviato4']['size']/1024 ) > $max_grandezza){ 
   echo "file troppo grande: > 50 kb"; 
}else{ 
   echo "file 4 OK"; 
} 
$max_grandezza = 100; //50 kb 
if(($_FILES['file_inviato5']['size']/1024 ) > $max_grandezza){ 
   echo "file troppo grande: > 50 kb"; 
}else{ 
   echo "file 5 OK"; 
}

L'unico problema che è rimasto se posto solo una foto su 4 è che mi da questo errore on line che non mi dava in locale :(

Warning: file_get_contents() [function.file-get-contents]: Filename cannot be empty in /var/www/vhosts/usatobarchenautica.it/httpdocs/nuovo.php on line 148

Che posso fare ???? forse l'unica sarebbe dire al form che se uno posta la foto ok com'è ora se invece non posta la foto di mettere una di default ??? se qualcuno mi sa dire come posso risolvere in entrambi i casi grazie mille ...
 
Ultima modifica:
ciao
prova a mettere tanti if per ciascun file (ti metto solo il primo)
PHP:
<?php
//...
$max_grandezza = 100;
if($_FILES['file_inviato']['tmp_name']) !=""){//è stato scelto un file
	if($_FILES['file_inviato']['size']/1024 ) <= $max_grandezza){//grandezza ok
		$nome_file_temporaneo = $_FILES['file_inviato']['tmp_name'];
		$grandezza_file_temporaneo =$_FILES['file_inviato']['size']  // aggiungo questo ad insert
		$nome_file_vero = $_FILES['file_inviato']['name'];  
		$tipo_file = $_FILES['file_inviato']['type'];  
		$dati_file = file_get_contents($nome_file_temporaneo);  //??non capisco a che ti serva??
		$dati_file = addslashes($dati_file);
	}else{//grandezza ko
		//forse qui ti conviene ritornare al form di inserimento
	}
}else{
	//vuota tutte le variabile relative al file, i campi rimarranno vuoti
}
//...
?>



p.s.
una nota, non solo per te, ma per tanti altri che fanno l'errore di scrivere KB
il prefisso kilo si scrive minuscolo
kB
kg
km
kW ....
 
Ciao Borgo,
grazie mille ho fatto qualche piccola correzione al codice perché negli if avevi dimenticato la parentesi e un ; :)

Inizio a capirci qualcosa era ora:)

Piccolo problemino pero' ancora con il codice....

Allo ra il mex di errore è sparito adesso se posto l'annuncio non viene più fuori.

Pero' mi posta file 1 OK quando non c'è la foto al posto dell'errore , se il file è più grande mi posta lostesso l'annuncio scrivendomi che c'è errore ma il post funziona :(

Ultimo problema anche se banale se posto la foto giusta nei 100kb non mi dice file 1 2 ecc ok ma non mi da' nulla ........

Perché che manca ancora???

codice

PHP:
$max_grandezza = 100; 
if(($_FILES['file_inviato']['tmp_name']) !=""){//è stato scelto un file 
    if(($_FILES['file_inviato']['size']/1024 ) <= $max_grandezza){//grandezza ok 
        $nome_file_temporaneo = $_FILES['file_inviato']['tmp_name']; 
        $grandezza_file_temporaneo =$_FILES['file_inviato']['size'];  // aggiungo questo ad insert 
        $nome_file_vero = $_FILES['file_inviato']['name'];   
        $tipo_file = $_FILES['file_inviato']['type'];   
        $dati_file = file_get_contents($nome_file_temporaneo);  //??non capisco a che ti serva?? 
        $dati_file = addslashes($dati_file); 
    }else{   //grandezza ko 
         echo "file troppo grande: > 100 kb";//forse qui ti conviene ritornare al form di inserimento 
    } 
}else{ 
    echo "   file 1 OK  |"; //vuota tutte le variabile relative al file, i campi rimarranno vuoti 
} 
$max_grandezza = 100; 
if(($_FILES['file_inviato2']['tmp_name']) !=""){//è stato scelto un file 
    if(($_FILES['file_inviato2']['size']/1024 ) <= $max_grandezza){//grandezza ok 
        $nome_file_temporaneo2 = $_FILES['file_inviato2']['tmp_name']; 
        $grandezza_file_temporaneo2 =$_FILES['file_inviato2']['size'];  // aggiungo questo ad insert 
        $nome_file_vero2 = $_FILES['file_inviato2']['name'];   
        $tipo_file2 = $_FILES['file_inviato2']['type'];   
        $dati_file2 = file_get_contents($nome_file_temporaneo2);  //??non capisco a che ti serva?? 
        $dati_file2 = addslashes($dati_file2); 
    }else{   //grandezza ko 
         echo "file troppo grande: > 100 kb";//forse qui ti conviene ritornare al form di inserimento 
    } 
}else{ 
    echo "   file 2 OK  |"; //vuota tutte le variabile relative al file, i campi rimarranno vuoti 
} 

$max_grandezza = 100; 
if(($_FILES['file_inviato3']['tmp_name']) !=""){//è stato scelto un file 
    if(($_FILES['file_inviato3']['size']/1024 ) <= $max_grandezza){//grandezza ok 
        $nome_file_temporaneo3 = $_FILES['file_inviato3']['tmp_name']; 
        $grandezza_file_temporaneo3 =$_FILES['file_inviato3']['size'];  // aggiungo questo ad insert 
        $nome_file_vero3 = $_FILES['file_inviato3']['name'];   
        $tipo_file3 = $_FILES['file_inviato3']['type'];   
        $dati_file3 = file_get_contents($nome_file_temporaneo3);  //??non capisco a che ti serva?? 
        $dati_file3 = addslashes($dati_file3); 
    }else{   //grandezza ko 
         echo "file troppo grande: > 100 kb";//forse qui ti conviene ritornare al form di inserimento 
    } 
}else{ 
    echo "   file 3 OK  |"; //vuota tutte le variabile relative al file, i campi rimarranno vuoti 
} 

$max_grandezza = 100; 
if(($_FILES['file_inviato4']['tmp_name']) !=""){//è stato scelto un file 
    if(($_FILES['file_inviato4']['size']/1024 ) <= $max_grandezza){//grandezza ok 
        $nome_file_temporaneo4 = $_FILES['file_inviato4']['tmp_name']; 
        $grandezza_file_temporaneo4 =$_FILES['file_inviato4']['size'];  // aggiungo questo ad insert 
        $nome_file_vero4 = $_FILES['file_inviato4']['name'];   
        $tipo_file4 = $_FILES['file_inviato4']['type'];   
        $dati_file4 = file_get_contents($nome_file_temporaneo4);  //??non capisco a che ti serva?? 
        $dati_file4 = addslashes($dati_file4); 
    }else{   //grandezza ko 
         echo "file troppo grande: > 100 kb";//forse qui ti conviene ritornare al form di inserimento 
    } 
}else{ 
    echo "   file 4 OK  |"; //vuota tutte le variabile relative al file, i campi rimarranno vuoti 
} 

$max_grandezza = 100; 
if(($_FILES['file_inviato5']['tmp_name']) !=""){//è stato scelto un file 
    if(($_FILES['file_inviato5']['size']/1024 ) <= $max_grandezza){//grandezza ok 
        $nome_file_temporaneo5 = $_FILES['file_inviato5']['tmp_name']; 
        $grandezza_file_temporaneo5 =$_FILES['file_inviato5']['size'];  // aggiungo questo ad insert 
        $nome_file_vero5 = $_FILES['file_inviato5']['name'];   
        $tipo_file5 = $_FILES['file_inviato5']['type'];   
        $dati_file5 = file_get_contents($nome_file_temporaneo5);  //??non capisco a che ti serva?? 
        $dati_file5 = addslashes($dati_file5); 
    }else{   //grandezza ko 
         echo "file troppo grande: > 100 kb";//forse qui ti conviene ritornare al form di inserimento 
    } 
}else{ 
    echo "   file 5 OK  |"; //vuota tutte le variabile relative al file, i campi rimarranno vuoti 
}
 
Se metto un ritorno al form in caso di file troppo grande così

PHP:
$max_grandezza = 100; 
if(($_FILES['file_inviato']['tmp_name']) !=""){//è stato scelto un file 
    if(($_FILES['file_inviato']['size']/1024 ) <= $max_grandezza){//grandezza ok 
        $nome_file_temporaneo = $_FILES['file_inviato']['tmp_name']; 
        $grandezza_file_temporaneo =$_FILES['file_inviato']['size'];  // aggiungo questo ad insert 
        $nome_file_vero = $_FILES['file_inviato']['name'];   
        $tipo_file = $_FILES['file_inviato']['type'];   
        $dati_file = file_get_contents($nome_file_temporaneo);  //??non capisco a che ti serva?? 
        $dati_file = addslashes($dati_file); 
    }else{   //grandezza ko 
          header("Location: nuovo.php");  //forse qui ti conviene ritornare al form di inserimento 
    } 
}else{ 
    echo "   file 1 OK  |"; //vuota tutte le variabile relative al file, i campi rimarranno vuoti 
}

Mi ridà il solito errore

Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/usatobarchenautica.it/httpdocs/nuovo.php:33) in /var/www/vhosts/usatobarchenautica.it/httpdocs/nuovo.php on line 151

Questo il mex invece per le due foto vuote file 4 OK | file 5 OK |

Un ultima domanda ho visto che ormai la maggior parte di foto delle macchine digitali hanno un peso intorno ad 1 mb ho smanettato tutta sera e trovo sempre che un mb e 1024 kb io qui ho: $max_grandezza = 100; if(($_FILES['file_inviato']['size']/1024 ) <= $max_grandezza){//grandezza ok

PHP:
$max_grandezza = 100;  //qui ho provato a mettere 1000 per fare un mb ma quando carico l'annuncio con le foto mi da errore max_file   e qualcosa, io salvo in un campo longblob che so che può' contenere tra 1 mb perché ????  il form di inserimento ha <input type="hidden" value="5000000" name="MAX_FILE_SIZE" /> il problema può' essere qui ????
if(($_FILES['file_inviato']['tmp_name']) !=""){//è stato scelto un file  
    if(($_FILES['file_inviato']['size']/1024 ) <= $max_grandezza){//grandezza ok  
        $nome_file_temporaneo = $_FILES['file_inviato']['tmp_name'];  
        $grandezza_file_temporaneo =$_FILES['file_inviato']['size'];  // aggiungo questo ad insert  
        $nome_file_vero = $_FILES['file_inviato']['name'];    
        $tipo_file = $_FILES['file_inviato']['type'];    
        $dati_file = file_get_contents($nome_file_temporaneo);  //??non capisco a che ti serva??  
        $dati_file = addslashes($dati_file);  
    }else{   //grandezza ko  
         echo "file troppo grande: > 100 kb";//forse qui ti conviene ritornare al form di inserimento  
    }  
}else{  
    echo "   file 1 OK  |"; //vuota tutte le variabile relative al file, i campi rimarranno vuoti  
}  
$max_grandezza = 100;  
if(($_FILES['file_inviato2']['tmp_name']) !=""){//è stato scelto un file  
    if(($_FILES['file_inviato2']['size']/1024 ) <= $max_grandezza){//grandezza ok  
        $nome_file_temporaneo2 = $_FILES['file_inviato2']['tmp_name'];  
        $grandezza_file_temporaneo2 =$_FILES['file_inviato2']['size'];  // aggiungo questo ad insert  
        $nome_file_vero2 = $_FILES['file_inviato2']['name'];    
        $tipo_file2 = $_FILES['file_inviato2']['type'];    
        $dati_file2 = file_get_contents($nome_file_temporaneo2);  //??non capisco a che ti serva??  
        $dati_file2 = addslashes($dati_file2);  
    }else{   //grandezza ko  
         echo "file troppo grande: > 100 kb";//forse qui ti conviene ritornare al form di inserimento  
    }  
}else{  
    echo "   file 2 OK  |"; //vuota tutte le variabile relative al file, i campi rimarranno vuoti  
}  

$max_grandezza = 100;  
if(($_FILES['file_inviato3']['tmp_name']) !=""){//è stato scelto un file  
    if(($_FILES['file_inviato3']['size']/1024 ) <= $max_grandezza){//grandezza ok  
        $nome_file_temporaneo3 = $_FILES['file_inviato3']['tmp_name'];  
        $grandezza_file_temporaneo3 =$_FILES['file_inviato3']['size'];  // aggiungo questo ad insert  
        $nome_file_vero3 = $_FILES['file_inviato3']['name'];    
        $tipo_file3 = $_FILES['file_inviato3']['type'];    
        $dati_file3 = file_get_contents($nome_file_temporaneo3);  //??non capisco a che ti serva??  
        $dati_file3 = addslashes($dati_file3);  
    }else{   //grandezza ko  
         echo "file troppo grande: > 100 kb";//forse qui ti conviene ritornare al form di inserimento  
    }  
}else{  
    echo "   file 3 OK  |"; //vuota tutte le variabile relative al file, i campi rimarranno vuoti  
}  

$max_grandezza = 100;  
if(($_FILES['file_inviato4']['tmp_name']) !=""){//è stato scelto un file  
    if(($_FILES['file_inviato4']['size']/1024 ) <= $max_grandezza){//grandezza ok  
        $nome_file_temporaneo4 = $_FILES['file_inviato4']['tmp_name'];  
        $grandezza_file_temporaneo4 =$_FILES['file_inviato4']['size'];  // aggiungo questo ad insert  
        $nome_file_vero4 = $_FILES['file_inviato4']['name'];    
        $tipo_file4 = $_FILES['file_inviato4']['type'];    
        $dati_file4 = file_get_contents($nome_file_temporaneo4);  //??non capisco a che ti serva??  
        $dati_file4 = addslashes($dati_file4);  
    }else{   //grandezza ko  
         echo "file troppo grande: > 100 kb";//forse qui ti conviene ritornare al form di inserimento  
    }  
}else{  
    echo "   file 4 OK  |"; //vuota tutte le variabile relative al file, i campi rimarranno vuoti  
}  

$max_grandezza = 100;  
if(($_FILES['file_inviato5']['tmp_name']) !=""){//è stato scelto un file  
    if(($_FILES['file_inviato5']['size']/1024 ) <= $max_grandezza){//grandezza ok  
        $nome_file_temporaneo5 = $_FILES['file_inviato5']['tmp_name'];  
        $grandezza_file_temporaneo5 =$_FILES['file_inviato5']['size'];  // aggiungo questo ad insert  
        $nome_file_vero5 = $_FILES['file_inviato5']['name'];    
        $tipo_file5 = $_FILES['file_inviato5']['type'];    
        $dati_file5 = file_get_contents($nome_file_temporaneo5);  //??non capisco a che ti serva??  
        $dati_file5 = addslashes($dati_file5);  
    }else{   //grandezza ko  
         echo "file troppo grande: > 100 kb";//forse qui ti conviene ritornare al form di inserimento  
    }  
}else{  
    echo "   file 5 OK  |"; //vuota tutte le variabile relative al file, i campi rimarranno vuoti  
}
 
Ultima modifica:
ciao
prima cosa: perchè ripeti 5 volte $max_grandezza = 100; ?
poi:
l'istruzione header("Location: nuovo.php"); non può essere messa li, DEVE essere la prima (come session_start())
usa
PHP:
echo "<meta http-equiv='Refresh' content='0; URL=nuovo.php'>";
poi dove ricevi i dati metti un var_dump

PHP:
var_dump($_FILES['file_inviato']['size']);
e verifica inserendo una foto cosa ti risulta

poi non hai risposto a:
PHP:
$dati_file = file_get_contents($nome_file_temporaneo);  //??non capisco a che ti serva??
 
Perfetto così funziona ... solo un appunto : funziona mi ritorna alla pagina richiesta, ma cmq l'annuncio viene postato lo stesso :( se si può' risolvere bene se no me la gioco con la pagina di errore.....

echo "<meta http-equiv='Refresh' content='0; URL=nuovo.php'>";

adesso lo faccio atterrare ad una pagina che gli da errore di caricamento e dovrei aver risolto: )

Naturalmente grazie mille :)

$dati_file = file_get_contents($nome_file_temporaneo);

A dire il vero non lo so neanche ... questo script per caricare i file lo avevo trovato online e poi adattato alle mie esigenze ... ed era fatto pressoché simile a quello che vedi e quindi per paura che non funzionasse non l'ho tolto...

in realta era creato per una galleria fotografica e non ad un caricamento come serviva a me........

Per il mio secondo quesito quello dei pesi, o meglio di portare da 100kb ad 1mb il peso delle foto ??? come potrei fare ????

In ultimo ti chiedo solo una info ... portando in caso per comodità di chi posta l'annuncio il peso delle foto da 100kb ad 1mb dici che avrò problemi con l'estrapolazione dei dati ??? non dovrei dato che uso la join vero ???

grazie mille
 
Ultima modifica:
ciao
se non ti serve toglila
portando da 100 Kb a 1 MB non ha problemi col db, ma nel caricamento dell'immagine a video e/o in remoto (tempi biblici) non far inserire immagini che superino i 300 kB

$max_grandezza = 350;//in kb
se proprio vuoi il MB
$max_grandezza = 1000;//in kb, 1.000.000 B = 1000 kB = 1 MB circa (http://it.wikipedia.org/wiki/Mega)

poi piccolo consiglio (soprattutto se usi immagini da 1 o più mega)
fatti le tumb (a mano o tramite script) max 200x200 px
poi visualizzi le tumb dove cliccandoci sopra visualizzi l'immagine a grandezza normale
 
ciao
Per il problema che cmq posta l'annuncio hai idee ???
cioè posta il testo lascando i campi delle immagini vuote?
penso che tu possa risolvere in due modi:
1. puoi mettere un flag all'inizio (o subito prima o subito dopo $max_grandezza = 100;) es. $flag=0;
poi negli if di controllo se gtandezza > 100 porti il flag a 1 es. $flag=1;
prima di inserire il post verifichi il flag

PHP:
//...
if($flag==0){
//inserisci il post
}else{
//non inserisci il post
}
//...
2. oppure le lasci vuote e poi eventualmente inserisci le foto in un secondo momento con modifica post
 
mi sa che farò la seconda...

Molto più semplice e veloce per chi posta gli annunci...

Tramite un semplice update gli rifaccio caricare le foto errate ....

Grazie milleeeeeeee
 
Si ora me lo leggo molto bene perché mi stanno facendo impazzire ............

posto un piccolo problema che non riesco a capire....

ho una pagina dove trovo gli annunci postati se clicc o su modifica vado a questa pagina modifica.php dove trovo i dati dell'annuncio e posso modificarli...

ovviamente dopo quello che ci siamo scritti ho detto aggiungo anche la modifica delle foto, ma ta tat tatatatatataatairhwerhwierowiowehriwhiorw ... non funge, non mi prende il nome della foto e se faccio l'update mi cancella la foto vecchia e non mi posta quella nuova....

che sbaglio ???

codice

modifica.php

PHP:
<?php

session_start();

//connessione al database

include 'db_connect.php';

$result=$_SESSION['user_id'];
$result=$_SESSION['level'];


//inizio sessione per l'utente che ha effettuato il login

if(isset($_SESSION['username'])&& isset($_SESSION['password']))
{
 $_SESSION['username']; 

}else{
header("Location: login_correct.php");

}

?>



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Documento senza titolo</title>
<link href="nautica.css" rel="stylesheet" type="text/css" />
</head>
<br />
<body>

<div class="container">
  <div class="sidebar1">
    <br /><h3>
   <?php echo "Benvenuto  "   . $_SESSION['username'];?><br /> 
  <?php echo "Cod Cliente  "   . $_SESSION['user_id'];?><br />
  <?php echo "Tipo cliente  "   . $_SESSION['level'];?><br />


<br />
 <?php 
 

 $query = @mysql_query("SELECT * FROM users WHERE id=".$_SESSION['user_id']." LIMIT 1");
 
   
   while ($ris = mysql_fetch_array($query)) {  
   
$user_id = $ris['id'];
$nome_file_vero= $ris['nome_file_vero'];

 echo "<img src='immagini1.php?id=$user_id' name='nome_file_vero' width='150' height='40'/>" ;
 
 } 
 ?>

<br />
<br />
    <a href="logout.php"><button class="button orangeButt">Logout</button></a> 

 <br /> 
 <br /> 
 <br /> 
 
<?php if($_SESSION['level'] == '2'): ?>  
 
  <a href="admin.php"><button class="button orangeButt">Amministra <br />Admin</button></a>  
<?php endif; ?>  
</h3>
<br />
<br />
<br />
   
   </div>
  <div class="content1">
  <a href="mypage.php"><button class="button orangeButt"><br />My page<br /></button></a>
 <a href="anagrafica.php"><button class="button orangeButt"><br />Anagrafica<br /></button></a>
 <a href="ituoiannunci.php"><button class="button orangeButt"><br />I tuoi annunci<br /></button></a>
 <a href="nuovo.php"><button class="button orangeButt"><br />Nuovo annuncio<br /></button></a>
 <a href="logo.php"><button class="button orangeButt"><br />Inserisci il logo<br /></button></a>

   <table width="100%">
  <tr>
    <td height="41" bgcolor="#000036"></td>
  </tr>
</table>
<table width="100%">
  <tr>
    <td> 
</td>
  </tr>
</table>
    <!-- end .content --></div>
    <div class="content2">
    
    

<h3>Modifica</h3>


<?php 
require ("db_connect.php");  
if (isset($_POST['messaggio']));
//I dettagli della categoria sono stati aggiornati
$messaggio = $_POST['messaggio'];
$strumentazione = $_POST['strumentazione'];
$dotazione = $_POST['dotazione'];
$tipologia = $_POST['tipologia'];
$mq = $_POST['mq'];
$locali = $_POST['locali'];
$prezzo = $_POST['prezzo'];
$titolo = $_POST['titolo'];
$anno = $_POST['anno'];
$altro = $_POST['altro'];
$id_annunci = $_POST['id_annunci'];
$max_grandezza = 100; 
if(($_FILES['nome_file']['tmp_name']) !=""){//è stato scelto un file 
    if(($_FILES['nome_file']['size']/1024 ) <= $max_grandezza){//grandezza ok 
        $nome_file_temporaneo = $_FILES['nome_file']['tmp_name']; 
        $grandezza_file_temporaneo =$_FILES['nome_file']['size'];  // aggiungo questo ad insert 
        $nome_file_vero = $_FILES['nome_file']['name'];   
        $tipo_file = $_FILES['nome_file']['type'];   
        $dati_file = file_get_contents($nome_file_temporaneo); 
        $dati_file = addslashes($dati_file); 
    }else{   //grandezza ko 
         echo "<meta http-equiv='Refresh' content='0; URL=errore_caricamento_foto.php'>";//forse qui ti conviene ritornare al form di inserimento 
    } 
}else{ 
    echo "   Nella posizione 1 non hai postato nessuna foto  |"; //vuota tutte le variabile relative al file, i campi rimarranno vuoti 
} 
 
 $sql = "UPDATE annunci SET messaggio='$messaggio', strumentazione='$strumentazione', altro='$altro', dotazione='$dotazione', anno='$anno', tipologia='$tipologia', titolo='$titolo', mq='$mq', locali='$locali', prezzo='$prezzo', nome_file = '$nome_file_vero', tipo_file = '$tipo_file', dati_file = '$dati_file' WHERE id_annunci='$id_annunci'";
if (@mysql_query($sql)) {
	
	echo '<p>category details updated.</p>';
	
}else{
	echo '<p>Error Updating category details: ' . mysql_error() . '</p>';
}

?>
<p><a href="ituoiannunci.php">Ritorna alla pagina modifica o cancella</a></p>

<?php 

$id_annunci = $_GET['id'];
$cat = @mysql_query("SELECT * FROM annunci WHERE id_annunci='$id_annunci'");
if (!$cat) {
	exit ('<p>Error fetching category details: ' .mysql_error() . '</p>');
}
$cat = mysql_fetch_array($cat);
$id_annunci = $cat['id_annunci'];
$messaggio = $cat['messaggio'];
$strumentazione = $cat['strumentazione'];
$dotazione = $cat['dotazione'];
$mq = $cat['mq'];
$locali = $cat['locali'];
$prezzo = $cat['prezzo'];
$tipologia = $cat['tipologia'];
$titolo = $cat['titolo'];
$anno = $cat['anno'];
$altro = $cat['altro'];
$altro = $cat['altro'];
 $nome_file = $cat ['nome_file'];
  $tipo_file = $cat ['tipo_file'];
  $dati_file = $cat ['dati_file'];
  
?>

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<p>Modifica i campi del tuo annuncio:<br />
info: Basta editare nell'apposito spazio la parola/numero<br />
nuova che si vuole cambiare e una volta schiacciato il tasto invia<br />
cliccare sul tasto ritorna ai miei annuci, oppure cliccare su<br />
ritorna alla pagina delle modifiche per modificare altri annunci.</p>
Codice annuncio da modificare : <?php echo"$id_annunci"?>;<br /><br />
<br />
<label>Modello: <input type="text" name="titolo" value="<?php echo $titolo; ?>" /></label><br />
<label>Anno imbarcazione: <input type="text" name="anno" value="<?php echo $anno; ?>" /></label><br />
<label>Lunghezza: <input type="text" name="mq" value="<?php echo $mq; ?>" /></label><br />
<label>prezzo: <input type="text" name="prezzo" value="<?php echo $prezzo; ?>" /></label><br />
<label>Cabine: <input type="text" name="locali" value="<?php echo $locali; ?>" /></label><br />
<label>Bagni: <input type="text" name="tipologia" value="<?php echo $tipologia; ?>" /></label><br />
<br />
Motorizzazione:<br />
<textarea  class="text" name="altro" rows="10" cols="35"><?php echo "$altro"; ?></textarea><br />
Strumentazioni di bordo:<br />
<textarea  class="text" name="strumentazione" rows="10" cols="35"><?php echo "$strumentazione"; ?></textarea><br />
Dotazioni di bordo:<br />
<textarea  class="text" name="dotazione" rows="10" cols="35"><?php echo "$dotazione"; ?></textarea><br />
Descrizione:<br />
<textarea  class="text" name="messaggio" rows="10" cols="35"><?php echo "$messaggio"; ?></textarea><br />
<br >
<input name="nome_file" type="file" value="<?php echo $nome_file; ?>" /></input><br />// estraggo il nome della foto....  MA non capisco perchè il nome della foto non appare ?? infatti quando faccio l'update non mi carica la foto nuova ma mi cancella il file esistente e lascia il nome veccio :(

<input type="hidden" name="id_annunci" value="<?php echo "$id_annunci"; ?>" />
<button class="button orangeButt"><br />Modifica<br /><br /></button></p>


</form>
<h3>Prima di verificare le modifiche assicurati di aver cliccato sul tasto modifica</h3>
<p><a href="ituoiannunci.php">Controlla le modifiche</a></p>

    
    
    
    </div>
    </div>
    <div class="footer">
    
    </div>
  <!-- end .container --></div>
</body>
</html>
 
ciao
prima di tutto ti ricordo: "un problema un post".
poi, visto che tratti files non

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">

ma

<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data">
 
Scusa Borgo,
non ho potuto e non posso dedicare tempo al pc ... appena possibile provo e ti so dire...

Grazie mille
 

Discussioni simili