Visualizzazione risultati 1 fino 12 di 12

Discussione: Form di registrazione su file di testo

  1. #1
    Guest

    Predefinito Form di registrazione su file di testo

    Ciao ragazzi,
    sono alle prese coi primi passi di PHP e volevo creare un form sul mio sito per registrare utenti. I dati non vengono salvati su DB ma su un file di testo (nel mio caso l'ho chiamato utenti.dat).

    Ho scritto questo codice PHP che sul server della mia scuola funziona ma, non so perchè, qui su Altervista no. Il file PHP viene eseguito però il file utenti.dat non viene aggiornato (e rimane quindi ancora vuoto).

    Per provarlo: http://www.federicoweb.altervista.org/signup.php

    Ecco il codice della pagina che viene chiamata dall'action del form (register.php):

    Codice PHP:
    <?php

    $reg
    =fopen("files/utenti.dat","a");
    $nn=$_REQUEST['nick'];
    $pw=$_REQUEST['pass'];
    $mail=$_REQUEST['email'];
    $registrazione=$nn.";".$pw.";".$mail."\r\n";
    fwrite($reg,$registrazione);
    fclose($reg);

    echo
    "Registrazione effettuata con successo. Grazie per esserti iscritto."

    ?>
    E questo invece è il contenuto del form:

    Codice HTML:
    <form action="include/register.php" name="register-box" method="post">
    	<p>
    	  Nickname
          <input type="text" name="nick">
        <span class="small">(Max. 20 caratteri)</span></p>
    	<p>
    	  Password 
    	  <input type="password" name="password">
        <span class="small">(Min. 4 caratteri)</span></p>
    	<p>
    	  Email 
    	  <input type="text" name="email">
        <span class="small">(Servir&agrave; per completare la registrazione)</span></p>
    	<p><input name="go" type="submit" value="Registrati"> 
    	  <input name="reset" type="reset" value="Cancella dati"></p>
    </form>
    Dov'è il problema?

    Grazie

  2. #2
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    avevo fatto un po' di tempo fa test su file .php per archiviare dati sensibili utilizzzANDO l'algoritmo blowfish di criptaggio .... avevo creato funzioni particolari tra cui quella per scrivere su file....lo scripèt è perfettamewnte funzionante.

    ho utilizzato quelle funzioni archivindo dati sensibili di errori e tracking IP su file di LOG .php

    questa è la funzione che scrive su file:
    Codice PHP:
    <?php

    function write_utenti($user,$pw,$email,$ip,$data)
    {
    $file="utenti.php";
    if (
    file_exists($file) AND is_readable($file) AND is_writable($file)) {

    $pw = md5($pw.MD5_SALT);
    $user = PMA_blowfish_encrypt($user, BLOW_KEY);
    $email = PMA_blowfish_encrypt($email, BLOW_KEY);
    $ip = PMA_blowfish_encrypt($ip, BLOW_KEY);
    $data = PMA_blowfish_encrypt($data, BLOW_KEY);

    $fp = fopen($file, "a+");

    if (
    flock($fp, LOCK_EX | LOCK_NB)){
    if (!
    fwrite($fp,$user.",".$pw.",".$email.",".$ip.",".$data."\n")) return false;
    //sleep(5);
    //flock($fp, LOCK_UN);
    }else return false;

    fclose($fp);
    return
    true;

    }else {
    file_put_contents($file,'<?php header("HTTP/1.0 404 Not Found");die();?>'."\n");
    return
    false;
    }
    }
    //function

    ?>
    Ultima modifica di EuroSalute : 02-04-2011 alle ore 21.21.43 Motivo: info...
    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

  3. #3
    Guest

    Predefinito

    Dato che il sito mi serve per scopi scolastici non posso utilizzare un codice già preparato come il tuo ma mi serve qualcosa che posso fare io. Non c'è qualche funzione analoga a quelle che ho usato io per farlo funzionare ugualmente?

    Grazie lo stesso ;)

  4. #4
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    ehm, scusami non avevo capito, forse non dovevo postare il codice....



    va be, prova a prenderne spunto.....prima di aprire il file devi eseguire delle funzioni di controllo, come per es. se il file esiste....
    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

  5. #5
    Guest

    Predefinito

    Citazione Originalmente inviato da federicoweb Visualizza messaggio
    Dato che il sito mi serve per scopi scolastici [snip]
    Se lo scopo è didattico, ragiona come "didattica comanda".

    Lascia perdere il form e i contenuti dei campi che dovranno depositarsi sul file di testo: ciò che per prima cosa devi stabilire è se quel file di testo puoi crearlo e scrivere al suo interno.

    Crea un file pippo.php che contiene soltanto:

    Codice PHP:
    <?php
    $reg
    =fopen("files/utenti.dat","a");
    fwrite($reg,"stringa di prova");
    fclose($reg);
    ?>
    ed eseguilo. Se il file non viene scritto il problema è qui (magari si cerca di capire dove sta), così ti togli di mezzo tutto il resto del codice che confonde solo le idee.

  6. #6
    Guest

    Predefinito

    Citazione Originalmente inviato da webeginner Visualizza messaggio
    Se lo scopo è didattico, ragiona come "didattica comanda".
    Crea un file pippo.php che contiene soltanto:

    Codice PHP:
    <?php
    $reg
    =fopen("files/utenti.dat","a");
    fwrite($reg,"stringa di prova");
    fclose($reg);
    ?>
    Così funziona. Quindi ragionando:

    - O c'è qualche errore nel mio script PHP
    - O c'è qualche errore nel form (anche se mi sembra impossibile dato che è una semplice action verso una pagina php, nulla di che).

    Probabilmente c'è qualche errore nel mio codice nella parte relativa alla riga dove dico quali dati scrivere nel file di testo. Però non vedo l'errore :(

  7. #7
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Invece di request, prova con post.
    -
    Inoltre il percorso è sbagliato, correggilo così:
    Codice PHP:
    $reg=fopen('../files/utenti.dat', 'a');
    Ultima modifica di andreafallico : 03-04-2011 alle ore 19.47.03

  8. #8
    Guest

    Predefinito

    Funziona! Era semplicemente sbagliato l'indirizzo del file utenti.dat come suggerito da andreafallico, mancava "../" prima di "files/utenti.dat". Grazie mille!

  9. #9
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Ora devi proteggere, tramite htaccess, il file files/utenti.dat

  10. #10
    mymood non è connesso Neofita
    Data registrazione
    23-08-2010
    Messaggi
    20

    Predefinito pagina con login e password?

    ciao,
    se trovi un nuovo iscritto al tuo sito sono io che mi sono iscritto per prova. Vorrei fare la stessa cosa che hai fatto tu per il mio sito. Non in alterpages ma penso di poterlo fare in altervista. Mi dici le fasi principali? Serve anche a me per la scuola.

  11. #11
    Guest

    Predefinito

    Citazione Originalmente inviato da andreafallico Visualizza messaggio
    Ora devi proteggere, tramite htaccess, il file files/utenti.dat
    Come si fa?

  12. #12
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Nella cartella files, devi creare un file .htaccess con:
    Codice PHP:
    <Files "utenti.dat">
    Order deny,allow
    Deny from all
    </Files>

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •