• User

    Problemi con array e file di testo

    In riferimento all'esercio nr.28 di questo link dia.unisa.it/~parente/TSW/eserciziP.shtml
    non riesco a capire dove sbaglio nel terzo script.

    Ora vi posto i tre script.
    [php]<html>
    <head>
    <title>Elementi da inserire</title>
    </head>
    <FORM METHOD=POST ACTION="nomi.php" name="elementi">
    <TABLE border="3" width="350" height="60">
    <TR HEIGHT="10%"><TD>Numeri di elementi da inserire:</TD><TD><INPUT TYPE="text" NAME="elementi"></TD></TR>
    <TR align="center"><TD colspan="2"><INPUT TYPE="submit" VALUE="invia" name="invia"><INPUT TYPE="submit" value="Cancella" name="cancella"></TD></TR>
    </TABLE>

    </FORM>[/php]e questo è tutto ok.
    

    Questo è il secondo:
    [php]<FORM METHOD=POST ACTION="invianomi.php" name="invia">
    <TABLE border="3" width="200" >
    <TR align="center"><TD COLSPAN="2"><B>Inserimento nomi</B></TD></TR>
    <?php
    $elemento=$_POST['elementi'];
    for ($i=1;$i<=($elemento);$i++)
    {
    echo"<TR><TD>Nome$i</TD><TD><INPUT TYPE="text" NAME="nome".$i.""></TD></TR>";
    }

        ?>
        <TR><TD ALIGN="CENTER" COLSPAN="2"><INPUT TYPE="submit" value="invia" name="invia"><INPUT TYPE="submit" value="cancella" name="cancella"></TD></TR>
    

    </TABLE>
    </FORM>[/php]e anke qui credo sia tutto ok.

    E questo è il terzo:
    [php]<?php
    $element=$_POST['$elementi'];
    $nome=$_POST['nome1'];
    $nomi= array ("$nome");
    for ($i=1;$i<=($element);$i++)
    {
    $nome=$_POST["nome$i"];
    $nomi[]="$nome";
    }
    $scrivi_file=fopen("nomi.txt","w");
    for ($i=0;$i<count($nomi);$i++)
    {
    fwrite($scrivi_file,$nomi*);
    $l= array (strlen($nomi*));
    }
    fclose($scrivi_file);
    sort($l);

            for ($i=0;$i<count($l);$i++)
                print("$l");
    

    ?>[/php]

    In questo script invece ho fatto un pò di confusione e non capisco come riuscire a risolvere il problema come ad esempio il passaggio della variabile elementi dal secondo form l'ordinamento dell'array, vi ringrazio anticipatamente.


  • User

    scusate volevo dire esercizio nr 27


  • Consiglio Direttivo

    Ciao net,
    dal secondo form gli unici dati che invii al terzo script sono solo nome1 e nome2, che potresti, volendo, semplicemente sostituire con nome[]
    [PHP] echo"<tr><td>Nome$i</td><td><input type="text" name="nome[]"></td></tr>";[/PHP]
    Pertanto $element=$_POST['$elementi']; è vuoto.

    Nel terzo script devi associare il contenuto di nome:
    [PHP]$nome[]=$_POST['nome'];[/PHP]
    A questo punto hai i tuoi valori all'interno dell'array $nome, con indice numerico che parte da zero ($nome[0]) che scriverai su un file di testo separando i valori con un newline \n.
    Quando vai a rileggere i valori dal file di testo, tramite la funzione file(), ottieni un array che contiene i valori di ogni riga (non dimenticare che sarà presente \n alla fine). La comparazione della lunghezza dovresti risolverla con la funzione usort() abbinata alla funzione strcmp().
    :ciauz: