Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    scrivere su nuovi files (php - testo.txt)

    ragazzi ho un dilemma per voi..

    io ho creato una semplice applicazione per memorizzare dei dati da una finestra messa in una pagina html, il tutto si svolge così, arriva l'utente, inserisce i dati, clicca invio, e i dati vengono spediti tramite il metodo "GET" al file php che li memorizza su un file di testo.. fino qui ci siamo, qui il codice che ho creato:

    codice:
    <?php
    $username = $_GET["username"];
    $candidato = $_GET["candidazione"];
    $a = fopen("candidati.txt","a+");
    
    fwrite($a,"
    Username Candidato: $username
    Candidato come: $candidato ");
    fclose($a);
    header('Location: step2.html');
    ?>
    adesso, siccome io volevo fare in modo che ogni volta che arriva un utente nuovo, si apra un nuovo files, e venga scritto sul nuovo, avevo provato così:

    codice:
    <?php
    $username = $_GET["username"];
    $candidato = $_GET["candidazione"];
    $a = fopen($username+".txt","a+");
    
    fwrite($a,"
    Username Candidato: $username
    Candidato come: $candidato ");
    fclose($a);
    header('Location: step2.html');
    ?>
    permettendo così di creare dei files di testo con l'username del richiedente..

    evitando così di "confodere" i dati degli utenti, siccome i dati vengono inviati poco per volta tramite delle procedure in pagine html diverse, se due o più utenti compilassero il i moduli nello stesso tempo, mi risulterebbero più righe risultanti impasticciate fra di loro..

    in parole povere, ci sono 3 pagine che inviano dati e li scrivono sullo stesso file di testo.. se ad esempio il primo utente compila la prima pagina e passa alla seconda, il secondo utente compila la prima pagina e passa alla seconda anchesso, ma nel frattempo l'altro utente compila la 2° pagina.. mi risultano i risultati del primo utente della prima pagina, i risultati del 2° utente della prima pagina e i risultati del 1° utente della 2° pagina.. risultando così difficile capire a chi appartengono i risultati di chi perkè appunto confusi..

    quindi se c'è un modo magari per far si che ogni volta che un utente inizia a compilare si possa scrivere un nuovo file di testo magari con il nome dell'username.. sarebbe ideale..

    è possibile?

    (il file di testo deve essere poi riconosciuto da una seconda applicazione in php.. avveo pensato quindi la funzione random.. ma così nn posso aprirlo cn la seconda funzione..

    chiedo agli esperti..

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    209
    quindi se c'è un modo magari per far si che ogni volta che un utente inizia a compilare si possa scrivere un nuovo file di testo magari con il nome dell'username.. sarebbe ideale..
    Ma scusa, questo non avviene già col secondo codice che hai postato?

  3. #3
    scusa nn mi sono spiegato bene.. allora

    io ho più pagine.. che devono scrivere in quel file.. quindi ad esempio nella prima pagina scrivo all'interno del file creandolo con l'username che ha inserito, ad esempio pincopallino.txt

    adesso, fin qui è tutto ok, ma io come recupero l'username nelle altre pagine html per scriverci sopra?? cioè.. devo fare in modo ke l'username che compili i moduli presenti nelle pagine diverse, sia "unico" ovvero, che durante tutto il ciclo di pagine da compilare si scriva unicamente su quel file di testo..

    quindi se ad esempio arriva pincopallino e compila il modulo e passa alla seconda pagina, e arriva allo stesso tempo genoveffa e compila la pagina, si otterrà pincopallino.txt e genoveffa.txt .. ma adesso, il server, come fà a sapere ke deve ancora trasmettere dati nel file genoveffa.txt anzichè pincopallino.txt ?

    dovrei fare in modo di rikiamare sempre il nome del file di testo, dalla pagina precedente, (quello appena creato) così da permettere che l'utente possa continuare a compilare i moduli senza dover ogni volta inserire l'username

  4. #4
    vi faccio un esempio più pratico.. la questione è questa:

    pagina1.html invia i dati a pagina1.php che li scrive su file.txt
    pagina2.html invia i dati a pagina2.php che li scrive su file.txt

    adesso, pagina2.php, come fà a recuperare il nome del file che è stato scritto poco fà, e scriverci sopra?

  5. #5
    up.. qualcuno può darmi una mano gentilmente?

    ho il sito a terra..

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    209
    ora è più chiaro.
    Puoi memorizzare lo username e farlo passare da una pagina all'altra usando una sessione.

    Prima di tutto, all'inizio di ogni pagina deve esserci session_start();
    nella pagina in cui fai il get dello username lo registri nell'array session:
    Codice PHP:
    $_SESSION["username"]=$_GET["username"]; 
    poi apri il file in base al suo valore
    Codice PHP:
    $a fopen($_SESSION["username"]+".txt","a+"); 
    Inoltre, puoi fare in modo di impedire ad un utente l'accesso ad una pagina se non ha effettuato il login, reindirizzandolo alla pagina di login in questo modo:
    Codice PHP:
    if(!isset($_SESSION["username"])) { header("Location:login.html"); } 

  7. #7
    C'è un errore di base nel tuo script.
    In PHP, per concatenare una variabile ad una stringa non si usa il + ma il punto (.).
    La tua sintassi è classica del JavaScript.
    Ad ogni modo, ti ricordo che per cercare di aiutare alla risoluzione di un problema, in un thread, sarebbe il caso di postare sempre il messaggio di errore che restituisce il tuo script.

    Altro consiglio (ma poi fa come ti pare).... non credo sia molto sicuro salvare i dati di un utente in un foglio di testo, che potrebbe essere facilmente rintracciabile da parte di un hacker che volesse provare ad bucare il tuo sito e/o rintracciare indirizzi email o dati sensibili per spamming o simili.

    Ti consiglio, perciò, l'utilizzo di un DataBase e di leggere la Guida alla Sicurezza in PHP presnete in questo sito.

    Buon lavoro.
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  8. #8
    Originariamente inviato da alcio74
    C'è un errore di base nel tuo script.
    In PHP, per concatenare una variabile ad una stringa non si usa il + ma il punto (.).
    La tua sintassi è classica del JavaScript.
    Ad ogni modo, ti ricordo che per cercare di aiutare alla risoluzione di un problema, in un thread, sarebbe il caso di postare sempre il messaggio di errore che restituisce il tuo script.

    Altro consiglio (ma poi fa come ti pare).... non credo sia molto sicuro salvare i dati di un utente in un foglio di testo, che potrebbe essere facilmente rintracciabile da parte di un hacker che volesse provare ad bucare il tuo sito e/o rintracciare indirizzi email o dati sensibili per spamming o simili.

    Ti consiglio, perciò, l'utilizzo di un DataBase e di leggere la Guida alla Sicurezza in PHP presnete in questo sito.

    Buon lavoro.
    ciau innanzitutto grazie a tt della risposta.

    quello che però non ho capito, è in ke senso ci vuole il (.) ciop devo scrivere l'istruzione in qst modo?

    codice:
    $var = $_GET[$var1.".txt"];
    ??

    per walessio: l'istruzione della sessione dove la metto? :S

  9. #9
    Esatto. In PHP le stringhe si concatenano con il . (punto) non con il più (+).
    È una delle cose che trovi nelle prime pagine di qualsiasi tutorial/manuale di PHP!!!!

    Poi... Le sessioni vanno inizializzate.
    In capo ad ogni script, va dato il comando SESSION_START().
    Una volta dato questo comando, si crea una comunicazione univoca tra il browser ed il server. Si crea una specie di cookie particolare nel server, identificato da un numero chiamato SESSION_ID che corrisponde ad uno, ed un solo, browser, nel quale viene salvato un cookie (di quelli veri stavola).
    Nei file di sessione (quelli che rimangono nel server, per capirci), si possono salvare delle variabili, lo script deve però sapere che una sessione va inziializzata/utilizzata.

    Per cui, in capo ad ogni script che fa uso di sessioni, devi scrivere così:
    Codice PHP:
    <?php
    sessione_start
    ();
    // fatto questo posso andare a salvarci una 
    // variabile dentro
    $_SESSION["username"]=$_GET["username"];
    // resto dello script

    ?>
    Ricordati che se in un'altra pagina hai necessità di andare a vedere quali siano i valori che sono salvati nella sessione, devi sempre inizializzare la pagina all'uso delle sessioni, sempre con session_start().

    Ti consiglio, però, di andare nel manulae ufficiale e studiarti un po' i meccanismi, anche perché non riesco a capire (per quel poco script che ho visto) cosa ci fai con le sessioni, se trasporti le variabili via GET.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  10. #10
    Dimenticavo......

    PHP.net - Session Handling

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.