Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    343

    sera a tutti ... controlli per le foto

    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 ????

    carica.php

    Codice 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","
    "
    ,$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(
    '

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

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

    Non hai inserito il comune.</p>'
    );  
      } 

    if (
    $eid == '') {  
        exit(
    '

    Non hai inserito la tipologia del cliente</p>'
    );  
      } 
      
      if (
    $fid == '') {  
        exit(
    '

    Non hai scelto il tipo di barca es nuovo, usato, ecc</p>'
    );  
      } 


    if (
    $gid == '') {  
        exit(
    '

    Non hai inserito le condizioni della barca</p>'
    );  
      } 

    if (
    $mid == '') {  
        exit(
    '

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

    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>'
    ;
      } else {
        exit(
    '

    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 
    "

    Errore inserimento annuncio 
    $catID: " .
              
    mysql_error() . '</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">
    Ritorna a my page

    </button></a>
    <?php
    else: // inserimento provincia e citta'

      
    $authors = @mysql_query('SELECT id, name FROM provincia');
      if (!
    $authors) {
        exit(
    '

    errore inserimento provincia.</p>'
    );
      }

      
    $cats = @mysql_query('SELECT id, citta FROM citta');
      if (!
    $cats) {
        exit(
    '

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

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

    errore inserimento tipologia venditore.</p>'
    );
      }
      
      
    $tipos = @mysql_query('SELECT id, tipo FROM tipo');
      if (!
    $tipos) {
        exit(
    '

    errore inserimento tipologia barca.</p>'
    );
      }
      
      
    $condizionis = @mysql_query('SELECT id, condizioni FROM condizioni');
      if (!
    $condizionis) {
        exit(
    '

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

    errore inserimento tipo barca.</p>'
    );
      }
      
     
    $fascias = @mysql_query('SELECT id, fascia FROM fascia');
      if (!
    $fascias) {
        exit(
    '

    errore inserimento fascia prezzo.</p>'
    );
      }
      
     
    ?>
     


    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"  method="post" enctype="multipart/form-data"> 


    <h1>Inserisci annuncio</h1>
    <h2>Dati Barca</h2>
    lunghezza o piedi:

    <textarea name="mq" rows="1" cols="10">
    </textarea>

    Cabine:

    <textarea name="locali" rows="1" cols="10">
    </textarea>


    Bagni:

    <textarea name="tipologia" rows="1" cols="15">
    </textarea>

    Motorizzazione:

    <textarea name="altro" rows="1" cols="15">
    </textarea>

    descrizione

    <textarea name="messaggio" rows="10" cols="75">
    </textarea></p>
    Strumentazione di bordo

    <textarea name="strumentazione" rows="10" cols="75">
    </textarea></p>
    Dotazioni di bordo

    <textarea name="dotazione" rows="10" cols="75">
    </textarea></p>
    <h3>Inserire il prezzo e la fascia di prezzo, solo in caso di trattativa riservata 

    non aggiungere il prezzo ma selezionare trattativa riservata</h3> 
    prezzo:

    <textarea name="prezzo" rows="1" cols="15">
    </textarea>




    Fascia di prezzo:

    <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>



    Condizioni Barca:

    <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>


    Regione:

    <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>




    Provincia:

    <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>


    Comune:

    <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

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




    Tipo Cliente:

    <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>






    Canale Annuncio:

    <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>



    Tipo barca Annuncio:

    <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"> 
     

     

     <input type="file" name="file_inviato2"> 
     

     

     <input type="file" name="file_inviato3"> 
     

     

     <input type="file" name="file_inviato4"> 
     

     

     <input type="file" name="file_inviato5"> 
     

     

    <button class="button orangeButt">
    Pubblica

    </button>
    </form>

    <?php endif; ?>

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    ORRORE!
    NON mettere le immagini direttamente nel DB!!!
    Salvale in una cartella e metti nel db solo il nome dell'immagine, quando devi mostrarle leggi il nome dal db e metti sulla pagina un [img]percorso/nomefoto.jpg[/img]

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    343
    Ormai l'ho fatto così e devo sistemarlo così

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Modifica questa cosa, ti eviterai un sacco di rogne con un piccolo sforzo per convertire il tuo codice.
    Mettere le immagini direttamente nel db te lo farà diventare pesantissimo in poco tempo.
    Pensa a questo scenario: hai nel db 100 record, ognuno con un'immagine da un paio di MB, cosa molto verosimile dato che anche col telefono ormai si fanno foto così grandi. Fai una SELECT che ti recupera tutti i record della tabella ed ecco che il server si ritrova a gestire un array da 200MB.

    Modifica il codice adesso che ci stai ancora lavorando, dopo sarà molto peggio doverlo fare.

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    343
    Ma il problema per capirci --...

    e la lentezza dell'interrogazione del db ????
    utilizzo cmq una join molto più performante ...

    l'upload l'avevo provato e funzionava bene, il problema era che se un utente postava pippo.jpg e un'altro pippo.jpg mi si cancellava il precedente ..

    per questo ho abbandonato

  6. #6
    Se fai come ti consiglia Alhazred giuro che ti aiuto a gestire i file con lo stesso nome

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    343
    Se puoi provare ad aiutarmi grazie mille...


    ecco il form:



    Codice PHP:
    <input type="hidden" value="5000000" name="MAX_FILE_SIZE" />
       
     
     <
    input type="file" name="file_inviato"
     

     

     <
    input type="file" name="file_inviato2"
     

     

     <
    input type="file" name="file_inviato3"
     

     

     <
    input type="file" name="file_inviato4"
     

     

     <
    input type="file" name="file_inviato5"
     

     

    <
    button class="button orangeButt">
    Pubblica

    </button>
    </
    form
    ovviamente posto quello che ho nel form con la variavi $file_inviato ecc ecc

    ora arriva il bello dell'upload

  8. #8
    e la parte php?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.