- Home
- Categorie
- Coding e Sistemistica
- PHP
- Problemi con array e file di testo
-
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.
-
scusate volevo dire esercizio nr 27
-
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().