Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Hidden che vanifica il form...

    Scusate, non sapevo se postare qui...ma visto alla fine il file è PHP...
    spero non mi linciate =)

    Dunque... avevo fatto un form, ma non riuscivo a capire il perchè le variabili non arrivavano nell'altra pagina...
    Poi ho scoperto che era tutta colpa del campo hidden... se c'è le variabili non passano, se c'è non passano...
    MAI capitata una cosa cosi, come mai?

    <form action='operate.php' method='post'>
    Messaggio con

    risposta



    Titolo

    <input type="text" name="titolo">

    Testo

    <input type="text" name="testo">

    Timeout(sec)
    <input type="text" name="timeout" size='5'>


    <input type="hidden" name="comando" value="150">
    <input type="submit" name="sub" value="invia">
    </form>

  2. #2
    Come le prendi le variabili nell'altra pagina?

    Prova ad usare $_REQUEST["variabile"] ...

  3. #3
    Nisba

    questa è l'operate.php

    Codice PHP:
    <?php
    echo $_GET['timeout'];
    echo 
    $titolo;
    //session_start();
    include("fefe.php");
    include(
    "conn.php");
    include(
    "cyberinc.php");
    //include("menu.php");


    //exit;

                    //exit;
    if (!session_is_registered($RETURNTYPE))
    {
    echo 
    "-***".$PCNAME;
    echo 
    $_REQUEST["comando"];
    echo 
    $_REQUEST["testo"];

        echo 
    $timeout;
        
    $returntype=0;
        switch (
    $_REQUEST["comando"]) {
           case 
    150:
                    echo 
    "cisonoo";
                    
    $query"update pcinfo set comando='$comando' where pcname='$PCNAME'";
                    
    $returntype1;
                break;
           case 
    1:
               echo 
    "i è uguale a 1";
               break;
           case 
    2:
               echo 
    "i è uguale a 2";
               break;
        }
        
    mysql_query($query) or 
                    die (
    mysql_error());
                    
    $_SESSION['RETURNTYPE']= $returntype;

        
    //...............
    tutti gli echo sono di test

  4. #4
    Innanzitutto la prima echo:
    Codice PHP:
    echo $_GET['timeout']; 
    va cambiata così:
    Codice PHP:
    echo $_REQUEST['timeout']; 
    Perchè non puoi prendere la variabile col $_GET se il tuo form ha method=post.

    Per il resto non saprei, però ti consiglio una cosa:
    prova ad inserire dei valori a muzzo nelle variabili che (in teoria) dovrebbero venir passate dal form precedente (cioè sostituisci tutti i $_REQUEST con dei numeri opportuni), in modo da testare prima il funzionamento del tuo algoritmo.

    Può darsi che il problema sia l'algoritmo che non funziona, e che, non entrando correttamente nell'if, ovviamente non ti stampa le variabili ... tentar non nuoce...

  5. #5
    il get era li dai test disperati che ho fatto =)
    Il fatto è davvero strano, se tolgo la sola riga del campo hidden, passa tutti i dati
    anchesolo prendendo dall'altra parte $variabile

  6. #6
    Allora dovresti controllare la variabile register_globals (se hai accesso al file php.ini).

    Se register_globals è impostata ad "on", allora le variabili del form vengono passate come variabili globali, perciò basta accederci tramite la sintassi $variabile.

    Se fosse così, ha ragione ad "arrabbiarsi", perchè i campi hidden non servono (devono essere usati solo con register_global=off e form method=post).

    Se invece register_global è impostata ad "off", allora c'è da iniziare a preoccuparsi perchè i $_REQUEST dovrebbero funzionare...

    Comunque, se l'hai impostata ad "on", ti consiglio di modificarla in "off", perchè potrebbe causarti delle falle di sicurezza.

    Fammi sapere.

  7. #7
    dopo tanto modificare sarebbe bene vedere uno script "Pulito"...


    questo comunque non va:

    codice:
    $query= "update pcinfo set comando='$comando' where pcname='$PCNAME'";
    invece di $comando ... dovrebbe essere $_POST['comando']

    nota: se sai di passare i dati con il metodo POST recupera i dati con $_POST. Lascia perdere $_REQUEST che tira su tutto alla faccia della sicurezza delle variabili superglobali e del register globals in off.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  8. #8
    intanto grazie della disponibilità
    E' on register_globals
    ...tragico ma non riesco a inviare le variebili con il campo hidden attivo!
    piu tardi proverò a creare una pagina exnovo

  9. #9
    ... Allora è per quello.... il campo hidden non ti serve perchè tutte le variabili sono globali.

    Ciao

  10. #10
    ma quindi vuol dire che se riempo $ciccio=1
    e senza form..
    nell'altrapagina vedo $ciccio a 1?

    effettivamente è un pò pericoloso


    Cmq grazie mille =)

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.