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