Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1

    Settare una variabile php non settata

    Quando uso questa funzione:

    Codice PHP:
    verifica_dati_immessi($_POST['regione'], $_POST['text'], $_FILES['upload3']['tmp_name'], $_FILES['upload4']['tmp_name'], $_POST['categories']); 
    ottengo questo errore:

    Notice: Undefined index: upload4 in C:\...\index.php on line 1589

    per risolvere ho ideato questa funzione:

    Codice PHP:
    function setta_variabile($x){
        if(!isset(
    $x)){
            
    $x '';
        }
        return 
    $x;

    e quindi corretto il codice in questo modo:

    Codice PHP:
        verifica_dati_immessi(
                
    setta_variabile($_POST['regione']), 
                
    setta_variabile($_POST['text']), 
                
    setta_variabile($_FILES['upload3']['tmp_name']), 
                
    setta_variabile($_FILES['upload4']['tmp_name']), 
                
    setta_variabile($_POST['categories']), 
                
    setta_variabile($regioni)); 
    ma non ho risolto... Perché?

    Più pratica in futuro...

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Nelle funzioni puoi definire dei valori di default

    Codice PHP:
    function funzione_prova ($var1$var2$var3='ciccio'$var4)
    {
        
    //il codice della funzione
    }

    $v1 'pippo';
    $v2 3;
    $v3 'pluto';
    $v4 'topolino';

    //chiamo la funzione con tutti i campi settati, per questa tutto ok
    funzione_prova($v1$v2$v3$v4);

    //chiamo la funzione con una variabile non settata ($v5)
    //la funzione userà 'ciccio' come valore
    funzione_prova($v1$v2$v5$v4); 

  3. #3
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Nelle funzioni puoi definire dei valori di default

    Codice PHP:
    function funzione_prova ($var1$var2$var3='ciccio'$var4)
    {
        
    //il codice della funzione
    }

    $v1 'pippo';
    $v2 3;
    $v3 'pluto';
    $v4 'topolino';

    //chiamo la funzione con tutti i campi settati, per questa tutto ok
    funzione_prova($v1$v2$v3$v4);

    //chiamo la funzione con una variabile non settata ($v5)
    //la funzione userà 'ciccio' come valore
    funzione_prova($v1$v2$v5$v4); 
    non funziona
    Più pratica in futuro...

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Sì, ma "non funziona" non vuol dire niente, che succede? Ti da errore? Ti da un risultato che non è quello che vuoi? Che altro?
    Scrivi anche il codice che hai attualmente, compresa la funzione verifica_dati_immessi()

  5. #5
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Sì, ma "non funziona" non vuol dire niente, che succede? Ti da errore? Ti da un risultato che non è quello che vuoi? Che altro?
    Scrivi anche il codice che hai attualmente, compresa la funzione verifica_dati_immessi()
    Fornisce sempre lo stesso errore:

    Notice: Undefined index: upload4 in C:\...\index.php on line 1589

    ecco la funzione...

    Codice PHP:
    function verifica_dati_immessi($post_regione$post_text$files3$files4$post_categories$regioni) {
        if (
    $post_regione == '' or $post_regione == '') {
            
    $error "xxx.";
            include 
    $_SERVER['DOCUMENT_ROOT'] . '/includes/error.html.php';
            exit();
        } else {
            switch (
    $post_regione) {
                case 
    $regioni[0]:
                    
    //$regioni[0]=Home
                    
    if ($post_text == '') {
                        
    $error "xxx.";
                        include 
    $_SERVER['DOCUMENT_ROOT'] . '/includes/error.html.php';
                        exit();
                    }
                    break;
                case 
    $regioni[1]:
                    
    //$regioni[1]=Gallery
                    
    if ($files3 == '' or $files4 == '' or $post_categories == '') {
                        
    $error "xxx.";
                        include 
    $_SERVER['DOCUMENT_ROOT'] . '/includes/error.html.php';
                        exit();
                    }
                    break;
                case 
    $regioni[2]:
                    
    //$regioni[2]=News
                    
    if ($post_text == '') {
                        
    $error "xxx.";
                        include 
    $_SERVER['DOCUMENT_ROOT'] . '/includes/error.html.php';
                        exit();
                    }
                    break;
                case 
    $regioni[3]:
                    
    //$regioni[3]=Risultati
                    
    if ($post_text == '' or $post_categories == '') {
                        
    $error "xxx.";
                        include 
    $_SERVER['DOCUMENT_ROOT'] . '/includes/error.html.php';
                        exit();
                    }
                    break;
                default:
                    
    $error "xxx.";
                    include 
    $_SERVER['DOCUMENT_ROOT'] . '/includes/error.html.php';
                    exit();
            }
        }

    ho risolto con un if + un isset, purtroppo penso che in php non sia possibile fornire una variabile non inizializzata come argomento di una funzione... credo che sia questo il motivo... concordate?
    Più pratica in futuro...

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Il valore di default non ce l'hai messo, in pratica dal primo post cosa hai cambiato? Niente? Se non funzionava prima è ovvio che non funziona neanche adesso se non cambi niente.

  7. #7
    No no, ho provato a scrivere: $files4 = '' ma non funge ugualmente...
    Più pratica in futuro...

  8. #8
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Questa è la segnatura della tua funzione (l'ultima che hai postato)

    function verifica_dati_immessi($post_regione, $post_text, $files3, $files4, $post_categories, $regioni)

    Dove sta $files4 = '' ?

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    1,804
    Codice PHP:
    function prova($variabile){
    if(!
    issett($variabile))
    {
       return 
    false
    }
    return isset(
    $variabile);


    prova così
    Non è tanto importante saper fare,quanto ad avere voglia d imparare .

  10. #10
    Quote Originariamente inviata da giannino1995 Visualizza il messaggio
    ...penso che in php non sia possibile fornire una variabile non inizializzata come argomento di una funzione... credo che sia questo il motivo... concordate?
    Secondo me devi leggere qualche altro manuale
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

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.