Visualizzazione risultati 1 fino 5 di 5

Discussione: [PHP] unlink che non cancella

  1. #1
    araim non è connesso Utente attivo
    Data registrazione
    26-06-2004
    Messaggi
    275

    Predefinito [PHP] unlink che non cancella

    Codice PHP:
    unlink($delfile->premio_img);
    questo unlink non mi cancella il file nel percorso passatogli da query db...
    e non capisco come mai, eppure il percorso è corretto.

    La folder è stata creata da php in questo modo mkdir("nome_folder",0777);
    il file è inserito tramite php e c'è, ho controllato.
    Nel db risulta essere presente l'indirizzo preciso del file.

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

    Predefinito

    La chiamata ad unlink ti ritorna true o false?

    E se ti restituisce false, cosa visualizzi con
    Codice PHP:
    print_f( error_get_last() ); // php 5

  3. #3
    araim non è connesso Utente attivo
    Data registrazione
    26-06-2004
    Messaggi
    275

    Predefinito

    come faccio a stampare il risultato true false di unlink ?
    l'ho inserito in una variabile, e sto provando a stampare ma non tira fuori nulla



    Addo qui,sperando non sia un problema, questo è un altro codice che sto facendo e che non va.
    in pratica prendo gli iscritti ad una gara, li inserisco in un array (almeno ci provo) decidendo la
    posizione randomicamente e controllando che quella posizione non sia già occupata.

    non va manco questo ... XD e non capisco perché
    Codice PHP:
    $y=$tabellone->gara_num-1;
    $sql='SELECT * FROM gara_iscritti WHERE id_gara='."$id".' ';
    $row=mysql_query($sql);
    $sql->close;
    while(
    $iscritti=mysql_fetch_object($row)){

    do {

    $pos=rand(0,"$y");

    }while(
    $squadre["$pos"]!='');

    $squadre["$pos"]= array("$iscritti->id_team");
    echo
    "$pos -> $iscritti->id_team [ $squadre[$pos] ]<br />";

    }

    $row="UPDATE gara_evento SET turno1='$squadre' WHERE id_gara='$id' ";
    $update=mysql_query($row) or die (' errore in fase di modifica ');
    Ultima modifica di araim : 12-08-2010 alle ore 16.30.33

  4. #4
    Guest

    Predefinito

    1) Sta bene attento a una cosa. Se $id lo prendi da un form presente in una pagina qualsiasi allora rischi di beccarti una bella SQL Injection e i Black Hat Hacker ringraziano xD In quel caso non aspetteranno che tu metta la vasellina xD xD. Altrimenti sei a posto. Se $id viene da un form allora assicurati di fare questa operazione:

    $id=mysql_real_escape_string($id);

    (Vai a leggere il post del "sito defacciato" che si trova sotto a questo)

    2) Hai un po' le idee confuse sui database (normale agli inizi):

    $row=mysql_query($sql);

    la variabile $row non è una riga, è una "risorsa" e si preferisce chiamarla "result", "row" sarebbe quello che tu hai chiamato "iscritti" ed corrisponde effettivamente ad una riga della tabella ottenuta attraverso la query.

    3) [$sql->close;] $sql è una stringa. Non ha un metodo close. Forse intendevi mysql_close che, non mi vorrei sbagliare, si usa per eliminare dalla memoria il risultato ottenuto da mysql_query(...);.
    L'idea è questa. PHP, quando esegue mysql_query(...), si salva in memoria il risultato. In una pagina dove vengono eseguite molte query questa memoria occupata diventa non indifferente e lo stesso vale nel caso di query che restituiscono un gran numero di risultati. Immagina la cosa moltiplicata per una decina di utenti che eseguono la stessa operazione e vedrai che la memoria si riempie presto. In questo caso si fa questo:
    Codice PHP:
    $result = mysql_query($query);
    /*
    * Lavoro, lavoro, lavoro...
    */
    close($result); //Così liberiamo la memoria senza aspettare che lo script finisca.
    4)$iscritti->id_team [ $squadre[$pos] ] non mi convince... ok fino a $iscritti->id_team ma poi c'è qualcosa che mi torna poco... mmm... Ecco! $squadre[$pos] non va bene. Ci vuole ${squadre[$pos]} se non sbaglio. Non mi ricordo se è esattamente questa la forma.

    5) "UPDATE gara_evento SET turno1='$squadre' WHERE id_gara='$id' ". Non puoi mettere un array in una stringa. Un elemento di un array si, un array no.

    Ripassa bene le basi perchè sono le cose che al momento ti danno più problemi ;).
    Ultima modifica di provaphpprova : 13-08-2010 alle ore 10.14.03

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

    Predefinito

    Citazione Originalmente inviato da araim Visualizza messaggio
    come faccio a stampare il risultato true false di unlink ?
    l'ho inserito in una variabile, e sto provando a stampare ma non tira fuori nulla
    Se non stampa nulla, è false, quindi il problema è a monte: gli dai un nome di file che non esiste. Path relativi o assoluti? Variabili vuote?

Regole di scrittura

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