Visualizzazione risultati 1 fino 3 di 3

Discussione: Upload immagine non funziona [PHP]

  1. #1
    Guest

    Predefinito Upload immagine non funziona [PHP]

    Non riesco proprio a capire: ogni volta che inserisco un immagine mi dice "Il file non è un immagine" ma perchè? Cosa c'è di sbagliato?
    Codice PHP:
    <?php

    session_start
    ();
    mysql_connect('localhost','root','');
    mysql_select_db('mio_db');

    if(!isset(
    $_SESSION['username'])) {
    header('Location: index.php');
    }
    else
    {
    session_regenerate_id();
    }

    $my_id = userId($_SESSION['username']);
    $my_username = realUsername($_SESSION['username']);

    if(isset(
    $_POST["carica"])){
    $nome_temporaneo = $_FILES['file']['tmp_name'];
    $nome = mysql_real_escape_string($_FILES['file']['name']);
    $size = mysql_real_escape_string($_FILES['file']['size']);
    $tipo = mysql_real_escape_string($_FILES['file']['type']);
    $contenuto = addslashes(file_get_contents($nome_temporaneo));
    if(
    $size < 50000){
    if(
    stripos($tipo, 'newuserimages/') !== false){
    if(
    mysql_query("UPDATE users SET name= '$nome', size='$size', tipo='$tipo' AND file='$contenuto' WHERE username ='$my_username'")){
    echo
    "
    File caricato con successo.<br>
    Nome: <b>
    {$nome}</b><br>
    Tipo: <b>
    {$tipo}</b><br>
    Dimensione: <b>
    {$size} kb</b><br>";

    move_uploaded_file($_FILES['file']['tmp_name'], 'newuserimages/'.$_FILES['file']['name']);
    }else{
    echo
    "Errore nella Query.";
    }

    }else{
    echo
    "Il file non e un immagine.";
    }}else{
    echo
    "La tua immagine supera le dimensioni.";
    }}
    ?>
    <form enctype="multipart/form-data" action="" name="File" method="post">
    <table border="3">
    <tr>
    <td>Carica un file:</td>
    </tr>
    <tr>
    <td><input class="text" type="file" name="file"></td>
    </tr>
    <tr>
    <td><input type="submit" name="carica" value="carica"></td>
    </tr>
    </table>
    </form>
    Ultima modifica di javascripter : 25-08-2013 alle ore 21.27.51 Motivo: -[size]

  2. #2
    Guest

    Predefinito

    Ad occhio l'errore è nello scrivere "diverso" infatti dovresti scrivere così:
    Codice PHP:
    if(stripos($tipo, 'newuserimages/') !=false){

  3. #3
    L'avatar di javascripter
    javascripter non è connesso Moderatore
    Data registrazione
    14-02-2010
    Messaggi
    1,114

    Predefinito

    Citazione Originalmente inviato da mathis Visualizza messaggio
    Ad occhio l'errore è nello scrivere "diverso" infatti dovresti scrivere così:
    Codice PHP:
    if(stripos($tipo, 'newuserimages/') !=false){
    No. strpos restituisce la posizione della stringa trovata (che parte da 0) o FALSE non trova nulla.
    Dato che 0 == false (è vero), in php si possono confrontare due variabili tenendo conto del tipo con l'operatore === (o !== nel caso della negazione). Non è lì il problema.

    @jubik:
    La variabile $tipo contiene un mimetype, è insensato cercare all'interno di essa la stringa "newuserimages/" (che restituirà sempre FALSE).
    Potresti crearti una lista dei mimetype da accettare e usare la funzione in_array.

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •