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

Hybrid View

  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
    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)

  7. #7
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Quote Originariamente inviata da satifal Visualizza il messaggio
    Secondo me devi leggere qualche altro manuale
    Io cercherei un manuale che mi insegni a scegliere un manuale per scegliere un manuale... ricorsivamente

  8. #8
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Io cercherei un manuale che mi insegni a scegliere un manuale per scegliere un manuale... ricorsivamente
    mi sa che entra in un loop infinito
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  9. #9
    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.

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

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.