Visualizzazione risultati 1 fino 28 di 28

Discussione: Aiuto Mysql

  1. #1
    Guest

    Predefinito Aiuto Mysql

    Cosa ho sbagliato in questo script?
    Codice PHP:
    <?php
    include 'header.php';
    do {
    if (
    is_uploaded_file($_FILES['image']['tmp_name'])) {

    list(
    $width, $height, $type, $attr) = getimagesize($_FILES['image']['tmp_name']);


    if ((
    $type!=1) && ($type!=2) && ($type!=3)) {
    $msg = "<p>Formato non corretto!!</p>";
    break;
    }

    if (
    file_exists('fotoutenti/'.$_FILES['image']['name'])) {
    $msg = "<p>File già esistente sul server. Rinominarlo e riprovare.</p>";
    break;
    }
    // Sposto il file nella cartella da me desiderata
    if (!move_uploaded_file($_FILES['image']['tmp_name'], 'fotoutenti/'.$_FILES['image']['name'])) {
    $msg = "<p>Errore nel caricamento dell'immagine!!</p>";
    break;
    } else {
    $username = $_SESSION['utente'];
    $query = mysql_query("SELECT * FROM `Utenti` WHERE username = '$username'");
    $array = mysql_fetch_array("$query");
    $linkfoto = $array['foto'];
    $foto = $_FILES['image']['name'];
    unlink($linkfoto);
    $querydue= mysql_query("INSERT INTO `Utenti` WHERE username = '$username' ('foto') VALUES ('$foto')");
    if(!
    $querydue){
    echo
    "Query non effettuata";
    die(
    "MySQL ERROR: ".mysql_error());
    }
    }
    }
    } while (
    false);
    echo
    $msg;
    ?>
    L'errore che mi da è questo.
    Codice:
    MySQL ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE username = 'GameAndry' ('foto') VALUES ('foto'' at line 1
    Grazie in anticipo.
    Ultima modifica di dreadnaut : 25-08-2012 alle ore 21.32.15 Motivo: + tag [php]

  2. #2
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Cosa non è chiaro del messaggio di errore? C'è un problema in
    Codice:
    INSERT INTO `Utenti` WHERE username = '$username' ('foto') VALUES ('$foto')
    ed il problema è il pezzo che comincia per WHERE ....

    Se guardi la sintassi per le query INSERT vedrai che non è previsto nessun WHERE. A seconda di quello che vuoi fare, devi eliminarlo o sostituirlo con la giusta sintassi.

  3. #3
    Guest

    Predefinito

    Grazie ;)
    Ma come mai non mi elimina la foto?

  4. #4
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Boh, ma è difficile cercare errori a distanza, senza poter provare. Aggiungi un error_reporting(E_ALL) all'inizio dello script, un po' di echo qua e la che mostrino i valori delle variabili, e cerca di scoprire cosa accade quando le cose non vanno come ti aspettavi.

  5. #5
    Guest

    Predefinito

    No , cioè , mi funziona tutto ma non mi elimina la foto.Come mai?

  6. #6
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,685

    Predefinito

    Perché INSERT inserisce, non elimina.

    Ciao!

  7. #7
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Immagino che per eliminazione intenda l'unlink(). Ma l'unica cosa che può fare è controllare che il path sia corretto e che unlink non ritorni errore.

  8. #8
    Guest

    Predefinito

    E come dovrei fare?

  9. #9
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Come fare a controllare?

    echo, var_dump, e qualsiasi cosa stampi valori nella pagina, così li puoi leggere e confrontare con quello che dovrebbero essere.

  10. #10
    Guest

    Predefinito

    Il mio controllo se cancella è questo
    Codice:
        	$deletlefoto = unlink($linkfoto);
        	if(!$deletlefoto){
        		echo "Foto non eliminata";
        	}

  11. #11
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,685

    Predefinito

    E appare la scritta "Foto non eliminata" ?
    Se non appare, e non la cancella, assicurati di richiamare la unlink(), tipo così:

    Codice PHP:
    $deletlefoto = unlink($linkfoto);
    if(!
    $deletlefoto){
    echo
    "Foto non eliminata";
    }
    else echo
    'Foto eliminata!';
    Se non appare niente, vuol dire che unlink() non viene mai richiamato.
    -----
    Per controllare se il path è corretto, potresti provare la is_file() e passargli $linkfoto come parametro.

    Io, proverei una cosa del tipo:
    Codice PHP:
    if(is_file($linkfoto))
    {
    if(
    unlink($linkfoto))
    echo
    'Foto eliminata correttamente';
    else echo
    'Impossibile eliminare la foto';
    }
    else echo
    'Questa foto non esiste! ('.$linkfoto.')';
    Ciao!
    Ultima modifica di alemoppo : 27-08-2012 alle ore 20.36.25

  12. #12
    Guest

    Predefinito

    Mi funziona tutto lo script che mi hai passato ale , ma dice sempre che non esiste anche se esiste.

  13. #13
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,685

    Predefinito

    Allora il percorso (il contenuto di $linkfoto) non è corretto.

    Se usi un percorso relativo, questo parte da dove si trova lo script php.
    Se usi un percorso assoluto, la is_file() dovrebbe funzionare soltanto se attivi la connessioner server2server... la unlink() molto probabilmente non funziona.

    Ciao!
    Ultima modifica di alemoppo : 28-08-2012 alle ore 11.29.56

  14. #14
    Guest

    Predefinito

    Allora , come hai potuto vedere , il link lo trova un fetch_array di mysql , non dovrebbe dare errore.Almeno che non vuole il link completo.

  15. #15
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,685

    Predefinito

    Prova a vedere se dal contenuto di $linkfoto si riesce a raggiungere effettivamente la foto, partendo dalla posizione dello script.

    Ciao!

  16. #16
    Guest

    Predefinito

    Si, nello script delle informazioni dell'utente effettivamente la foto la vede.

  17. #17
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Citazione Originalmente inviato da goliatpack Visualizza messaggio
    Si, nello script delle informazioni dell'utente effettivamente la foto la vede.
    Questo non vuol dire che l'immagine sia raggiungibile dallo script che prova a cancellarla.

    Hai provato a stampare nella pagina i valori delle variabili, come suggerito sopra, ed a confrontarli con i path relativi allo script che viene chiamato dal browser?

  18. #18
    Guest

    Predefinito

    Citazione Originalmente inviato da dreadnaut Visualizza messaggio
    Questo non vuol dire che l'immagine sia raggiungibile dallo script che prova a cancellarla.

    Hai provato a stampare nella pagina i valori delle variabili, come suggerito sopra, ed a confrontarli con i path relativi allo script che viene chiamato dal browser?
    Spiegati meglio.

  19. #19
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    ossignù

    Codice PHP:
    echo "Sto cercando di cancellare", $linkfoto;

  20. #20
    Guest

    Predefinito

    Si , lo ho fatto.
    L'url era /fotoutenti/foto.png , url che viene letto senza problemi nella visualizzazzione degli utenti.

  21. #21
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,685

    Predefinito

    Prova a vedere se riesci a raggiungere la foto da: goliatpack.altervista.org/fotoutenti/foto.png

    Ciao!

  22. #22
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Se quello è l'URL dell'immagine, di certo non è il nome del file da cancellare. Devi aggiungerci davanti il percorso della directory del tuo sito che contiene le immagini.

  23. #23
    Guest

    Predefinito

    Citazione Originalmente inviato da dreadnaut Visualizza messaggio
    Se quello è l'URL dell'immagine, di certo non è il nome del file da cancellare. Devi aggiungerci davanti il percorso della directory del tuo sito che contiene le immagini.
    Allora, carica tutto sul mio sito, ma visto che altervista ha un limite di 550 mega per gli utenti normali vorrei cancellare per evitare che poi non si possa fare più niente.


    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Prova a vedere se riesci a raggiungere la foto da: goliatpack.altervista.org/fotoutenti/foto.png

    Ciao!
    Ho provato ma dice ancora che è inesistente.
    PS:foto.png è una cosa che mi sono inventato io , il vero nome è preso da una query di mysql.

  24. #24
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Citazione Originalmente inviato da goliatpack Visualizza messaggio
    Allora, carica tutto sul mio sito, ma visto che altervista ha un limite di 550 mega per gli utenti normali vorrei cancellare per evitare che poi non si possa fare più niente.
    Questa frase non è una risposta a quello che ho scritto sopra.

    Quando metti un immagine in una pagina del tuo sito, ne scrivi l'indirizzo, ovvero l'URL. Quando vuoi cancellare un file dal tuo spazio web, devi usarne il percorso del file. Sebbene simili, sono due cose diverse.

    unlink() prende come parametro il percorso del file, che sarà qualcosa del tipo /membri/nomesito/immagini/le/tengo/qua/nomefile.png.

    Devi scoprire, magari via gestione file, quale sia il tuo "immagini/le/tengo/qua/", e poi fare in modo che unlink riceva il percorso del file corretto.
    Ultima modifica di dreadnaut : 30-08-2012 alle ore 16.01.44

  25. #25
    Guest

    Predefinito

    E come faccio?

  26. #26
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Via gestione file, dal pannello di altervista, ti guardi in giro in cerca della directory con tutte le immagini.

  27. #27
    Guest

    Predefinito

    La directory è
    Codice HTML:
    /fotoutenti/

  28. #28
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Ecco, unlink() deve ricevere come parametro /membri/goliatpack/fotoutenti/nomeimmagine.png ( o un equivalente percorso relativo, cioé senza barra iniziale, e.g. fotoutenti/nomeimmagine.png ).

    Sai cosa c'è nel database (immagino qualcosa tipo nomeimmagine.png) quindi devi concatenare le stringhe in modo da ottenere il risultato corretto.

Regole di scrittura

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