• User

    Ciao, mi aggancio a questo post perche' ho pure io un problema di passaggio di variabili da un file all'altro

    file che invia
    [php]<?
    SESSION_START();
    ?>
    <form method=post action="legge.php">
    <input type="SUBMIT" value=" Invia">
    <input type="text" value="" name=" uno">
    <input type="text" value="" name=" due">
    </form>
    [/php]file che riceve
    [php]<?
    SESSION_START();
    $_SESSION['uno'] = $_POST['uno'];
    $_SESSION['due'] = $_POST['due'];
    $action = (isset($_GET["action"]))? $_GET["action"] : $_POST['action']
    ?>
    <form method=post action="?action=a">
    <input type="SUBMIT" value=" Invia 1">
    </form>
    <form method=post action="?action=b">
    <input type="SUBMIT" value=" Invia 2">
    </form>
    <?
    if ($action=="a"){
    echo "uno-->".$_SESSION['uno']."<br />";
    }else if ($action=="b"){
    echo "due--> ".$_SESSION['due']."<br />";
    }else {
    echo $_SESSION['uno']."---".$_SESSION['due'];
    }
    ?>[/php]Dunque:
    al primo ingresso nel file legge.php essendo $action vuota esegue l'ultima riga del listato: scrive a video le due variabili e mette i due pulsanti "Invia 1" e "Invia 2"; il problema nasce qui nel senso che qualunque dei due pulsani io scelga le variabili sono vuote.
    ..dove sbaglio??...:?:bho:


  • User Attivo

    Sostituisci questo:
    [HTML]<form method=post action="?action=a">
    <input type="SUBMIT" value=" Invia 1">
    </form>
    <form method=post action="?action=b">
    <input type="SUBMIT" value=" Invia 2">
    </form>[/HTML]
    con questo:
    [HTML]<form method=post action="legge.php">
    <input type="SUBMIT" value=" Invia 1">
    <input type="hidden" name="action" value="a">
    </form>
    <form method=post action="legge.php">
    <input type="SUBMIT" value=" Invia 2">
    <input type="hidden" name="action" value="a">
    </form>[/HTML]

    E' sbagliato il modo in cui intendevi passare il valore di "action", quella nominata nel form è il nome della pagina che elabora i dati, non il nome di una variabile...


  • User

    Ho provato il tuo suggerimento ma il risultato e' il medesimo, anche perche' penso che i due metodi si equivalgano; se non sto prendendo una cantonata scrivere
    [php]
    action="?action=a"
    [/php]equivale a dargli come target il file stesso in cui viene eseguito passandogli la variabile $action=a, il che equivale correttamente a quanto proponi tu
    [php]
    action="legge.php"
    // seguito dal passaggio della variabile $action=a tramite campo hidden
    [/php]


  • User Attivo

    Allora prova a non chiamarla "action" la variabile che intendi passare... Probabilmente è una parola riservata


  • User

    Cambiato $action in $scelta...sigh..nulla.. stesso comportamento di prima..:bho:


  • User Attivo

    Posta la nuova pagina php che hai realizzato con "scelta" al posto di "action"


  • User

    [php]<?
    SESSION_START();
    $_SESSION['uno'] = $_POST['uno'];
    $_SESSION['due'] = $_POST['due'];
    $scelta = (isset($_GET["scelta"]))? $_GET["scelta"] : $_POST['scelta']
    ?>
    <form method=post action="?scelta=a">
    <input type="SUBMIT" value=" Invia 1">
    </form>
    <form method=post action="?scelta=b">
    <input type="SUBMIT" value=" Invia 2">
    </form>
    <?
    if ($scelta=="a"){
    echo "uno-->".$_SESSION['uno']."<br />";
    }else if ($scelta=="b"){
    echo "due--> ".$_SESSION['due']."<br />";
    }else {
    echo $_SESSION['uno']."---".$_SESSION['due'];
    }
    ?>[/php]


  • User Attivo

    [PHP]$scelta = (isset($_GET["scelta"]))? $_GET["scelta"] : $_POST['scelta'][/PHP]

    Ecco l'errore! Scrivilo così:
    [PHP]$scelta = (isset($_GET["scelta"])? $_GET["scelta"] : $_POST['scelta']);[/PHP]


  • User

    No..no..era gia' scritto giusto...sorry...devo aver fatto casino io nel copia/incolla... anche perche senno' php mi avrebbe segnalato errore..ed invece non me ne segnala...

    Tieni conto che la variabile $scelta la legge correttamente,_infatti esegue correttamente il ciclo di if/else... ma [..] non mi da piu le variabili $_SESSION['uno'] e ['due']


  • User Attivo

    Non è che se ridichiari "session_start()" lui inizia una nuova sessione, cancellando le variabili di quella precedente?


  • User

    @momino said:

    Non è che se ridichiari "session_start()" lui inizia una nuova sessione, cancellando le variabili di quella precedente?

    No,_anzi,_session_start() ci va proprio per il passaggio di variabili da un file all'altro..
    ..per cancellarle avrei dovuto mettere session_unset();