annuncio

Comprimi
Ancora nessun annuncio.

aiutino con javascript

Comprimi
X
 
  • Filtro
  • Ora
  • Visualizza
Elimina tutto
nuovi messaggi

  • aiutino con javascript

    prima che qualcuno mi dica di usare google preciso che è da qualche giorno che cerco, ma non riesco a trovare niente che faccia al caso mio... ho scaricato molti tutorial, ho scopiazzato parti di sorgente da internet, ho guardato siti in italiano e in inglese, ma pare che abbia qualche problema a formulare la ricerca, visto che i risultati sono zero: ho bisogno di sapere il nome dell'istruzione che mi permetta di salvare il contenuto di un form in un file di testo... esempio:

    codice:
    <form name="formUno">
    <input type="text" name="nome" > Inserisci il tuo nome
    <input type="button" value="Invia" name="invia" onClick="salva();">
    
    <script language="JavaScript">
    function salva(){
       nomecheck = document.formUno.nome.value
       if (nomecheck.length <1) {
          alert('Inserisci il tuo nome.')
          return
       }
    }
    </script>
    semplicissimo.. riempio il form "nome" e clicco su "invia".. se il campo resta vuoto mi esce fuori un alert che mi dice di riempirlo, ma se il campo lo riempio come faccio a spiegargli di salvare il contenuto in un .txt? :\

  • #2
    Premetto che non sono molto pratico di Javascript ma credo che potresti risolvere il problema con un semplice cookie. (anche perche non so se javascript e' in grado di gestire i file)

    codice:
    function setCookie(NameOfCookie, value, expiredays) {
    var ExpireDate = new Date ();
    ExpireDate.setTime(ExpireDate.getTime() + (expiredays * 24 * 3600 * 1000));
    
      document.cookie = NameOfCookie + "=" + escape(value) + 
      ((expiredays == null) ? "" : "; expires=" + ExpireDate.toGMTString());
    }
    quindi avresti

    codice:
    <form name="formUno">
    <input type="text" name="nome" > Inserisci il tuo nome
    <input type="button" value="Invia" name="invia" onClick="salva();">
    
    <script language="JavaScript">
    function salva(){
       nomecheck = document.formUno.nome.value
       if (nomecheck.length <1) {
          alert('Inserisci il tuo nome.')
          return
       }
       else {
          setCookie('username',nomecheck,365)
       {
    
    }
    </script>
    Ultima modifica di Met4llic4; 08-10-2006, 15:17.

    Commenta


    • #3
      Originariamente inviato da Anselmo
      (anche perche non so se javascript e' in grado di gestire i file)
      hai ragione, javascript non può scrivere su nessun file, avevo dato per scontato che si potesse fare :\

      in teoria avrei voluto fare uno script che prendeva i dati inseriti in un form e li salvava in un .txt..
      per esempio, prendiamo il form del codice scritto da me prima, scriviamoci dentro "gamesnet" e clicchiamo sul bottone "Invia": per quello che credevo fosse possibile io, la parola "gamesnet" sarebbe dovuta magicamente apparire dentro un file di testo, che come unica soluzione immaginavo collocato dentro l'ftp dal quale il sito prende le sue immagini, le sue pagine, i suoi files, in modo tale da poterlo consultare in ogni momento


      visto che con javascript non è possibile farlo, se hai una qualche idea di quale linguaggio abbia bisogno per fare una cosa del genere, non esitare ad andare OT

      Commenta


      • #4
        Allora vediamo se ho capito bene. Tu vuoi salvarti LATO SERVER tutti i nomi che vengono inseriti dall'utente.
        In questo caso dovresi procedere come segue.

        Crearti un file (index.php) il cui contenuto sarà

        codice:
        <HTML>
        <HEAD>
        <TITLE>Prova</TITLE>
        <HEAD>
        <BODY>
        <form NAME="formUno" ACTION="index2.php" METHOD="get" OnSubmit="return controlla()">
        <input type="text" name="nome" > Inserisci il tuo nome
        <input type="submit" value="Invia">
        </form>
        
        <script language="JavaScript">
        function controlla(){
           nomecheck = document.formUno.nome.value;
           if (nomecheck.length <1) {
              alert('Inserisci il tuo nome.');
              return false;
           }
           else{
              return true;
           }
        }
        </script>
        </BODY>
        </HTML>
        E un secondo file (index2.php) che esegue effettivaente la scrittura sul file

        codice:
        <html>
        
        <?php
        
        print ("Prova nomi.<br><br>");
        
        $name = $_GET['nome'];
        
        $filename = "users.txt";
        $file = fopen($filename,'a'); 
        fwrite($file,"$name\n");
        fclose($file);
        ?>
        
        <body>
        
        </html>
        Prova e dimmi...

        PS io non sono stato attento alla sicurezza. Per quello dovrai fare altri controlli...

        Commenta


        • #5
          ho fatto come mi hai detto tu, ho creato i 2 file e ho messo ad ognuno il suo codice, ho creato il file users.txt e l'ho messo nella stessa cartella dove stanno le pagine..

          se scrivo "qualcosa" nel form e premo il bottone "Invia", l'indirizzo della pagina che prima era C:\...\index.php diventa C:\...\index2.php=qualcosa , ma la pagina resta bianca e nel file di testo non viene scritto niente, neanche se modifico il tuo codice inserendo tutto il percorso dell'users.txt

          dimenticavo, ho anche dovuto togliere i due <br> dal tuo

          print ("Prova nomi.<br><br>");

          perchè altrimenti la parte del codice che veniva dopo saltava e spuntava scritto nella pagina come fosse testo...:\

          Commenta


          • #6
            Io ho provato sia in locale sia in hosting

            overme.iitalia.com/index.php (pagina dove inserire i nomi)
            overme.iitalia.com/users.txt (la pagina con i nomi salvati)

            se stai provando in locale assicurati di aver installato PHP
            altrimenti assicurati che l'host su cui hai il server abbia abilitato PHP

            Commenta


            • #7
              Salva in un file php come vuoi tu.

              esempio.php
              codice:
              <?
              $filename = "users.txt";
              if (isset($_POST['Invia'])) {
              	if (!preg_match("/^[a-z0-9]{1,}$/i",$_POST['nome'])) echo "<strong>Non hai inserito il nome o sono stati inseriti dei caratteri non validi (caratteri permessi: A-Z, a-z, 0-9).</strong><br /><br />";
              	else {
              		$file = fopen($filename,'a'); 
              		fwrite($file,"{$_POST['nome']}\n");
              		fclose($file);
              		echo "<strong>Inserito il nome '{$_POST['nome']}' nel file '$filename'. <br />Totale nomi salvati: ".count(file($filename))."</strong><br /><br />";
              	}
              }
              ?>
              <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
              <html xmlns="http://www.w3.org/1999/xhtml">
              <head>
              <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
              <title>Inserimento Nome</title>
              </head>
              
              <body>
              <form id="formUno" name="formUno" method="post" action="">
                <label>Inserisci il tuo nome: 
                <input name="nome" type="text" id="nome" />
                </label>
                <p>
                  <label>
                  <input name="Invia" type="submit" id="Invia" value="Invia" />
                  </label>
                </p>
              </form>
              </body>
              </html>
              Testato e funziona. I preg_match puoi cambiarteli se necessiti di caratteri in più. E' un pò più sicuro rispetto all'altro codice e si svolge in un unico file.
              Ti ho messo degli echoes di supporto.

              Che JavaScript non permetta di scrivere su file non è corretto, lo permette ma essendo client-side potrai al massimo salvare solo le tue operazioni. Tuttavia, far scrivere a javascript su file è qualcosa che, in termini di security, è bene evitare.

              Commenta


              • #8
                grazie mille, anche se non era necessario che inserissi tutti quegli echo... diciamo che più "occultata" è la cosa, e meglio è

                ora non mi resta che perderci un pò di tempo per aggiungere un altro form, cambiargli il nome, e testarlo


                :*

                Commenta


                • #9
                  Diciamo che non voglio sapere per che cos'è.. Ma per precauzione:

                  In riferimento al codice presente a questo indirizzo:

                  w00fz DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS CODE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL w00fz BE LIABLE FOR ANY SPECIAL, INDIRECT OR
                  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS CODE.

                  Commenta


                  • #10
                    Hiihihhi!! Pero sei cattivo! mi hai OWNATO

                    Commenta


                    • #11
                      Originariamente inviato da Anselmo
                      Hiihihhi!! Pero sei cattivo! mi hai OWNATO
                      Ma figurati!

                      Commenta

                      Sto operando...
                      X