Navigazione

    Privacy - Termini e condizioni
    © 2020 Search On Media Group S.r.l.
    • Registrati
    • Accedi
    • CATEGORIES
    • Discussioni
    • Non letti
    • Recenti
    • Hashtags
    • Popolare
    • Utenti
    • Stream
    • Interest
    • Categories
    1. Home
    2. Categorie
    3. Coding e Sistemistica
    4. Coding
    5. Azioni di scrittura nello stesso istante
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • D
      dartfira User • ultima modifica di

      Purtoppo non so darti una risposta a questo, però ti sconsiglio di usare file di testo come database, ti conviene usare un database mysql che non ti da tutti questi problemi.

      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
      • O
        olaola User Attivo • ultima modifica di

        puoi usare flock

        http://it2.php.net/manual/it/function.flock.php

        per bloccare l'accesso al file mentre ci scrivi, in modo che altri non possano farlo nello stesso momento...

        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • A
          alessiofbt Bannato User Attivo • ultima modifica di

          @olaola said:

          puoi usare flock

          http://it2.php.net/manual/it/function.flock.php

          per bloccare l'accesso al file mentre ci scrivi, in modo che altri non possano farlo nello stesso momento...

          Praticamente perfetto 😄

          Grazie

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • P
            piccolo.socrate User Attivo • ultima modifica di

            si ma se usi flock() devi poi considerare una procedura d'errore per il form, visto che solo uno degli utenti andrà a scrivere..

            per evitare questi casi conviene sempre e solo il database.

            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • A
              alessiofbt Bannato User Attivo • ultima modifica di

              @piccolo socrate said:

              si ma se usi flock() devi poi considerare una procedura d'errore per il form, visto che solo uno degli utenti andrà a scrivere..

              per evitare questi casi conviene sempre e solo il database.

              E pazienza se è talmente "sfigato" da dover dare il submit nello stesso istante che lo da un altro, può anche tornare indietro e rinviare di nuovo, i dati se sono dentro un textarea o input rimangono :bho:

              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • O
                olaola User Attivo • ultima modifica di

                potresti usare la tecnica che avevi pensato... aspetti un tot di tempo (consiglio usleep al posto di sleep, magari in coppia con rand per generare un numero casuale di microsecondi) e poi ritenti il comando...

                se va male anche la seconda e' sfiga vera!!!

                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                • A
                  alessiofbt Bannato User Attivo • ultima modifica di

                  @olaola said:

                  potresti usare la tecnica che avevi pensato... aspetti un tot di tempo (consiglio usleep al posto di sleep, magari in coppia con rand per generare un numero casuale di microsecondi) e poi ritenti il comando...

                  se va male anche la seconda e' sfiga vera!!!

                  Eheheh davvero 😄

                  usleep() è meglio?

                  O altrimenti ancora meglio:

                  Metto sleep o usleep con microsecondi generati da un rand (), poi una volta arrivato il momento, inizia con la funzione flock() a bloccare :vaiii:

                  Cosi che se anche 100 utenti si trovano a fare submit nello stesso momento oltre ad esserci una probabilità su un migliaglio di trovarsi a scrivere nello stesso momento, e se proprio è sfiga vera allora subito dopo il primo che raggiunge si trova flock che blocca l'accesso al file ad altri o alle brutte non consente a nessuno di scrivere, cosi che comunque i dati non subiscono problemi :lol:

                  Flock almeno dovrebbe avere una priorità utente vero? cioè conta in microsecondi anche lui? e se capita che flock() viene eseguita praticamente nello stesso istante? avviene un blocco di richieste temporaneo al server? :mmm:

                  0 Miglior Risposta Ringrazia Cita Rispondi

                    1 Risposta Ultima Risposta
                  • O
                    olaola User Attivo • ultima modifica di

                    non e' che usleep sia meglio di sleep, ma ti permette di aspettare tot microsecondi, invece che tot secondi... per velocizzare la cosa...

                    poi certo il controllo su flock deve rimanere... cioe' se il file e' locckato, l'operazione fallisce e devi prevedere la cosa con un "if".. nella pagina di manuale di flock il primo esempio ti spiega come gestire l'eventualita'...

                    0 Miglior Risposta Ringrazia Cita Rispondi

                      1 Risposta Ultima Risposta
                    • K
                      kevindavidmitnick Bannato User Newbie • ultima modifica di

                      Ho trovato una riga che volevo mostrare qui per chiedere una cosa:

                      [php] $filetoopen = $ub['home_path'].'forum'.$inforum.'/list.php';
                      $list = get_file($filetoopen);
                      $lst = fopen($filetoopen,'r+');
                      lock_file($lst);[/php]Mi stavo chiedendo ma il lock_file funziona come il flock? no perchè in rete la funzione lock_file non la trovo da nessuna parte.

                      Ciauz.

                      0 Miglior Risposta Ringrazia Cita Rispondi

                        1 Risposta Ultima Risposta
                      • O
                        olaola User Attivo • ultima modifica di

                        Ciao KevinDavidMitnick e benvenuto nel Forum GT,

                        probabilmente la funzione che tu citi è stata creata dall'utente che ha scritto quel codice, per questo non la trovi in rete.

                        Comunque dovrebbe essere riportata nella stessa pagina dove hai preso il pezzo di codice.

                        :ciauz:

                        0 Miglior Risposta Ringrazia Cita Rispondi

                          1 Risposta Ultima Risposta
                        • K
                          kevindavidmitnick Bannato User Newbie • ultima modifica di

                          Edit:

                          • Inizia i messaggi con una maiuscola e termina con un punto.
                          • non sono tollerati flame e polemiche.
                          0 Miglior Risposta Ringrazia Cita Rispondi

                            1 Risposta Ultima Risposta
                          Caricamento altri post
                          Rispondi
                          • Topic risposta
                          Effettua l'accesso per rispondere
                          • Da Vecchi a Nuovi
                          • Da Nuovi a Vecchi
                          • Più Voti