non mi tornano i conti !!

  • Creatore Discussione Creatore Discussione ste75
  • Data di inizio Data di inizio

ste75

Nuovo Utente
24 Giu 2014
5
0
0
Visto che ora ho un po di tempo libero .. sto provando a creare un banale script per far calcolare dei numeri casuali di 6 cifre ... ho utlizzato mt_rand( 1 a 100000), adesso vorrei potenziarlo ... ho creato uno form da dove viene inviato ( tramite post ) una lettera ... dovrebbe restituire un numero iniziale alla cifra differente per ciascuna lettera inviata .. il problema e che lo script che ho creato restituisce solo un numero che inizia per 0 o 1 ... perche ? cosa ho sbagliato ? come risolvere ?

HTML:
<form name="test" action="post.php" method="post">
    <input type="radio" name="numero" value="a"> da 0 a 1
    <input type="radio" name="numero" value="b"> da 2 a 3
    <input type="radio" name="numero" value="c"> da 4 a 4
    <input type="radio" name="numero" value="d"> da 6 a 7
    <input type="radio" name="numero" value="e"> da 8 a 9
    <input type="submit" value='calcola'>
</form>

PHP:
<?php
if(isset($_POST['numero']) == 'a') {
     echo mt_rand(0, 1) . mt_rand(10000, 99999);            
} elseif (isset($_POST['numero']) == 'b') {
    echo mt_rand(2, 3) . mt_rand(10000, 99999);
} else {
    if (isset($_POST['numero']) == 'c') {
        echo mt_rand(4, 5) . mt_rand(10000, 99999);
}

include 'form.html';
?>

grazie
 
ciao
se non sbaglio quello che vuoi fare.
per forza ti rende un numero che inizia sempre per 0 o 1 qui
PHP:
echo mt_rand(0, 1) . mt_rand(10000, 99999);
fai un concatenamento, probabilmente intendevi una moltiplicazione
PHP:
echo mt_rand(0, 1) *mt_rand(10000, 99999);
poi perchè usi mt_rand(0,1)
per avere un numero casuale es. tra 10000 e 99999 basta
PHP:
echo mt_rand(10000, 99999);
mt_rand restituisce u valore random tra min e max compresi
 
Ciao, questa condizione è sbagliata
PHP:
if(isset($_POST['numero']) == 'a') {
o è
PHP:
if(isset($_POST['numero'])) {
oppure
PHP:
if($_POST['numero'] == 'a') {
oppure
PHP:
if(isset($_POST['numero']) && $_POST['numero'] == 'a') {
 
grazie a tutti .. mi sa che aveo fatto un po di casino !!
adesso provo a fargli calcolare anche le lettere !! ))
 
ieri ho dato una migliorata al tutto ... ora però ho un problema e un informazione da chiedere
ho trasformato il tutto invece che con if .... con switch e 5 casi + il default e funziona ...
PHP:
$a = mt_rand(10000, 99999);
 
switch ($_POST['numero']) {

 case "a" :
echo mt_rand(0, 1) . $a;
break; 

case "b":
    echo mt_rand(2, 3) .  $a;
    break;

case 'c':
    echo mt_rand(4, 5) .  $a;
    break;

case 'd':
    echo mt_rand(6, 7) . $a;
    break;

case 'e':
echo mt_rand(8, 9) .  $a;
    break;
default :
    echo 'non hai selezionto nulla';
    break;
}
echo'<br/>';

alla grande ... adesso vorrei aggiungere 1 nuova variabile .. la lunghezza dei numeri ... ho creato nel form un menu che invia 3 scelte ... 6, 7 e 8 numeri adesso ho un dubbio su come agire .. da quanto ho capito non posso assegnare a switch una variabile tipo $w = switch (xxx) case "6" $a =mt_rand (10000, 99999); case"7" ecc .... e poi aggingere il tutto all'altro case ... quindi pensavo di di riformulare lo switch precedente aggiungendo un altro switch ... es
PHP:
switch ($_POST['a']) 
case "6" :
switch ($_post['numero']
echo mt_rand(0, 1) . $a;
break; 

case "b"
...
case"c"
....
case"d"

case "7"
switch ($_post[numero])
case "a"
ecc

è il corretto modo di aggire ? esite un altra formula ? ...
infine un informazione ... stavo cercando di evolvere il mio script, pensavo di trasformarlo in una funzione per poterlo richiamare quando serviva adesso essendoci $_post funziona dentro una funzione ? .. oppure devo inserire ad esempio una variabile e poi esplicitarla ogni volta che ho intenzione di usarlo ?
 

Discussioni simili