Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di P4n1c
    Registrato dal
    Feb 2008
    Messaggi
    116

    Switch + Form... perdita di dati

    # pagina.php?step=1

    Codice PHP:
    <?php
    switch ($step
    {
    case 
    1:

           if ( empty(
    $_POST['submit'])) {
      
    ?>
    <form action=pagina.php?step=2 method=POST>
    <input type="text" name="scritta">
    <input type="submit" name="submit" value="vai avanti">
    </form>
      <?php

        
    } else {
    header('location: pagina.php?step=2');
    }

    break;
    case 
    :
    $lol $_POST['scritta'];
    echo 
    $lol// stampa correttamente

    header('location: pagina.php?step=3');
    break;

    case 
    :
    echo 
    $lol/* non stampa più perchè è cambiato il link dell'action, e quindi non coincide con il form */

    break;

    }
    C'è un modo per portare il valore della variabile globale anche nel case 3 ?

  2. #2
    Perchè hai inserito un IF all'interno dello switch?
    Stai utilizzando register_globals (vedi $step)?
    Se non valorizzi $lol, difficilmente puoi stamparne il contenuto. Prova con echo $_POST['scritta']; .

  3. #3
    Utente di HTML.it L'avatar di P4n1c
    Registrato dal
    Feb 2008
    Messaggi
    116
    non ti seguo...

    ho semplicemente inserito un if per verificare se il l'input submit è stato premuto, e per "comodità". Per quanto riguarda il valorizzamento della variabile $lol, lo faccio nello $step = 2.
    Ma anche se la sotituissi con $_POST['scritta'] mi darebbe errore comunque... ( ci ho provato ).

  4. #4
    ho semplicemente inserito un if per verificare se il l'input submit è stato premuto, e per "comodità".
    Guarda con attenzione DOVE lo hai inserito.

    riguarda il valorizzamento della variabile $lol, lo faccio nello $step = 2.
    Stai confondendo variabili globali (e non) con variabili di sessione.

  5. #5
    Utente di HTML.it L'avatar di P4n1c
    Registrato dal
    Feb 2008
    Messaggi
    116
    Originariamente inviato da filippo.toso
    Guarda con attenzione DOVE lo hai inserito.


    Stai confondendo variabili globali (e non) con variabili di sessione.

    Ho appena provato in locale a mettere questo file :

    Codice PHP:
    <?php

    if (empty($_GET['step']))
    {

    header('location: toso.php?step=1');

    }

    else {

    $step $_GET['step'];

    }

    switch (
    $step)
    {
    case 
    1:

           if ( empty(
    $_POST['submit'])) {
      
    ?>
    <form action=toso.php?step=2 method=POST>
    <input type="text" name="scritta">
    <input type="submit" name="submit" value="vai avanti">
    </form>
      <?php

        
    } else {
    header('location: toso.php?step=2');
    }

    break;
    case 
    :
    $lol $_POST['scritta'];
    echo 
    $lol// stampa correttamente

    header('location: toso.php?step=3');
    break;

    case 
    :
    echo 
    $lol/* non stampa più perchè è cambiato il link dell'action, e quindi non coincide con il form */

    break;



    ?>
    e funziona... quindi scusa la mia ignoranza ma non capisco perchè non posso mettere un ciclo if fra dentro uno switch.
    Per quanto riguarda portare il valore nel case 3 della variabile $_POST['scritta'] , se ho capito bene, lo posso fare solo se memorizzo il valore su una variabile di sessione ?

  6. #6
    non capisco perchè non posso mettere un ciclo if fra dentro uno switch.
    Nel codice che hai postato in origine, l'IF era direttamente dentro allo switch e non dentro a case 1:

    lo posso fare solo se memorizzo il valore su una variabile di sessione ?
    Lo puoi fare utilizzando le sessioni, utilizzando una form oppure passandolo come parametro query string.

  7. #7
    Utente di HTML.it L'avatar di P4n1c
    Registrato dal
    Feb 2008
    Messaggi
    116
    Originariamente inviato da filippo.toso
    Nel codice che hai postato in origine, l'IF era direttamente dentro allo switch e non dentro a case 1:


    Lo puoi fare utilizzando le sessioni, utilizzando una form oppure passandolo come parametro query string.
    eh si... un errore di battitura, scrivendo di fretta. Ma poi ho corretto subito.
    Per quanto riguarda il resto, grazie dell'illuminazione.

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.