PDA

View Full Version : principiante PHP


Ansem_93
12-11-2011, 16:25
Raga scusate,ma ho appena iniziato a studiare php quindi ancora non so bene come funziona. volevo fare una pagina che semplicemente guardasse tra 10 text qual'era il valore minimo. Però non riesco a capire perchè non funzioni :/ qualcuno mi può aiutare?
<?php
$array=array(0);
$min=0;
if (isset ($_GET["invia"])) {minimo($_GET);}
else{echo "non funziona";};
function minimo ($array){
global $min;
global $array;
$min=$array["1"];
for ($i=2;$i<=10;$i++){
if ($array[$i]<$min) {$min=$array[$i];};
};
};
$input="<input type='text' name='$1'>
<input type='text' name='$2'>
<input type='text' name='$3'>
<input type='text' name='$4'>
<input type='text' name='$5'>
<input type='text' name='$6'>
<input type='text' name='$7'>
<input type='text' name='$8'>
<input type='text' name='$9'>
<input type='text' name='$10'>
";
$ac='<HTML><BODY><form action="index.php" method="GET">';
echo $ac;
echo $input;
/* for ($i=1; $i<=10; $i++){
print $input;};*/
$pulsante='<input type="submit" name="invia">';
print $pulsante;
print $min;

?>
non riesco a capire perchè non funzione menno l'isset :/ eppure i dati vengono inviati

ConRoe
13-11-2011, 20:44
Perdonami ma gli esercizi di codice offuscato del mio (ormai ex) docente di Informatica 1 erano niente in confronto a tutto ciò :asd:
Lo script non è sbagliato, ci sono alcune imprecisioni che lo rendono non funzionante (oltre al fatto che scritto così farai sempre fatica a correggere gli errori imho)
Personalmente mi sarei comportato in questo modo per quanto riguarda l'organizzazione del programma (indicativamente):

<?php
echo" /*intestazione html, headers e body*/ ";
if(!$_GET){
disegnaForm();
} else {
verificaMinimo();
}
echo" /* chiusura tag aperti sopra e chiusura html */";
?>

che funziona un po' da "main" della situazione che in base alla presenza di dati da parte dell'utente mi chiama il form oppure mi permette di fare la verifica.(ps: per questa operazione avrei utilizzato il metodo POST, e non il GET... tuttavia non è sbagliato farlo con il GET visto che i dati non sono nè sensibili nè dovrebbero superare il limite di dimensione imposta dal metodo GET).

A seguire vado a definire le due funzioni specificate sopra:

function disegnaForm(){
<form name='minimo' method='get' action=' '>
/*senza questo tag form non funziona nulla, ocio!
definisco il metodo (nel caso abbiamo scelto GET)
e anche l'azione, ovvero dove il modulo deve puntare
se non specifico niente, chiama la stessa pagina*/
<input type='text' name='1' />
/*ecc ecc ecc ecc*/
</form>
}


Questo mi permette di disegnare il form nel punto dove mi servirà e, dato che è una funzione, posso richiamarla anche più tardi nel caso, una volta visti i risultati della prima prova, voglia effettuare un'altra verifica.

....e la funzione di verifica:


function verificaMinimo($_GET){
/*pseudocodice*/
/* if $_GET non esiste stampa errore;
altrimenti indicizza gli elementi di $_GET in un array;
*/

/* qui implementi la tua funzione di verifica del minimo e stampi il risultato
.....
*/

/*e, visto che ci è piaciuto tanto farlo una volta
perchè non ripetere un'altra verifica?
*/

disegnaForm();
}


Spero di averti dato almeno una minima idea su come "aggiustare".
PS: chiudi i tag :O