Visualizzazione risultati 1 fino 3 di 3

Discussione: Problema su file

  1. #1
    Guest

    Predefinito Problema su file

    Buongiorno a tutto il forum. Mi sono creato un form dove vengono digitati nome e Pw. Questi dati vengono controllati su un file (se esistono), altrimenti li scrivo. Il problema dove sta? 1)Innanzitutto non capisco perche' quando scrivo sul file mi mette prima una riga bianca e poi i dati digitati.2)Nel ciclo che faccio (spero sia corretto), il confronto nella IF non lo fa'. Sicuramente faccio qualche errore......comunque grazie per la collaborazione.
    Codice PHP:
    <html>
    <head>
    <title>
    Opeazioni con i file
    </title>
    </head>
    <body >
    <?
    include("top.htm");

    if (isset(
    $_REQUEST['nascosto'])){
    $trovato = "no";
    $user = $_REQUEST['nome'];
    $password = $_REQUEST['pass'];
    $compatta = $user." ".$password;

    controllaccesso($compatta,$trovato);



    if (
    $trovato == "no"){

    $file = fopen("accessi.txt", "a");
    $testo = "$user $password \r\n";
    if (
    fwrite($file,$testo)== FALSE){
    echo
    "Impossibile scrivere sul file";
    }else{
    echo
    "Scrittura su file corretta";


    }
    }
    fclose($file);




    }
    function
    controllaccesso($compatta,$trovato)
    {
    $file = fopen("accessi.txt", "r");
    while (!
    feof($file)){
    $text = fgets($file);
    echo
    "campo text $text", "<br>";
    echo
    "campo compatta $compatta", "<br>";
    if(
    $text == $compatta){
    echo
    "ok";
    break;
    }
    }
    fclose($file);
    }
    ?>
    <center>
    <h1>
    Prova
    </h1>
    <table border = "0" bgcolor = "#808080">
    <form method = "post">
    <tr>
    <td>
    Nome :
    </td>
    <td>
    <input type = "text" name = "nome" size = "20">
    </td>
    </tr>
    <tr>
    <td>
    Password :
    </td>
    <td>
    <input type = "password" name = "pass" size = "10" maxlunght = "8">
    </td>
    </tr>
    <br><br><br>
    <tr>
    <td>
    <input type = "submit" value = "Accedi">
    <input type = "hidden" name = "nascosto">
    </td>
    </tr>
    </form>
    </table>
    </center>
    </body>
    </html>

  2. #2
    L'avatar di heracleum
    heracleum non è connesso Utente storico
    Data registrazione
    21-01-2004
    Messaggi
    3,333

    Predefinito

    Per il punto 1) non so di preciso, forse perché anche la primissima volta apri il file sempre in "append"? quindi probabilmente la tua nuova riga la accoda ad un a capo di una riga vuota (iniziale) ma non ho certezza è solo un'osservazione.

    Invece per il punto 2)
    se per "Nel ciclo che faccio" intendi questo:
    if($text == $compatta){

    mi sembra giusto che ti fallisca sempre l'uguaglianza perché:
    $text = "$user $password " (spazio finale)
    mentre
    $compatta = "$user $password" (senza spazio)
    non potrà essere uguale perché text ha in più sempre uno spazio in fondo.. o almeno non mi sembra di ricordare che fgets oltre a fermarsi ai caratteri di "nuova linea" faccia anche il "trim" degli spazi.. ma potrei ricordare male.

    soluzione: semplicemente aggiungi lo spazio " " anche a $compatta o ancor più semplicemente toglilo quando scrivi su file
    quindi
    $testo = "$user $password\r\n";
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

  3. #3
    Guest

    Predefinito

    Ok. Ti ringrazio.........alla prossima

Regole di scrittura

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