aggiornare file txt

ho provato il tuo script e

restituisce questo

string(1) "1"
int(2)

Warning: fopen(videamultimedia/provalo.txt) [function.fopen]: failed to open stream: No such file or directory in D:\inetpub\webs\videamultimediait\dovrebbe5.php on line 13

Warning: fwrite(): supplied argument is not a valid stream resource in D:\inetpub\webs\videamultimediait\dovrebbe5.php on line 14

Warning: fclose(): supplied argument is not a valid stream resource in D:\inetpub\webs\videamultimediait\dovrebbe5.php on line 15


ps. il file provalo.txt è nella root

a questo punto sono sempre più convinto che l'errore sia nell'indirizzo di chiamata ma dove?????
se nn è così cosa nn funge http://forum.mrwebmaster.it/images/icons/icon9.png

grazie ancora per la pazienza....
 
ciao
ribadisco, l'errore è che non trova il file

Warning: fopen(videamultimedia/provalo.txt) [function.fopen]: failed to open stream: No such file or directory in D:\inetpub\webs\videamultimediait\dovrebbe5.php on line 13

...nessun file o cartella in D:....

gli altri errori sono di conseguenza al primo.
poi se non vedo male il tuo script php si chiama dovrebbe5.php (giusto?) quindi si trova nella stessa cartella in cui vuoi creare/modificare il file, quindi i fopen devono essere
PHP:
<?php
//....
$f = fopen('provalo.txt', 'w');
//.....
$f = fopen('provalo.txt', 'w'); 
//.....
?>
questo salvo che dentro la cartella videamultimediait tu non abbia una sottocartella anche questa chiamata videamultimediait
 
ciao
forse è bene che ti rispieghi un momento i percorsi.
dati due file A.php e B.txt:

  1. i due file sono nella stessa cartella (o nella root) quindi quale è il percorso con cui A trova B?
    diretto a B, non devi ne entrare ne suscire da alcuna cartella, quindi
    $f = fopen('B.txt', 'w');
  2. il file A.php si trova diciamo nella root e B.txt in una cartella della root chiamata due
    stessa domanda:
    devo entrare in due e trovare B, quindi
    $f = fopen('due/B.txt', 'w');
  3. A si trova nella carella uno e B nella cartella due, entrambe cartelle della root
    stessa domanda:
    devo uscire da uno, entrare in due e trovare B, quindi
    $f = fopen('../due/B.txt', 'w');// il ../ vuol dire esco (salgo di un livello), poi entro in due

penso di averti spiegato bene
 
php e txt nella root

ora ho riportato il file alle origini senza alcun / ma continua a nn funzionare piuttosto se nn vado errato dal messaggio di risposta che ho quando premo vedo che sono negati i permessi o sbaglio eppure ho impostato con filezilla dovrebbe5.php su 755....
sapresti trovarmi il bandolo della matassa

questo è il messaggio


Warning: fopen(provalo.txt) [function.fopen]: failed to open stream: Permission denied in D:\inetpub\webs\videamultimediait\dovrebbe5.php on line 11

Warning: fwrite(): supplied argument is not a valid stream resource in D:\inetpub\webs\videamultimediait\dovrebbe5.php on line 12

Warning: fclose(): supplied argument is not a valid stream resource in D:\inetpub\webs\videamultimediait\dovrebbe5.php on line 13

ancora grazie...
 
Se il file provalo.txt come hai detto è nella root e lo script è nella cartella videamultimediait devi tornare indietro di una directory con i due punti slash (../)
PHP:
$f = fopen('../provalo.txt', 'w');
 
ci provo ma

avevo detto che sia il file php che il txt si trovano entrambi nella root cmq ci provo ora
spero bene
 
ho apportato le modifiche

questo è il risultato

Warning: filesize() [function.filesize]: stat failed for ../provalo.txt in D:\inetpub\webs\videamultimediait\dovrebbe5.php on line 16

questo è il codice appena immesso

PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento senza titolo</title>
</head>
<?php 
    if (isset($_POST['textfield'])) { 
        $a = $_POST['textfield']; 
	$a++;
        $f = fopen('../provalo.txt', 'w'); 
        fwrite($f, $a); 
        fclose($f); 
    } 
    $contenuto = ""; 
    if (filesize('../provalo.txt') > 0) { 
        $fr = fopen('../provalo.txt', 'rd'); 
        $contenuto = fread($fr, filesize('../provalo.txt')); 
        fclose($fr); 
    } 
    ?>  
    <body> 
        <form action="" method='post' target='_parent'>  
            <input type="image" src="btn_vmm.png" width="23" height="67"/>  
            <p>  
                <input name="textfield" type="text" value='<?php echo $contenuto ?>'/>  
            </p>  
        </form>  
</body>
</html>

sapresti spiegarmi cos'altro nn va
 
Ultima modifica di un moderatore:
avevo detto che sia il file php che il txt si trovano entrambi nella root
l'errore che hai postato indica che il file dovrebbe5.php si trova ancora nella cartella videamultimediait
Codice:
in D:\inetpub\webs\videamultimediait\dovrebbe5.php on line 11
sapresti spiegarmi cos'altro nn va
ho copiato e incollato il codice che hai postato e a me funziona correttamente
 
fai confusione tra online e in locale
online hai entrambi i file nella root quindi devi usare questa sintassi
PHP:
$f = fopen('provalo.txt', 'w');
in locale hai il txt nella root e il php nella videamultimedia e devi usare questa
PHP:
$f = fopen('../provalo.txt', 'w');

edit:
ho visto male, ho notato che sei solo online
in ogni caso i file sono nella stessa cartella quindi usa questa
PHP:
$f = fopen('provalo.txt', 'w');
e aggiorna che riguardo
 
