MALEDETTI PUNTEVVIRGOLA!!!!
mancava un ;
ma non funziona lo stesso
qunado carico la pagina che deve visualizzare il file di testo ci mette troppo tempo e mi appare un bel fatal error (c'era una sola riga nel file).
Ma non c'è nessuno?
MALEDETTI PUNTEVVIRGOLA!!!!
mancava un ;
ma non funziona lo stesso
qunado carico la pagina che deve visualizzare il file di testo ci mette troppo tempo e mi appare un bel fatal error (c'era una sola riga nel file).
Ma non c'è nessuno?
Viviamo tutti in una palude di fango, ma alcuni di noi guardano le Stelle http://www.comunicareoltre.it
POssibile che nessuno mi possa aiutare?
Queste le modifiche apportate al codice:
Purtroppo mi ritorna il seguente errore:Codice PHP:<?
if ($_GET['action'] == elimina){
// leggo il file in un vettore
$vettore = file($file);
// imposta la riga per fare il confronto i dati riga[x] li ho a disposizione perchè li sto stampando a video
$riga_confronto = "$riga[0]|$riga[1]|$riga[2]|$riga[3]|$riga[4]|$riga[5]|$riga[6]|$riga[7]|$riga[8]|$riga[9]|$riga[10]|$riga[11]|$riga[12]|$riga[13]|$riga[14]";
// conto le occorrenze di $vettore ovvero il numero di righe del file di testo
$counter = array_count_values($vettore);
// imposto il ciclo for
for ($i=0;$i<$counter;$i++){
// se la riga è identica a quella che cerco...
if ($vettore[$i] == $riga_confronto)
//... la elimino
array_splice($vettore, $vettore[$i]);
}
// implodo il vettore nel file separando ciascun elemento da \r\n
$file = implode ("\r\n", $vettore);
// conto le occorrenze del nuovo $vettore (dovrebbero essere quelle di prima meno una)
$count2 = array_count_values($vettore);
// apro il file in cui ho imploso $vettore (e credo sia qui l'errore perchè implode() dovrebbe restituire una stringa e non certo un file
$fp2 = fopen($file, "w");
// imposto un ciclo for
for ($r=0;$r<$count2;$r++){
// sovrascrivo ciascuna riga sul file
$fw2 = fwrite($fp2, "$vettore[$r]\r\n");
}
// chiudo il file
fclose ($fp2);
}
?>
Sul serio, non so come uscirne...Fatal error: Maximum execution time of 120 seconds exceeded in D:\Inetpub\webs\web-marketing-coit\amministrazione_prenotazioni_bookings.php on line 133
Viviamo tutti in una palude di fango, ma alcuni di noi guardano le Stelle http://www.comunicareoltre.it
Mi sento cretina a rispondermi sola, quindi non risponderò più se nessuno mi calcolerà, comunque ho fatto progressi: non dovevo usare array_count_values() ma solo count() così il ciclo va, ma succedono 2 cose strane. Il file era composto da 2 righe, la seconda la cancella e aggiunge un certo numero di righe vuote, la prima non la cancella e aggiunge ancora righe vuote prativamente invece di togliere righe le aggiunge!!!!
vi posto lo script anche se dal momento che non interessa a nessuno non so perchè lo faccio (eppure mi avete aiutato sempre!):
Codice PHP:<?
if ($_GET['action'] == elimina){
$vettore = file($file);
$riga_confronto = "$riga[0]|$riga[1]|$riga[2]|$riga[3]|$riga[4]|$riga[5]|$riga[6]|$riga[7]|$riga[8]|$riga[9]|$riga[10]|$riga[11]|$riga[12]|$riga[13]|$riga[14]";
$counter = count($vettore);
for ($i=0;$i<$counter;$i++){
if ($vettore[$i] == $riga_confronto)
unset($vettore[$i]);
}
$stringa = implode("\r\n", $vettore);
$fp2 = fopen($file, "w");
$fw2 = fwrite($fp2, $stringa);
fclose ($fp2);
}
?>
Viviamo tutti in una palude di fango, ma alcuni di noi guardano le Stelle http://www.comunicareoltre.it
set_time_limit(tempo necesario in secondi)Fatal error: Maximum execution time of 120 seconds exceeded in D:\Inetpub\webs\web-marketing- coit\amministrazione_prenotazioni_bookin
gs.php on line 133
questo funziona se php non è in safe mode.
il codice è sbagliato, non è questione di tempo... comunque apportate modifiche e corretti errori. ora non faccio più il confronto tra le righe del file e una riga impostata, ma assegno in fase di lettura del file un indice a ciascuna riga e poi quando le visualizzo metto accanto a ciascuna un link per la cancellazione così impostato:
<a href=\"cancella-prenotazioni-hotel-bookings.php?action=cancella&id=$indice\">Canc ella</a>
in questo modo la querystring per ogni link è:
?action=cancella&id=1
?action=cancella&id=2
ecc.
ora ho impostato il seguente ciclo per la cancellazione della riga (1,2,ecc.)
Ma anzichè cancellare aggiunge righe vuote in maniera esponenzialeif ($_GET['action'] == 'cancella'){
$occ = count($ciascuna);
for ($id=1;$id<$occ;$id++){
if ($_GET['id'] = $indice){
unset($ciascuna[$indice]);
$stringa = implode("\r\n", $ciascuna);
$fp2 = fopen($file, "w");
$fw2 = fwrite($fp2, $stringa);
fclose ($fp2);
}
}
Non so più che inventarmi
Viviamo tutti in una palude di fango, ma alcuni di noi guardano le Stelle http://www.comunicareoltre.it
io nn so che casini stai combinando dopo una parabola discendente verso l'abisso del debug infinito sei tornata ad una versione taroccata della mia soluzione...Originariamente inviato da luke83
sì.. ok.. adesso mi è chiaro...
dunque quello che ho scritto vale ancora...
questo dovrebbe funzionare... devi solo fare attenzione ad un paio di cose...Codice PHP:<?
$file_di_testo = "./directory/file.txt";
// il file è così formattato:
// 050702|050704|Francesco|Rossi|frossi@ser
ver.it
// 050716|050725|Roberta|Bianchi|rbianchi@s
erver.it
// ...
// leggo il file in un array
// ogni riga sarà un elemento dell'array
$contenuto = file($file_di_testo);
// adesso ho che:
// $contenuto[0] = 050702|050704|Francesco|Rossi|frossi@ser
ver.it
// $contenuto[1] = 050716|050725|Roberta|Bianchi|rbianchi@s
erver.it
// $contenuto[x] = ...
// da una precedente elaborazione del file avevo estrapolato
// gli elementi di ogni riga che vengono visualizzati in ciascun
// blocco ed all' interno di esso si chiamano riga[0] riga[1] ...
// ed in questo caso corrispondono a:
// $riga[0] == 050702
// $riga[1] == 050704
// $riga[2] == Francesco
// ecc.
// se voglio cancellare contenuto[0] da un pulsante che compare
// alla fine di ogni blocco imposto il pulsante (un link)
[url="pagina.php?action=elimina&id=0"]ELIMINA RIGA 0[/url]
// e poi vado a specificare al action elimina
if ($action == 'elimina' && $id>=0) {
// conto le occorrenze di $contenuto
unset($riga[$id]);
$txt = implode("\n", $riga);
}
}
// la pagina si ricarica da sola rileggendo il file e il blocco
// corrispondente alla riga eliminata non dovrebbe esserci più
// ma se fosse vero sarebbe troppo bello
?>
1. stai usando direttamente le var quando fovresti usare $_REQUEST["var"], ma a te pare tutto impostato correttamente se fino a sto punto funziona tutto.
2. devi considerare la variabile id altrimenti nn funziona
3. dopo la implode devi salvare il file
4. ho ipotizzato usassi \n per separare le righe se usi altro come \r\n adatta la cosa..
fammi sapere se ora è tutto ok...
![]()
il problema potrebbe essere legato al sistema operativo ed alla sua codifica degli a capo oppure a delle sbavature nelle singole righe per le quali dovresti usare la funzione trim...
![]()
..::Luca::..
» "se nn riesci a venirene a capo.. usa il tasto INVIO" © 2005 Luke83
» "letta la documentazione, spazio all'immaginazione.." © 2006 Luke83
[frasi random] - [Lucopedia] - [laFetta]
dopo aver letto il tuo pvt, ho notato un particolare che semplifica le cose e che qui avevi omesso...è alla fine che aggiunge quinfi fai così..
[ot]ti ribadisco, le leggo le discussioni, se nn rispondo è xkè nn so rispondere o xkè la soluzione da me proposta è stata da te scartata in prima battuta e nn avendo il controllo sulla psiche degli altri utenti nn ho responsabilità e controllo di fatto sulle loro eventuali peregrinazioni mentali....[/ot]Codice PHP:$stringa = trim(implode("\r\n", $ciascuna));
..::Luca::..
» "se nn riesci a venirene a capo.. usa il tasto INVIO" © 2005 Luke83
» "letta la documentazione, spazio all'immaginazione.." © 2006 Luke83
[frasi random] - [Lucopedia] - [laFetta]
Rimaniamo sulla versione "taroccata" anche perchè nella tua versione originale non ci ho capito molto,non sono un genio del PHP:
e questo l'ho fatto infatti uso $_GET['action'] ed $_GET['id']1. stai usando direttamente le var quando fovresti usare $_REQUEST["var"], ma a te pare tutto impostato correttamente se fino a sto punto funziona tutto.
e questo me lo avevi già consigliato ma non lo avevo capito, ma come vedi nella versione tarocca appare questo $id2. devi considerare la variabile id altrimenti nn funziona
e lo faccio nel ciclo for (forse dovrei farlo all' esterno?3. dopo la implode devi salvare il file
uso \r\n ed infatti ho apportato la modifica4. ho ipotizzato usassi \n per separare le righe se usi altro come \r\n adatta la cosa..
ho testato sia in locale che sul server il risultato è lo stesso, ma se dipendesse da un'errata codifica degli a capo cosa dovrei fare?il problema potrebbe essere legato al sistema operativo ed alla sua codifica degli a capo
Credo che sia da escludere, non sono sicura, ma nelle righe vengono inseriti dati personali e nient'altrooppure a delle sbavature nelle singole righe per le quali dovresti usare la funzione trim![]()
Viviamo tutti in una palude di fango, ma alcuni di noi guardano le Stelle http://www.comunicareoltre.it
ho provato a sostituire
ma il risultato è identicoCodice PHP:$stringa = trim(implode("\r\n", $ciascuna));
Viviamo tutti in una palude di fango, ma alcuni di noi guardano le Stelle http://www.comunicareoltre.it
forse nn sei sincronizzata con le risposte, nell'ultima ti risolvo il problema dellgli spazi alla fine...
la codifica nn ricordo... tipo \n lnx e \r\n winzoz o il contrario, nin zo... ma nn dovrebbe dare problemi alla fine ma ad ogni riga quindi allo stato dell'arte nn ci son sti problemi.. prova quella modifichina dell'ultimo post mio prima di questo e vedi se va...
![]()
..::Luca::..
» "se nn riesci a venirene a capo.. usa il tasto INVIO" © 2005 Luke83
» "letta la documentazione, spazio all'immaginazione.." © 2006 Luke83
[frasi random] - [Lucopedia] - [laFetta]