Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    8

    passaggio variabili con $php_self

    ho appena iniziato con php e per fare le prime prove ho copiato il programmino allegato ma all'esecuzione ricevo sempre questo messaggio


    Notice: Undefined variable: num1 in c:\program files\easyphp1-7\www\tasca\calcolatrice.php on line 40

    Notice: Undefined variable: operation in c:\program files\easyphp1-7\www\tasca\calcolatrice.php on line 40

    Notice: Undefined variable: num2 in c:\program files\easyphp1-7\www\tasca\calcolatrice.php on line 40

    Notice: Undefined variable: x in c:\program files\easyphp1-7\www\tasca\calcolatrice.php on line 40
    =

    perchè mi perdo le variabili?

    aprofitto per chiedervi se esite un programma di debug che mi permetta di conoscere il valore attuale delle variabili


    grazie dell'aiuto
    flyer50

    <h2>
    <?php
    switch ('operation')
    { case "+" : $x = $num1 + $num2; break;
    case "-" : $x = $num1 - $num2; break;
    case "*" : $x = $num1 * $num2; break;
    case "/" : $x = $num1 / $num2; break;
    default :
    }
    ?>
    </h2>
    </td></tr></table>
    <form action=" <?PHP echo $_SERVER['PHP_SELF']?>" method="post">


    <table><tr>
    </td><tr><td>Operando 1</td><td>
    <input type=text name=num1></td>

    <td rowspan=2>
    <input type=radio name=operation value="+">+

    <input type=radio name=operation value="-">-

    <input type=radio name=operation value="*">*

    <input type=radio name=operation value="/">/

    </td></tr>


    <tr><td> Operando 2 </td><td>
    <input type=text name=num2></td></tr>

    <tr><td><input type=submit value="Calcola"></td>
    <td colspan=2 align=center>

    <?PHP

    print "$num1 $operation $num2 =$x "; ?>

    <td><tr>
    </table>
    </form>

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    1,141
    prova così
    Codice PHP:
    switch ($_POST['operation'])
    { case 
    "+" $x $_POST['num1'] + $_POST['num2']; break;
    case 
    "-" $x $_POST['num1'] - $_POST['num2']; break;
    case 
    "*" $x $_POST['num1'] * $_POST['num2']; break;
    case 
    "/" $x $_POST['num1'] / $_POST['num2']; break;
    default :

    ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    8
    grazie dell'aiuto

    purtroppo continua a darmi la stessa risposta e ora ha aggiunto questa notice

    Notice: Undefined index: operation in c:\program files\easyphp1-7\www\tasca\calcolatrice.php on line 8

    flyer50

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    1,141
    prova così:

    codice:
    <?php
    if(isset($_POST['invia']))
    {
    	
    	
    switch ($_POST['operation'])
    { 
    	
    	case "+":   
    	 	$x = $_POST['num1'] + $_POST['num2']; 
    	break;
    	
    	case "-": 
    	 	$x = $_POST['num1'] - $_POST['num2']; 
    	break;
    
    	case "*": 
    		$x = $_POST['num1'] * $_POST['num2']; 
    	break;
    
    	case "/": 
    		$x = $_POST['num1'] / $_POST['num2']; 
    	break;
    	
    	default:	
    	break;
    }	
    
    }
    ?>
    </h2>
    </td></tr></table>
    <form action=" <?PHP echo $_SERVER['PHP_SELF']?>" method="post">
    
    
    <table><tr>
    </td><tr><td>Operando 1</td><td>
    <input type="text" name="num1" value=""></td>
    
    <td rowspan=2>
    <input type="radio" name="operation" value="+">+
    
    <input type="radio" name="operation" value="-">-
    
    <input type="radio" name="operation" value="*">*
    
    <input type="radio" name="operation" value="/">/
    
    </td></tr>
    
    
    <tr><td> Operando 2 </td><td>
    <input type="text" name="num2" value=""></td></tr>
    
    <tr><td><input type=submit name="invia" value="Calcola"></td>
    <td colspan=2 align=center>
    
    <?PHP
    
    if(isset($_POST['invia']))
     echo $_POST['num1']." ".$_POST['operation']." ".$_POST['num2']." = ".$x; ?> 
    <td><tr>
    </table>
    </form>
    ciao

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    8
    grazie. funziona bene

    ora me lo studio per benino perchè a prima vista mi sembra quasi ostrogoto


    in pratica hai spedito tutti i parametri con il metodo post indicando ulteriormente per ognuno che si tratta di una variabile inviata con post

    poi leggi le variabili specificando che provengono dal metodo post

    ho capito giusto?

    ciao
    flyer50

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    1,141
    il problema di fondo è che tu richiamavi le variabili della form inviate tramite post come $num1,$num2...
    Questo era possibile con le vecchie versioni di php che avevano register_global settato ad on, ora per ragioni di sicurezza, questo di defualt è ad off, perciò non si possono + richiamare così, ti rimando ad una pillola che ti potrà chiarire le idee:
    http://forum.html.it/forum/showthrea...hreadid=245215

    ciao

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    8
    grazie
    molto utile


    ciao
    flyer50

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.