Ultima modifica:
ma sono al punto di partenza
il codice cosi è corretto
il messaggio dice
Codice:
Permission denied
ricontrolla i permessi

o al massimo prova a creare una cartella con tutti i permessi e mettilo dentro poi modifichi la chiamata cosi
PHP:
$f = fopen('nomecartella/provalo.txt', 'w');
 
creazre una cartella con i premessi

scusa ma come si fa

il codice cosi è corretto
il messaggio dice
Codice:
Permission denied
ricontrolla i permessi

o al massimo prova a creare una cartella con tutti i permessi e mettilo dentro poi modifichi la chiamata cosi
PHP:
$f = fopen('nomecartella/provalo.txt', 'w');
 
ciao
mi sono accorto di questo
ho visto male, ho notato che sei solo online
e mi è venuto un piccolo dubbio:
quele provider e quale piattaforma (windows o linux)?
perchè se sei su aruba/windows puoi scrivere solo dentro la cartella (non mi ricordo esattamente il nome) _private (o quella chiamata public) alle altre cartelle, tue o di default, non puoi dare i permessi di scrittura
perchè non provi in locale?
 
aruba windows

in locale funziona perfettamente salva e aggiorna l'incremento è in rete che nn ne vuole sapere tu dici che devo spostare in una cartella sia il php che il txt...

ciao
mi sono accorto di questo

e mi è venuto un piccolo dubbio:
quele provider e quale piattaforma (windows o linux)?
perchè se sei su aruba/windows puoi scrivere solo dentro la cartella (non mi ricordo esattamente il nome) _private (o quella chiamata public) alle altre cartelle, tue o di default, non puoi dare i permessi di scrittura
perchè non provi in locale?
 
ciao
se, ma non me lo hai detto, sei su aruba/windows ti basta spostare il file .txt in una delle cartelle _private o public (come ti ho detto non mi ricordo quale perchè sono anni che non uso i .txt) e lascia lo script nella root.
prova prima con una e se non funzia coll'altra, si intende modificando lo script, vedi commenti.
PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento senza titolo</title>
</head>
<?php 
    if (isset($_POST['textfield'])) { 
        $a = $_POST['textfield']; 
    $a++;
        $f = fopen('_private/provalo.txt', 'w'); 
		/* o se l'altra cartella
		$f = fopen('public/provalo.txt', 'w'); 
		*/
        fwrite($f, $a); 
        fclose($f); 
    } 
    $contenuto = ""; 
    if (filesize('_private/provalo.txt') > 0) { 
        $fr = fopen('_private/provalo.txt', 'rd'); 
        $contenuto = fread($fr, filesize('_private/provalo.txt'));
		/* o se l'altra cartella
		$f = fopen('public/provalo.txt', 'w'); 
		$contenuto = fread($fr, filesize('public/provalo.txt'));
		*/
		
        fclose($fr); 
    } 
    ?>  
    <body> 
        <form action="" method='post' target='_parent'>  
            <input type="image" src="btn_vmm.png" width="23" height="67"/>  
            <p>  
                <input name="textfield" type="text" value='<?php echo $contenuto ?>'/>  
            </p>  
        </form>  
</body>
p.s.
non so se altri provider operano nello stesso modo di aruba
 
ho provato

con public e con _private
il risultato nn cambia nn funziona

ciao
se, ma non me lo hai detto, sei su aruba/windows ti basta spostare il file .txt in una delle cartelle _private o public (come ti ho detto non mi ricordo quale perchè sono anni che non uso i .txt) e lascia lo script nella root.
prova prima con una e se non funzia coll'altra, si intende modificando lo script, vedi commenti.
PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento senza titolo</title>
</head>
<?php 
    if (isset($_POST['textfield'])) { 
        $a = $_POST['textfield']; 
    $a++;
        $f = fopen('_private/provalo.txt', 'w'); 
		/* o se l'altra cartella
		$f = fopen('public/provalo.txt', 'w'); 
		*/
        fwrite($f, $a); 
        fclose($f); 
    } 
    $contenuto = ""; 
    if (filesize('_private/provalo.txt') > 0) { 
        $fr = fopen('_private/provalo.txt', 'rd'); 
        $contenuto = fread($fr, filesize('_private/provalo.txt'));
		/* o se l'altra cartella
		$f = fopen('public/provalo.txt', 'w'); 
		$contenuto = fread($fr, filesize('public/provalo.txt'));
		*/
		
        fclose($fr); 
    } 
    ?>  
    <body> 
        <form action="" method='post' target='_parent'>  
            <input type="image" src="btn_vmm.png" width="23" height="67"/>  
            <p>  
                <input name="textfield" type="text" value='<?php echo $contenuto ?>'/>  
            </p>  
        </form>  
</body>
p.s.
non so se altri provider operano nello stesso modo di aruba
 
ciao
l'errore adesso è
1) ..Permission denied...
o
2) ...No such file or directory...
?
se è errore 1: a questo punto ti conviene fare un tichet al provider per sapere se devi metterlo in una cartella o come dare i permessi, spiegando quello che devi fare (eventualmente allega anche il codice dello script)

se è errore 2: stai sbagliando i percorsi

questo perchè come provato io e criric funzia
 
erano i permessi

ora funge bene ma ho un'ulteriore problema vorrei far comparire il valore di $contenuto all'interno di una cella di una tabella in dreamweaver...
qualche suggerimento, le sto provando tutte ed inoltre $contenuto in dovrebbe5.php appare in una casella di testo modificabile con bordo, è possibile eliminare il bordo e rendere la casella non modificabile
grazie ancora
 

Discussioni simili