Pagina 2 di 5 primaprima 1 2 3 4 ... ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 43
  1. #11
    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

  2. #12
    POssibile che nessuno mi possa aiutare?
    Queste le modifiche apportate al codice:

    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);    
    }
    ?>
    Purtroppo mi ritorna il seguente errore:

    Fatal error: Maximum execution time of 120 seconds exceeded in D:\Inetpub\webs\web-marketing-coit\amministrazione_prenotazioni_bookings.php on line 133
    Sul serio, non so come uscirne...
    Viviamo tutti in una palude di fango, ma alcuni di noi guardano le Stelle http://www.comunicareoltre.it

  3. #13
    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

  4. #14
    Utente bannato
    Registrato dal
    Nov 2004
    Messaggi
    202
    Fatal error: Maximum execution time of 120 seconds exceeded in D:\Inetpub\webs\web-marketing- coit\amministrazione_prenotazioni_bookin
    gs.php on line 133
    set_time_limit(tempo necesario in secondi)

    questo funziona se php non è in safe mode.

  5. #15
    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&amp;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.)

    if ($_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);
    }
    }
    Ma anzichè cancellare aggiunge righe vuote in maniera esponenziale

    Non so più che inventarmi
    Viviamo tutti in una palude di fango, ma alcuni di noi guardano le Stelle http://www.comunicareoltre.it

  6. #16
    Utente di HTML.it L'avatar di luke83
    Registrato dal
    Jul 2000
    Messaggi
    1,217
    Originariamente inviato da luke83
    sì.. ok.. adesso mi è chiaro...

    dunque quello che ho scritto vale ancora...

    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
    ?>
    questo dovrebbe funzionare... devi solo fare attenzione ad un paio di cose...
    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...

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

    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]

  7. #17
    Utente di HTML.it L'avatar di luke83
    Registrato dal
    Jul 2000
    Messaggi
    1,217
    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ì..

    Codice PHP:
    $stringa trim(implode("\r\n"$ciascuna)); 
    [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]
    ..::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]

  8. #18
    Rimaniamo sulla versione "taroccata" anche perchè nella tua versione originale non ci ho capito molto,non sono un genio del PHP:

    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 l'ho fatto infatti uso $_GET['action'] ed $_GET['id']

    2. devi considerare la variabile id altrimenti nn funziona
    e questo me lo avevi già consigliato ma non lo avevo capito, ma come vedi nella versione tarocca appare questo $id

    3. dopo la implode devi salvare il file
    e lo faccio nel ciclo for (forse dovrei farlo all' esterno?

    4. ho ipotizzato usassi \n per separare le righe se usi altro come \r\n adatta la cosa..
    uso \r\n ed infatti ho apportato la modifica

    il problema potrebbe essere legato al sistema operativo ed alla sua codifica degli a capo
    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?

    oppure a delle sbavature nelle singole righe per le quali dovresti usare la funzione trim
    Credo che sia da escludere, non sono sicura, ma nelle righe vengono inseriti dati personali e nient'altro
    Viviamo tutti in una palude di fango, ma alcuni di noi guardano le Stelle http://www.comunicareoltre.it

  9. #19
    ho provato a sostituire

    Codice PHP:
    $stringa trim(implode("\r\n"$ciascuna)); 
    ma il risultato è identico
    Viviamo tutti in una palude di fango, ma alcuni di noi guardano le Stelle http://www.comunicareoltre.it

  10. #20
    Utente di HTML.it L'avatar di luke83
    Registrato dal
    Jul 2000
    Messaggi
    1,217
    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]

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.