Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 40
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074

    errore nella scrittura di file txt

    Incontro un errore che non mi spiego.
    Tramite un file php, dovrei scrivere una serie di dati all'interno di un file .txt.
    Per scrivere questi dati, utilizzo questo codice:
    codice:
    $nomefile = "testi/".$id.".txt";
    $filetesto = fopen($nomefile, "w");
    fwrite($filetesto, $txt);
    fclose($filetesto);
    laddove, ovviamente, $id è una variabile che assegna, di volta in volta, il giusto nome al file.
    Il problema è che, quando eseguo lo script, mi viene restituito questo errore:

    Warning: fopen(testi/BasileS.txt): failed to open stream: Permission denied in /home/ilsitode/public_html/lesson.php on line 511
    Warning: fwrite(): supplied argument is not a valid stream resource in /home/ilsitode/public_html/lesson.php on line 512
    Warning: fclose(): supplied argument is not a valid stream resource in /home/ilsitode/public_html/lesson.php on line 513

    dove le linee 511, 512 e 513 sono le ultime tre del codice riportato sopra.
    La cosa strana è che la cartella 'testi' ha i permessi di scrittura!
    L'impostazione è 666, ovvero:
    Proprietario: abilitato in lettura/scrittura
    Gruppo: abilitato in lettura/scrittura
    Globale: abilitato in lettura/scrittura
    Quindi, perchè mi dice 'permission denied'?

  2. #2
    Deve essere 777, sia il file che la cartella.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    si, adesso funzia... però non mi scrive niente!
    Cioè, se faccio un echo della variabile che contiene i dati da salvare, me li stampa a video, però nel file non viene scritto niente: perchè?

  4. #4
    Originariamente inviato da ZoneForum
    Deve essere 777, sia il file che la cartella.
    evviva la sicurezza !

    i permessi vanno dati "minimi per lo scopo" e 777 è tutt'altro che questo!
    <?php echo ' Emiliano Gabrielli (aka AlberT) ',"\n",
    ' socio fondatore e membro del direttivo del GrUSP ',"\n",
    ' AlberT_at_SuperAlberT_it - www.SuperAlberT.it ',"\n",
    ' IRC: #php,#AES azzurra.com ',"\n",'ICQ: 158591185'; ?>

  5. #5
    Originariamente inviato da metatad
    si, adesso funzia... però non mi scrive niente!
    Cioè, se faccio un echo della variabile che contiene i dati da salvare, me li stampa a video, però nel file non viene scritto niente: perchè?
    il codice che hai citato non lo deve stampare a video, sei certo che il codice che usi sia quello che hai citato qui?

    BTW:
    per poter creare un file in una cartella questa deve poter essere 1) acceduta e 2) scritta dall'utente che impersona il web server... quindi, ammesso che apache non sia nel gruppo che possiede tale cartella, allora devi lavorare sui permessi di "other" ... chmod o+Xw testi

    una volta creato da pache tale file avra come proprietario apache stesso e quindi non dovrebbe avere problemi a scriverci di nuovo... se per qualche strana ragione la umask di default non permettesse la scrittura neanche al proprietario allora usa umask() per impostarne una adatta *prima* della fopen()
    <?php echo ' Emiliano Gabrielli (aka AlberT) ',"\n",
    ' socio fondatore e membro del direttivo del GrUSP ',"\n",
    ' AlberT_at_SuperAlberT_it - www.SuperAlberT.it ',"\n",
    ' IRC: #php,#AES azzurra.com ',"\n",'ICQ: 158591185'; ?>

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    il problema è che con 666 non funziona, mentre con 777 in effetti mi crea il file. Rimane il problema che - però - non mi ci scrive niente dentro!!!

  7. #7
    666 NON prevede l'esecuzione infatti ... che per una directory equivale al permesso di accedere! la lettura IMHO è di troppo
    <?php echo ' Emiliano Gabrielli (aka AlberT) ',"\n",
    ' socio fondatore e membro del direttivo del GrUSP ',"\n",
    ' AlberT_at_SuperAlberT_it - www.SuperAlberT.it ',"\n",
    ' IRC: #php,#AES azzurra.com ',"\n",'ICQ: 158591185'; ?>

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    Però il file deve essere letto... cioè, il contenuto del file viene successivamente caricato da Flash, quindi il file deve essere aperto e letto.
    Ma, sicurezza a parte, sai dirmi perchè non mi scrive nulla nel file?

  9. #9
    allora:
    dir +xw
    file +rw

    sicurezza a parte, dal codice che hai dato deve scrivere nel file e NON a video... pasti un pezzo di codice + significativo ?
    <?php echo ' Emiliano Gabrielli (aka AlberT) ',"\n",
    ' socio fondatore e membro del direttivo del GrUSP ',"\n",
    ' AlberT_at_SuperAlberT_it - www.SuperAlberT.it ',"\n",
    ' IRC: #php,#AES azzurra.com ',"\n",'ICQ: 158591185'; ?>

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    Infatti! Deve scrivere sul file! Il problema è proprio questo: il file viene creato, ma è vuoto. Come dicevo, ho utilizzanto la funzione echo per stampare a video i dati della variabile $txt, ed essere quindi sicuro che la pagina php, prima di creare/scrivere il file .txt, avesse caricato correttamente i dati dal db. Ed infatti i dati ci sono; però non me li scrive nel file...
    Perchè?

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.