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. Stampare dati su file txt: impedire l'inserimento multiplo
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • samyorn
      samyorn Consiglio Direttivo • ultima modifica di

      Ciao cybergiaggia. 🙂

      Intanto andiamo sulle considerazioni semplici.
      Tu scrivi sul file:
      REPLAY:
      [PHP]<?php
      ......
      fwrite($f, $_POST['var1'] . " " . $_POST['var2'] . " - " . $_POST['var3'] . "\n");
      ........
      ?> [/PHP]

      Ed invece all'atto della verifica controlli con:

      SCRIPT:
      [PHP]<?
      .......
      if ( $lines[$key] == ($_POST['var1'] . " " . $_POST['var2'] . " - " . $_POST['var3'] . "<br>")) {
      ........
      ?> [/PHP]

      Ovvero crei le righe, giustamente, con \n ma per il controllo cerchi il <br>.
      Proverei intanto ad effettuare questo tipo di modifica.
      Facci sapere. 😉

      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
      • C
        cybergiaggia User • ultima modifica di

        Ho corretto lo script come mi hai consigliato 🙂
        Il problema però permane... 😞

        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • samyorn
          samyorn Consiglio Direttivo • ultima modifica di

          Allora proverei intanto se funziona con una sola riga ed un solo elemento così da testare il codice, poi vediamo se il problema è il passaggio della riga. 😉

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • C
            cybergiaggia User • ultima modifica di

            Ho provato a inserire la prima riga ma, se provo a inserire gli stessi dati, mi scrive anche la seconda riga...
            Ho provato anche a eliminare l'"a capo" nel controllo (\n) ma non succede niente...
            :mmm:

            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • samyorn
              samyorn Consiglio Direttivo • ultima modifica di

              Prova allora ad esplodere la riga in modo da ottenere l'indirizzo email (fai un substring con -1 per togliere il segno di a capo) e poi confronti solo quello.

              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • C
                cybergiaggia User • ultima modifica di

                Ho risolto così: ho spostato gli stripslashes prima del controllo...grazie!
                😉

                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                • C
                  cybergiaggia User • ultima modifica di

                  Ma se adesso volessi impedire l'inserimento multiplo del solo campo 'email'???
                  Lo SCRIPT sarebbe una cosa del tipo:

                  [php]for ( $key = 0; $key < count($lines); $key++ ) {
                  if ( $lines[$key] == ($_POST['var1'] . " " . $_POST['var2'] . " - " . $_POST['var3'] . " - " . $_POST['var4'])) {
                  $found = 1;
                  }
                  elseif ( $lines[$key] == ($_POST['var4'])) {
                  $found = 2;
                  }
                  }[/php]

                  Ma mi va in errore...
                  😞

                  0 Miglior Risposta Ringrazia Cita Rispondi

                    1 Risposta Ultima Risposta
                  • samyorn
                    samyorn Consiglio Direttivo • ultima modifica di

                    Ciao cybergiaggia, fai attenzione alle maiscole, è ricordato anche nel campo di risposta. 😉

                    Dovresti esplodere $lines[$key] per ottenere la sola stringa dell'email e poi confrontare quella. 😉

                    Come hai fatto tu confronti l'intera riga con la sola email.

                    Oppure potresti utilizzare un eregi() o, essendo deprecata come funzione, meglio stripos().

                    Utilizzando stripos($lines[$key], $_POST['var4']) se il risultato è diverso da false allora hai trovato una mail duplicata. 😉

                    0 Miglior Risposta Ringrazia Cita Rispondi

                      1 Risposta Ultima Risposta
                    • C
                      cybergiaggia User • ultima modifica di

                      grazie!
                      pare che la cosa funzioni: l'inserimento della email già inserita non è consentito...
                      anche se adesso non funziona l'ipotesi 'found==1' ovvero mi permette l'inserimento multiplo di 'nome cognome - email'

                      :mmm:

                      SCRIPT
                      [php]for ( $key = 0; $key < count($lines); $key++ ) {
                      if ( $lines[$key] == ($_POST['var1'] . " " . $_POST['var2'] . " - " . $_POST['var3'])) {
                      $found = 1;
                      }
                      elseif ( stripos($lines[$key], $_POST['var3'])) {
                      $found = 2;
                      }
                      }
                      [/php]

                      REPLAY
                      [php] if ($found==1){
                      echo "<br><b>Attenzione!</b><br>Dati già inseriti.<br><br>";
                      }
                      if ($found==2){
                      echo "<br><b>Attenzione!</b><br>Email già utilizzata.<br><br>";
                      }
                      elseif ( $f = fopen($filelocation, "a+") ) {
                      fwrite($f, $_POST['var1'] . " " . $_POST['var2'] . " - " . $_POST['var3'] . "\n");
                      fclose($f);
                      echo "<div align="center">".$subscribecall."</div><br><br><br><br>";
                      }
                      [/php]

                      0 Miglior Risposta Ringrazia Cita Rispondi

                        1 Risposta Ultima Risposta
                      • samyorn
                        samyorn Consiglio Direttivo • ultima modifica di

                        Dato che vuoi fare due diversi controlli, puoi utilizzare lo stesso sistema solo per nome e cognome. 😉

                        [php] if ( stripos($lines[$key],($_POST['var1']." ".$_POST['var2']) )) {[/php]

                        0 Miglior Risposta Ringrazia Cita Rispondi

                          1 Risposta Ultima Risposta
                        • C
                          cybergiaggia User • ultima modifica di

                          Mmmh,
                          grazie Samyorn ma così impedirei a due o più omonimi di inserire i loro dati, ovvero a partire dal secondo di essi...
                          Ad esempio:
                          mario bianchi - mariobianchiATemail.it impedirebbe l'inserimento a

                          mario bianchi - bianchimarioATemail.it

                          :mmm:

                          0 Miglior Risposta Ringrazia Cita Rispondi

                            1 Risposta Ultima Risposta
                          • samyorn
                            samyorn Consiglio Direttivo • ultima modifica di

                            Allora aggiungi a seguire anche l'indirizzo mail. 🙂

                            [php] if ( stripos($lines[$key],($_POST['var1']." ".$_POST['var2']." - ".$_POST['var3']) )) { [/php]</span>

                            0 Miglior Risposta Ringrazia Cita Rispondi

                              1 Risposta Ultima Risposta
                            • C
                              cybergiaggia User • ultima modifica di

                              Siiiiiiiiiiiiii, risolto!!!
                              Grazie!!!
                              :vaiii:

                              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