Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    1,683

    caratteri per il database

    ciao a tutti!!!
    oggi mentre provavo il sito per vedere se ha tutto a posto ho notato che se faccio l'upload di un file che nel nome ha dei monoapici (') il file viene caricato nella cartella, ma non lo inserisce nel database
    mi dite gentilmente quali sono tutti i caratteri che possono dar questo tipo di problemi??
    grazie

  2. #2
    se ci posti il codice del file che effettua l'upload vediamo

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    1,683
    Codice PHP:
    <?

    include "check1.php";

    session_start();



    if(
    $nome_utente!='')

    {

        if(
    $_POST['commento']!=''){

            
    $tipo=$_POST['tipo'];

            
    $commento=$_POST['commento'];

            
    $voto=0;

            
    $votocommento=0;

            if(isset(
    $tipo))

            {

                
    $omonimo=1;



                
    // QUESTE RIGHE RENDONO LO SCRIPT COMPATIBILE CON LE VERSIONI

                // DI PHP PRECEDENTI ALLA 4.1.0

                
    if(!isset($_FILES)) $_FILES $HTTP_POST_FILES;

                if(!isset(
    $_SERVER)) $_SERVER $HTTP_SERVER_VARS;



                
    // Directory dove salvare i files Uploadati ( chmod 777, percorso assoluto) /public/upload

                
    $upload_dir $_SERVER["DOCUMENT_ROOT"] . "/css/login/upload/";



                
    // Eventuale nuovo nome da dare al file uploadato

                
    $new_name $_FILES["upfile"]["name"];



                
    // Se $new_name è vuota, il nome sarà lo stesso del file uploadato

                
    $file_name = ($new_name) ? $new_name $_FILES["upfile"]["name"];



                if(
    trim($_FILES["upfile"]["name"]) == "") {



                die(
    "Non hai indicato il file da uploadare !");

                }



                
    //cambia nome

                
    $nome1=$_FILES['upfile']['name'];

                
    $estensione strtolowerstrrchr$_FILES['upfile']['name'] , ".") );

                
    $nome substr$_FILES['upfile']['name'] , strlen$_FILES['upfile']['name'] ) - strlen$estensione ) );

                
    $n=1;

                
    $nuovo_nome $_FILES['upfile']['name'];

                
    $nuovo_nome $nome $n $estensione;

                if(
    file_exists"/css/login/upload/" $nome1) )

                {

                    while ( 
    file_exists"/css/login/upload/" $nuovo_nome ) )

                    {

                         
    $n++;

                         
    $nuovo_nome $nome $n $estensione;

                    }

                    
    $file_name=$nuovo_nome;

                    
    $_FILES['upfile']['name']=$nuovo_nome;

                }

                echo
    "

    "
    ;

                
    //carica file

                    
    if(@is_uploaded_file($_FILES["upfile"]["tmp_name"])) {



                    @
    move_uploaded_file($_FILES["upfile"]["tmp_name"], "$upload_dir/$file_name")

                    or die(
    "Impossibile spostare il file, controlla l'esistenza o i permessi della directory dove fare l'upload.");

                    } 

                    else {



                    die(
    "Problemi nell'upload del file " $_FILES["upfile"]["name"]);

                    }



                    
    //print_r($_FILES["upfile"]);

                    //controlla il tipo

                    
    $allowed_types = array("audio/mpeg3","audio/x-mpeg-3","video/mpeg","video/x-mpeg","audio/mpeg");

                    if(!
    in_array($_FILES["upfile"]["type"],$allowed_types)) {



                    die(
    "Il file non e' di un tipo consentito, sono ammessi solo i file mp3: " implode(","$allowed_types) . ".");

                    }



                    echo 
    "L'upload del file " $_FILES["upfile"]["name"] . " e' avvenuto correttamente";



                    
    $file=$_FILES["upfile"]["name"];

            

                    
    //carica nel db    

                
    if($tipo=='r'){

                    include 
    "config1.php";



                    
    $controllo_db mysql_query ("SELECT *FROM `utenti` WHERE `nick` = '$nome_utente'LIMIT 0 , 1   ");

                    
    $rigamysql_fetch_array($controllo_db);



                    
    $m=$riga['id'];

                    

                    
    $inserisco_dati mysql_query("INSERT INTO `mp3` ( `id` , `iduser` , `file` , `voto`, `commento`) VALUES (NULL , '$m', '$file','$voto','$commento')");

                }

                

                if(
    $tipo=='s'){

                    include 
    "config1.php";



                    
    $controllo_db mysql_query ("SELECT *FROM `utenti` WHERE `nick` = '$nome_utente'LIMIT 0 , 1   ");

                    
    $rigamysql_fetch_array($controllo_db);



                        
    $m=$riga['id'];



                
    $inserisco_dati mysql_query("INSERT INTO `mp3s` ( `id` , `iduser` , `file` , `voto`, `commento`) VALUES (NULL , '$m', '$file','$voto','$commento')");}

            }

            else{echo 
    "torna in dietro e scpecifica se il file caricato e' un rutto o una scoreggia";}

        }

        else{echo
    "devi inserire un commento";}

    }

    else{echo 
    "devi effetuare il login";}

    ?>

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2009
    Messaggi
    5
    Ciao,

    prova ad utilizzare addslashes($nomefile) e stripslashes($nomefile) quando lo vai a ripescare dal db.
    Io generalmente quando lavoro con i file li rinomino con un nome univoco che può essere lo stesso id generato dal db, oppure creo una tabella con all'interno un suffisso e un contatore che utilizzerò per rinominare il file.

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    1,683
    perfetto, funziona

  6. #6
    Gli apici sono i caratteri che terminano le stringhe SQL, ecco perché ti si genera il problema che hai riscontrato te.
    Con addslashes risolvi perché si aggiunge il carattere di escape agli apici, ma il problema è un altro.
    In fase di estrapolazione dal DB e di output HTML potresti comunque avere dei problemi.
    Ti consiglio di "passare" il nome del file, prima di salvarlo nel DB, con una funzione che toglie gli apici, i doppi-apici, eventuali apostrofi, gli spazi eccetera e li sostituisce (che ne so) con un underscore o simili.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

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 © 2024 vBulletin Solutions, Inc. All rights reserved.