richiamare una funzione da un'altra funzione

gandalf1959

Utente Attivo
21 Nov 2013
204
1
18
Buongiorno,
questo è sicuramente un problema di facile soluzione...
Ho un form, cliccando sul bottone richiamo la funzione codicesconto(), all'interno della quale richaimo una funzioncina che genera un codice casuale di 12 caratteri.
Peccato che il risultato della funzione richiamata non ci sia...
Ecco il codice della pagina:
PHP:
<?php
session_start();
//se non c'è la sessione registrata
if (!$_SESSION['autorizzato']) {
  echo "<h1>Area riservata, accesso negato.</h1>";
  echo "Per effettuare il login clicca <a href='index.php'><font color='blue'>qui</font></a>";
  die;
}
 
//Altrimenti Prelevo il codice identificatico dell'utente loggato

$cod = $_SESSION['cod']; //id cod recuperato nel file di verifica



function codicecasuale($l = 12) {

    $chars  = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $stringa = '';

    for ($i = 0; $i < $l; $i++)
        $stringa .= $chars[rand(0, strlen($chars) - 1)];
    
    return $stringa;
}

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Emissione codici di sconto</title>
<link href="backoffice.css" rel="stylesheet" type="text/css" />


</head>

<body>


	<div id="esiste" class="testoPiccolo">
		Ciao <? echo "$cod"; ?>,<br>
		indica di seguito la percentuale di sconto che desideri<br>
		e il numero di persone che saranno in grado di fruire dello sconto.
		<br><br>

		<hr>

		<p>&nbsp;</p>


		<form name="form_sconto" method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>">
			Percentuale di sconto: <input type="text" name="percentuale" size="5">%<br><br>
			Codice sconto valido per <input type="text" name="utilizzo" size="5"> volte<br><br>
			<input type="submit" name="emetti" value=" EMETTI IL CODICE ">
		</form>


		<?

		if (isset($_POST['emetti'])) {
			codicesconto();
		}

		function codicesconto() {
			$percento = $_POST['percentuale'];
			$numero = $_POST['utilizzo'];

			codicecasuale();

			$codice = $stringa;

			echo "<p>Questo è il codice valido per " . $numero . " utilizzi,<br>ciascuno dei quali godrà di uno sconto del " . $percento . "%"
. " sull'acquisto di un corso di cucina: " . $codice . "</p>";

		}


		?>


	</div>




</body>
</html>
Perchè la variabile $codice non mi viene valorizzata?
Dove ho sbagliato?
Grazie per l'aiuto
 

gandalf1959

Utente Attivo
21 Nov 2013
204
1
18
SCUSATE...
Ho risolto... improvvisamente mi sono ricordato delle variabili globali... sapevo che ea una stupidaggine, ma stamattina ho il cervello che funziona a rilento.
allego il codice funzionante:
PHP:
<?php
session_start();
//se non c'è la sessione registrata
if (!$_SESSION['autorizzato']) {
  echo "<h1>Area riservata, accesso negato.</h1>";
  echo "Per effettuare il login clicca <a href='index.php'><font color='blue'>qui</font></a>";
  die;
}
 
//Altrimenti Prelevo il codice identificatico dell'utente loggato

$cod = $_SESSION['cod']; //id cod recuperato nel file di verifica

$makepass = "";

function codicecasuale() {

$length = 12;
$salt = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ012345678';
$len        = strlen($salt);
global $makepass;
mt_srand(10000000*(double)microtime());
	for ($i = 0; $i < $length; $i++) {
        $makepass .= $salt[mt_rand(0,$len - 1)];
        }
    
return $makepass;

}

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Emissione codici di sconto</title>
<link href="backoffice.css" rel="stylesheet" type="text/css" />


</head>

<body>


	<div id="esiste" class="testoPiccolo">
		Ciao <? echo "$cod"; ?>,<br>
		indica di seguito la percentuale di sconto che desideri<br>
		e il numero di persone che saranno in grado di fruire dello sconto.
		<br><br>

		<hr>

		<p>&nbsp;</p>


		<form name="form_sconto" method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>">
			Percentuale di sconto: <input type="text" name="percentuale" size="5">%<br><br>
			Codice sconto valido per <input type="text" name="utilizzo" size="5"> volte<br><br>
			<input type="submit" name="emetti" value=" EMETTI IL CODICE ">
		</form>


		<?

		if (isset($_POST['emetti'])) {
			codicesconto();
		}

		function codicesconto() {
			$percento = $_POST['percentuale'];
			$numero = $_POST['utilizzo'];
			global $makepass;

			codicecasuale();

			echo "<p>Questo è il codice valido per " . $numero . " utilizzi,<br>ciascuno dei quali godrà di uno sconto del " . $percento . "%"
. " sull'acquisto di un corso di cucina: " . $makepass . "</p>";

		}


		?>


	</div>




</body>
</html>