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

    Problema con variabili di sessione

    Ciao a tutti, ho un problemino.
    Ho creato un metodo che richiamandolo e passando dei parametri mi crea un <input>.
    Funziona, riesco a creare il mio form, se l' utente non compila i campi obbligatori le sessioni fanno colorare i campi di rosso...insomma quelle cose li. La cosa strana è che continua a darmi queste 2 notice:
    Notice: Undefined index: _autofocus in C:\Program Files\xampp\htdocs\new_bs_site\class\c_html_form.p hp on line 120

    Notice: Undefined index: _input_style in C:\Program Files\xampp\htdocs\new_bs_site\class\c_html_form.p hp on line 120


    Ce l' ha con 2 variabili di sessione richiamate dentro <input> che però non si chiamano nemmeno così. Si chiamano:
    - nome_campo_autofocus
    - nome_campo_input_style
    Vengono richiamate dinamicamente grazie al parametro $nome passato al metodo. Quindi ricapitolando le 2 variabili funzionano ma mi da quella notice come se non esistesse la variabile $nome che serve a dare dinamicamente il nome alla sessione.
    Codice PHP:

      
    //Input text  
    public function f_get_input($w$name$class$value)  
    {     
         
    //Creo un' array contenente vari gruppi di input e le loro caratteristiche     
        
    $attributes_list = array(                                  
                                
    "username" =>     array("type" => "text",
                                                                  
    "name" => "username",  
                                                                  
    "required" => "required",   
                                                                  
    "class"=> $class,    
                                                                  
    "value" => $value   
                                                                  
    ),                 
      
                                
    "password" =>      array("type" => "text",
                                                                   
    "name" => "password",     
                                                                   
    "required" => "required",     
                                                                   
    "class"=> $class,                
                                                                   
    "value" => $value             
                                                                   
    ),
                               
                                     
    "simple_text" =>    array( "type"  => "text"
                                                                          
    "name"  => $name,   
                                                                          
    "class"=> $class,       
                                                                          
    "value" => $value    
                                                                        
    ),                                

                                     
    "text_required"=> array("type"   => "text"
                                                                       
    "name"  => $name,  
                                                                       
    "required" => "required",  
                                                                       
    "class"=> $class,            
                                                                       
    "value" => $value           
                                                                      
    ),    

                                     
    "submit"      =>    array("type"  => "submit",       
                                                                       
    "name"  => $name,        
                                                                       
    "class" => $class,          
                                                                       
    "value" => $value          
                                                                      
    )                          
                            ); 
    //Fine array principale
            
         //Se nell' array degli attributi trova la chiave "required"        
         //setto su "required=required" la variabile required                             
         
    $required in_array('required' $attributes_list[$w]) ? "required=\"required\"" "";                    
         
    //questa è la parte incriminata che mi da la notice:         
         
    return "<input " $_SESSION[$name."_autofocus"] . 
                  " 
    $_SESSION[$name."_input_style"] . "      
                  "
    .$required." type=\"".$attributes_list[$w]["type"]."\" 
                  name=\""
    .$attributes_list[$w]["name"]."\" 
                  class=\""
    .$attributes_list[$w]["class"]."\"      
                  value=\""
    .$attributes_list[$w]["value"]."\" /> \n";        

     }
    //Fine metodo 
    Ricapitolando funziona tutto a parte che mi da quelle notice. La variabile $home arriva, se la stampo la vedo. Bah
    Ultima modifica di camionistaxcaso; 10-01-2016 a 23:55

  2. #2
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    l'unica cosa che posso suggerirti è di verificare che il secondo parametro ($name) della funzione f_get_input sia correttamente valorizzato quando usi la funzione
    ad occhio direi che gli stai passando $name vuoto

  3. #3
    Quote Originariamente inviata da clasku Visualizza il messaggio
    l'unica cosa che posso suggerirti è di verificare che il secondo parametro ($name) della funzione f_get_input sia correttamente valorizzato quando usi la funzione
    ad occhio direi che gli stai passando $name vuoto
    Se la printo me la visualizza...è una cosa stranissima

  4. #4
    Che sia necessario un session_start() in cima al metodo?


    Credo comunque tu possa evitare il notice anteponendo la chiocciola alle variabili di sessione
    Codice PHP:
    @$_SESSION[$name."_autofocus"
    La chiocciola indica all'interprete PHP che la variabile potrebbe non essere definita.

  5. #5
    Quote Originariamente inviata da lucavizzi Visualizza il messaggio
    Che sia necessario un session_start() in cima al metodo?


    Credo comunque tu possa evitare il notice anteponendo la chiocciola alle variabili di sessione
    Codice PHP:
    @$_SESSION[$name."_autofocus"
    La chiocciola indica all'interprete PHP che la variabile potrebbe non essere definita.
    La session la apro prima della chiamata al metodo

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.