Problema Stampa Parametro di una funzione

Salve a tutti! Ho un problema alquanto banale con una funzione ma dal quale non riesco ad uscire, sono alle prime armi e probabilmente sbaglio qualcosa!

Ho creato un form in una pagina, semplice con 4 campi, 2 testo e 2 password, e questo form richiama la pagina stampa.php, che deve controllare se le password inserite sono uguali, e in caso positivo stampare i dati passati al form, tutto semplice, però ho deciso di aggiungere un "controllo" ai campi, e vedere se sono vuoti, così da far tornare indietro l'utente e fargli ricompilare il form. Per non creare 30 righe di codice uguale, ho creato una piccola funzione che invoco sui 4 campi, vi mostro il codice:

<?php

$nome=$_POST['nome'];
$email=$_POST['email'];
$password=$_POST['pass'];
$repassword=$_POST['repass'];



function ControllaCampo($campo){
$link="<a href=\"stampadapassword.php\">Indietro</a>";
if($campo==""){
echo "Non hai compilato il campo". $campo ." torna indietro e ricompila correttamente il modulo!"."<br>";
echo $link;
die();
}
}
ControllaCampo($nome);
?>

La funzione 'funziona' però, quando va in stampa produce questo output:

Non hai compilato il campo torna indietro e ricompila correttamente il modulo!

Indietro

In pratica non mi stampa il valore della variabile $campo, io volevo specificare il nome del campo appunto...secondo voi da cosa dipende? Cosa sbaglio?

Grazie in anticipo! Ciao a tutti

inviato 7 anni fa
kawato
X 0 X

Ciao kawato,

il problema della tua funzione è che il valore $campo è vuoto poiché contiene il valore $nome che viene recuperato dal valore $_POST['nome'].

Ti consiglio di modificare la tua funzione in questo modo:

function ControllaCampo($campo, $etichetta){
$link="<a href=\"stampadapassword.php\">Indietro</a>";
if($campo==""){
echo "Non hai compilato il campo". $etichetta ." torna indietro e ricompila correttamente il modulo!"."<br>";
echo $link;
die();
}
}

e puoi richiamarla così:

ControllaCampo($nome, 'Nome');

:bye:

Zeta

risposto 7 anni fa
zeta80
X 0 X

Grazie mille! Perfetto! :D

Io pensavo che ci fosse un assegnamento vero e proprio tra il parametro della funzione $campo e il parametro passato nella chiamata di funzione $nome!

Grazie mille!  :)

Ciao ciao

kawato

risposto 7 anni fa
kawato
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda