Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    75

    Messaggio d'errore a seconda dell'evento

    Ciao a tutti,

    sto sbattendo la testa su un problema che non mi spiego. Nella mia pagina possono verificarsi tre eccezioni che devono mandare un messaggio d'errore ad un altra pagina diverso nei tre casi.

    Per gestire la cosa passo il numero dell'errore nell'url e poi a seconda del valore stampo il messaggio:
    codice:
    $msge = '';
    	
    	switch (isset($_GET['msg'])){
    		case 1:
    			$msge = 'Non tutti i campi sono stati compilati';
    			break;
    		case 2:
    			$msge = 'Controllare che le password e le email coincidano';
    			break;		
    		case 3:
    			$msge = 'Esiste gi&agrave un utente iscritto con questa email';
    			break;
    	}
    	
    	echo "<font color='red'> $msge </font>";
    Il problema è che qualunque valore abbia la variabile msg passata nell'url, mi viene sempre scritto il messaggio d'errore relativo al valore 1.

    Sapete aiutarmi? Probabilmente sarà una sciocchezza ma non ne esco

    Grazie mille

  2. #2
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Togli isset nello switch se mai metti un controllo prima o un valore di default allo switch.

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    75
    Senza l'isset il prblema rimane. Mi potresti spiegare cosa vuole dire mettere un valore di default allo switch cosa vuol dire?

    Grazie

  4. #4
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Il default e' simile al case ma nel caso nessun case viene riscontrato, viene eseguito quello che sta ned default es.:
    Codice PHP:
    if(!isset($_GET['msg']))
        
    $_GET['msg'] = 4//non e' stata passata  e quindi va in default.

        
    switch ($_GET['msg']){
            case 
    1:
                
    $msge 'Non tutti i campi sono stati compilati';
                break;
            case 
    2:
                
    $msge 'Controllare che le password e le email coincidano';
                break;        
            case 
    3:
                
    $msge 'Esiste gi&agrave un utente iscritto con questa email';
                break;
                    default:
                            
    $msge  'altro';
        } 
    Se $_GET['msg'] non e' ne 1 ne 2 ne 3 allora viene fatto quello che c'e' in defautl

    isset() dovresti metterlo prima dello switch() se mai.. per verificare se esiste e quindi eseguire o meno lo switch(per avere magari un msg di default). O settare a mano $_GET['msg']:
    Se $_GET['msg'] non viene passato e non c'e' il controllo lo switch non viene eseguito

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.