aggiornare file txt

vitographic

Utente Attivo
10 Mar 2013
67
0
0
ciao a tutti
scusatemi vorrei semplicemente aggiornare il contenuto del file
mi sapreste indicare dove sbaglio

questo è il codice attuale dove mi da errore di sintassi
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++; 
} else { 
    $a = $b; 
} 
?> 
<body>
$b = fopen('provalo.txt', 'r');
fread($a);
fclose($b);
<form action="" method='post' target=_blank> 
        <input type="image" src="btn_vmm.png" width="23" height="67"/> 
        <p> 
            <input name="textfield" type="text" value='<?php echo $a 
$a = fopen('provalo.txt', 'w');
fwrite($a);
fclose($a);
?>'/> 
        </p> 
    </form> 
</body>
</html>
mentre questo è il codice funzionante dove però azzera la variabile quando ricarico la pagina
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++; 
} else { 
    $a = 0; 
} 
?> 
<body>
<form action="" method='post' target=_blank> 
        <input type="image" src="btn_vmm.png" width="23" height="67"/> 
        <p> 
            <input name="textfield" type="text" value='<?php echo $a ?>'/>
<?php
$fp = fopen('provalo.txt', 'w');
fwrite($fp, $a);
fclose($fp);
?>
aiutooooooo
 
Ultima modifica di un moderatore:
Ciao, mancano i tag di apertura e chiusura php su questo blocco di codice
PHP:
$b = fopen('provalo.txt', 'r');
        fread($a);
        fclose($b);
e manca la chisura di istruzione ( ; ) qui
PHP:
echo $a
e mancano gli apici al target
HTML:
<form action="" method='post' target=_blank>
 
ti ringrazio per la celere risposta ma

nonostante le modifiche e l'aggiunta del 2° parametro di fread ho ottenuto questo risultato


Notice : Undefined variable: b in C: \ Programmi \ EasyPHP-12.1 \ www \ i miei file portatili \ dovrebbe3.php on line 12

Warning : fread () si aspetta che il parametro 1 per essere risorsa, null dato in C: \ Programmi \ EasyPHP- 12.1 \ www \ i miei file portatili \ dovrebbe3.php on line 18
Invia

pkkè
 
Il primo messaggio ti dice che $b in pratica non esiste
il secondo visto che scrivi $a = $b ti dice che $a è nullo
 
ok

scusami ma sbaglio o le variabili in php nn hanno bisogno di essere dichiarate
se $a = 0 viene automaticamente azzerata ad ogni riapertura pagina
come faccio ad ottenere $a = al valore salvato forse $a ="" o $a =null

mi puoi spiegare come ne esco
 
Se scrivi che $a deve essere uguale a $b $b per forza deve essere dichiarata
cmq c'è un po di confusione generale nelllo script
prova questo esempio e vedi se è quello che volevi fare
PHP:
<html>
    <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'];
        $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='_blank'> 
            <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>
non ho commentato ma se hai domande chiedi pure
 
l'ho appena testato

ma nn fa nulla tranne che rileva l'incremento fatto col mio 1° codice
perchè nn incrementa $a e nn la visualizza???
 
ok funziona

ho aggiunto l'incremento e ho tolto il ; a echo $contenuto

grz grz

ora spero che funzioni immettendo il codice nel livello in dreamweaver
 
ciao
scusate se mi intrometto, ma ho visto la domanda
scusami ma sbaglio o le variabili in php nn hanno bisogno di essere dichiarate
e vorrei fare una precisazione (per quel che mi ricordo) in alcuni linguaggi le variabili devono essere "dichiarate", es in pascal
Codice:
var n:integer;
var r:real
var name: string[50];
cioè devo "dichiarare" che tipo di dato da li in poi la variabile conterrà, questo in php non serve, tanto è vero che
PHP:
<?php
$x=1;//dato tipo intero
var_dump($x);
$x="pinco pallo";//dato tipo stringa
var_dump($x);
?>
con questo non vuol dire che le variabili non debbano essere inizializzate ricordandosi però che
PHP:
<?php
var_dump($z);
//è diverso da
$z=0;
var_dump($z);
?>
 
pienamente d'accordo cmq

credo di aver cantato vittoria troppo presto infatti come già detto
ora spero che funzioni immettendo il codice nel livello in dreamweaver
si è verificato il dubbio

qualche dritta su come fare ad importare il codice in un livello di una pagina htm???
il mio intento era di applicare questo codice a qualsiasi oggetto pulsante di ogni natura presente sulla pagina per avere traccia del click

un piccolo aiuto!!!
sono in panne
 
Puoi fare una chiamata ajax ad una pagina php che ti elabora la richiesta senza che nessuno se ne accorga
prova a guardare questa discussione
 
sono riuscito ad inserire il codice ma

alla pressione del pulsante ottengo questo risultato ed inoltre nn visualizza i dati del file txt

questo è il messaggio d'errore
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
Invia

qualcuno sa dirmi pkkè
 
dové l'errore

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('videamultimedia/provalo.txt', 'w'); 
        fwrite($f, $a); 
        fclose($f); 
    } 
    $contenuto = ""; 
    if (filesize("videamultimedia/provalo.txt") > 0) {
        $fr = fopen('videamultimedia/provalo.txt', 'rd'); 
        $contenuto = fread($fr, filesize("videamultimedia/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>

mi da errore alla linea 16 ma nn riesco a capire qual'è
 
Ultima modifica di un moderatore:
questo è l'errore che restituisce

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 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

i permessi sono ok il file esiste

pkkè nn funge
 
scusami ma

mi potresti fare un esempio di percorso dato che sto letteralmente impazzendo
ci devo mettere l'http:// o www. o mio sito/ o solo nome file.txt
 
ciao
intatnto per il percorso
dipende da come è posizionato lo script rispetto al file provalo.txt es.pi
1) se script nella root e il txt in una cartella della root (videamultimedia)
o se lo script in una cartella e il txt in una sua sottocartella come hai scritto va bene
2) se lo script è in una cartella della root (es script) e il txt in un'altra cortella sempre delle root devi mettere
"../videamultimedia/provalo.txt"
cioe devi indicare il percorso che dallo script arriva al txt

poi una cosa: nella casella 'textfield' inserisci degli interi? (altrimenti a cosa ti serve $a++ ?)
ti dico questo perchè se scrivi es 'aaa' nel file txt trovi 'aab', quindi se devi usare dei numeri ti conviene controllare che lo siano.
comunque lo script funzia (ho solo messo la casella di submit per fare prima, eventualmente toglila)
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'])) { 
        var_dump($_POST['textfield']); echo "<br>";
		$a = $_POST['textfield'];
    	$a++;
        var_dump($a); echo "<br>";
		$f = fopen("videamultimedia/provalo.txt", "w"); 
        fwrite($f, $a); 
        fclose($f); 
    } 
    $contenuto = ""; 
    if (file_exists("videamultimedia/provalo.txt")) {//meglio file_exists
        $fr = fopen("videamultimedia/provalo.txt", "r");
		$file="videamultimedia/provalo.txt";
        $contenuto = fread($fr, filesize($file)); 
        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>
            <p>
              <input type="submit" name="invia" value="invia" />
            </p>
        </form>  
</body>
</html>
 

Discussioni simili