Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Problema con fwrite su Aruba

    Ciao a tutti. Ho un problema che spero qualcuno di voi sappia risolvere.
    Sto creando un pannello amministratore, per consentire a chi gestirà il sito di modificare dei contenuti.
    Quindi: inserimento di password e successiva modifica di un file.txt

    Funziona tutto bene, tranne per il fatto che non scrive il file.
    La situazione è questa: Hosting windows su Aruba, ma ho correttamente inserito il file da scrivere nella cartella "Public", nonostante questo si tifiuta di scrivere il file...
    il codice per scrivere è questo

    Codice PHP:
    $stringa "".$info1."=".$info1testo."&".$info2."=".$info2testo;
    $file fopen("public/info.txt""w");
    fwrite($file$stringa);
    fclose($file); 
    Il file .txt è del tipo variabile1=variabile&variabile2=variabile perchè deve essere letto da un filmato flash.
    Ecco invece l'intero codice della pagina admin.php che si trova in _root del sito.

    Codice PHP:
    <?php
    $mypass
    ="12354621";

    if(isset(
    $_POST['password'])) {

        if(isset(
    $_POST['check'])) {
        
            
    $info1testo stripslashes($_POST['info1testo']);
            
    $info2testo stripslashes($_POST['info2testo']);
            
    $info1 $_POST['info1'];
            
    $info2 $_POST['info2'];
            
    $stringa "".$info1."=".$info1testo."&".$info2."=".$info2testo;

            
    $file fopen("public/info.txt""w");
            
    fwrite($file$stringa);
            
    fclose($file);
            echo
    'Modifica avvenuta con successo:
            <form action=admin.php method=post>
            <input type=hidden name=saved value=saved>
            <input type=hidden name=password value=password>
            <input type=submit name=submit value=Indietro>
            </form>'
    ;

        } else {


            
    $pass $_POST['password'];
            if(isset(
    $_POST['saved'])) {
                
    $pass $mypass;
            }
            if(
    $pass == $mypass) {

            
    $file fopen("public/info.txt""r");
            
    $filesize filesize("public/info.txt");
            
    $info fread($file$filesize);
            
    fclose($file);
            
    $diviso1 explode("&"$info);
            
    $diviso2 $diviso1[0];
            
    $diviso3 $diviso1[1];
            
    $diviso22 explode("="$diviso2);
            
    $diviso33 explode("="$diviso3);
            
    $info1 $diviso22[0];
            
    $info1testo $diviso22[1];
            
    $info2 $diviso33[0];
            
    $info2testo $diviso33[1];
        
            echo
    '
            <form action=admin.php method=post>
            <textarea cols=40 rows=30 name=info1testo>'
    .$info1testo.'</textarea>
            <textarea cols=40 rows=30 name=info2testo>'
    .$info2testo.'</textarea>

            <input type=hidden name=check value=check>
            <input type=hidden name=password value=password>
            <input type=hidden name=info1 value='
    .$info1.'>
            <input type=hidden name=info2 value='
    .$info2.'>
            <input type=submit name=submit value=Salva>
            </form>'
    ;

        

            } else {
            echo 
    'Password errata. <a href=admin.php>Indietro.</a>';
            }

        }


    } else {

        echo
    '
        <form action=admin.php method=post>
        <input type=password name=password>
        <input type=submit name=submit value=Invia>
        </form>'
    ;

    }
    ?>
    Spero che qualcuno capisca dove sta l'errore. Grazie a tutti.

  2. #2
    Ho anche ripristinato tutti i permessi e non va. Ho provato anche per fare una controprova, a creare al volo un contatore in php che scrive su un file txt usando gli stessi comandi fopen fread e fwrite, l'ho inserito in public e funziona perfettamente.
    Vi prego di aiutarmi perchè non so davvero più cosa tentare.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    398
    prova cosi

    Codice PHP:
    $stringa "".$info1."=".$info1testo."&".$info2."=".$info2testo;
    $file fopen("public/info.txt""w");
    fwrite($file$stringa);
    fflush ($file);
    fclose($file); 

    pero non ho capito ti da errore o non te lo da ?

  4. #4
    Non da nessun errore. Semplicemente non scrive le modifiche.
    Ho provato ad aggiungere la riga che mi hai dato ma non va lo stesso.

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    398
    prova a cancellare il file a mano e vedere se lo crea

  6. #6
    hm.. ma sotto windows non devi sostituire "/" con "\\"?

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    398
    oddio non credo ma magari dico una cavolata non ho mai lavorato su macchine win.

    Comunque se non lo crea magari pensi di essere dove non sei prova a mettere questa riga
    prima di eseguire quelle istruzioni e verifica di essere nel posto giusto
    Codice PHP:
    echo getcwd() . "\n"

    poi fai i check sui ritorni della open e della write cosi capisci dove da errore e se lo da.

    poi non saprei che dire per come hai scritto mi sembra corretto.

    Andrea

  8. #8
    purtroppo ho già fatto questo tipo di controlli e le directory sono tutte corrette, anche perchè come potete vedere l'altro comando, fread, ha lo stesso percorso e quello funziona perfettamente. il problema sta nel comando fwrite, ma non so perchè ne come.

    p.s. in effetti se lo cancello, lo crea, ma non ci scrive dentro nulla...

  9. #9
    Non so cosa dire ragazzi. Ora funziona. Senza che io abbia fatto nulla. Una giornata buttata via per nulla.
    Grazie comunque del vostro aiuto.



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.