Visualizzazione risultati 1 fino 2 di 2

Discussione: Comando switch/case con un errore

  1. #1
    manulazPH non è connesso Neofita
    Data registrazione
    05-01-2013
    Messaggi
    19

    Predefinito Comando switch/case con un errore

    Salve a tutti sono ancora qui con i mei soliti problemi :D

    ho una pagina #.php di interrogazione del db di un mio amico (manulazph) (sono Fabio1cgec)che non mi va...il codice è il seguente:
    Codice PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Interrogazione db</title>
    </head>

    <body>

    <?php




    session_start
    ();

    $link = mysql_connect('localhost', '', '') //mi collego al database in localhost



    or die('Could not connect: database non trovato'); //ESEGUE SOLO SE NON HO TROVATO IL DATABASE....scrivo database non trovato



    mysql_select_db('my_manulazph') or die('impossibile trovare il database'); //seleziono il tuo database






    $utente = mysql_real_escape_string($_POST['utente']); //creo la variabile $utente (con "dollaro" si indicano le varibili)

    $pwd=mysql_real_escape_string($_POST['pwd']);

    $query = "SELECT * FROM utenti WHERE ID='".$utente."' AND PASSWORD='".$pwd."' ";

    $result = mysql_query($query) or die('Query non effettuata');



    $num_rows = mysql_num_rows($result);







    if(
    $num_rows==0){


    $location = 'index.html';

    }



    else{


    $_SESSION['id_utente']=$utente;


    switch (
    $utente) {
    case
    "linda":
    $location = 'utenti/linda.php';
    break;

    case
    "Manuel Lazzarin":
    $location = 'utenti/menu_amministratori.php';
    break;

    case
    "Vergotti Fabio":
    $location = 'utenti/menu_amministratori.php';
    break;

    case
    "prova":
    $location = 'utenti/prova.php';
    break;

    //TUTTI GLI UTIENTI VANNO INSERITI PRIMA DI QUESTA SCRITTA!!!! SE NO IO SPACCO TUE GAMBE!
    default:
    $location = 'pagina_utente_non_trovata.php';
    break;

    }

    }



    header('Location: ' . $location);




    mysql_free_result($result);


    mysql_close($link);

    ?>

    </body>



    </html>
    la cosa a me strana è che: sullo switch gli utenti vanno tutti con i relativi collegamenti...
    l'utente prova invece non ne vuole sapere e mi RICARICA LA PAGINA DEL LOGIN!
    mi sapreste dire dov'è l'errore? grazie infinite
    Ultima modifica di dreadnaut : 07-01-2013 alle ore 22.25.32 Motivo: - caps lock rotto?

  2. #2
    manulazPH non è connesso Neofita
    Data registrazione
    05-01-2013
    Messaggi
    19

    Predefinito

    sono riuscito a risolvere facendo così:
    Codice PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Interrogazione db</title>
    </head>

    <body>

    <?php




    session_start
    ();

    $link = mysql_connect('localhost', '', '') //mi collego al database in localhost



    or die('Could not connect: database non trovato'); //ESEGUE SOLO SE NON HO TROVATO IL DATABASE....scrivo database non trovato



    mysql_select_db('my_manulazph') or die('impossibile trovare il database'); //seleziono il tuo database






    $utente = mysql_real_escape_string($_POST['utente']); //creo la variabile $utente (con "dollaro" si indicano le varibili)

    $pwd=mysql_real_escape_string($_POST['pwd']);

    $query = "SELECT * FROM utenti WHERE ID='".$utente."' AND PASSWORD='".$pwd."' ";

    $result = mysql_query($query) or die('Query non effettuata');



    $num_rows = mysql_num_rows($result);







    if(
    $num_rows==0){


    $location = 'index.html';

    }



    else{


    $_SESSION['id_utente']=$utente;


    switch (
    $utente) {
    case
    "linda":
    $location = 'utenti/linda.php';
    break;

    case
    "prova":
    $location = 'utenti/prova.php';
    break;


    case
    "Manuel Lazzarin":
    $location = 'utenti/menu_amministratori.php';
    break;

    case
    "Vergotti Fabio":
    $location = 'utenti/menu_amministratori.php';
    break;

    //TUTTI GLI UTIENTI VANNO INSERITI PRIMA DI QUESTA SCRITTA!!!! SE NO IO SPACCO TUE GAMBE!
    default:
    $location = 'pagina_utente_non_trovata.php';
    break;

    }

    }



    header('Location: ' . $location);




    mysql_free_result($result);


    mysql_close($link);

    ?>

    </body>



    </html>
    cioè spostando l'account prova prima degli account amministratori....
    sinceramente però non mi spiego il motivo....voi?

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •