• Super User

    Query Error

    Salve, sto cercando di inserire un campo nel modulo di registrazione (precisamente quello che permette di selezionare il livello dell'utente: user, superuser (Poster), Admin) che sia però visibile solo se chi visualizza il modulo ha già fatto il login nel sito e il livello sia 1 (1 = Admin):

    <?php
    //parametri di connessione al database
    require('config.php');
    //sessione creata durante il login che corrisoponde al username
    $name = $_SESSION['login'];
    if(isset($_SESSION['login']))
    {
    $query=mysql_query("SELECT * FROM users WHERE name = '$name' and level = '1' LIMIT 1");
    mysql_query($query) or die ("Query error:" . mysql_error());
    if(mysql_num_rows($query) == 1)
        {
        print 'Level: <br />
    <select name="level">
    <option value="1">Admin</option>
    <option value="2">Poster</option>
    <option value="3">User</option>
    </select> <br />';
        }
        else
        {
            
        }
    }
    else
    {
        print "";
    }
    ?>
    

    il problema è che l'output è:

    Query error:Query was empty
    

    dove ho sbagliato? 😞


  • User Attivo

    Ciao,
    hai utilizzato mysql_query due volte...
    [PHP]
    $query=mysql_query("SELECT * FROM users WHERE name = '$name' and level = '1' LIMIT 1");
    mysql_query($query) or die ("Query error:" . mysql_error());
    [/PHP]
    Correggi così:
    [PHP]
    $query="SELECT * FROM users WHERE name = '$name' and level = '1' LIMIT 1";
    mysql_query($query) or die ("Query error:" . mysql_error());
    [/PHP]

    Alessandro


  • Super User

    Grazie, errore risolto! Solo che ora mi dice:

    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\nfs\reg.php on line **33

    **eppure ho usato lo stesso comando nel login!


  • User Attivo

    Pardon, prima ho corretto cancellando la parte sbagliata:
    [PHP]
    $query=mysql_query("SELECT * FROM users WHERE name = '$name' and level = '1' LIMIT 1") or die ("Query error:" . mysql_error());
    [/PHP]
    Ovviamente cancella l'altra riga di codice dov'è msql_query().


  • Super User

    Nessun problema ma mi da un'errore sulla linea 32:

    if(mysql_num_rows($query) == 1)
    
    **Warning**:  mysql_num_rows(): supplied argument is not a valid MySQL result resource in **C:\xampp\htdocs\nfs\reg.php** on line **32**
    

    Codice intero:

    <?php session_start(); ?>
    
    <html>
    <head>
    </head>
    <body>
    <form action="worker.php" method="post">
    Desired Username: <input type="text" name="name" />
    <br /> 
    E-Mail: <input type="text" name="mail" />
    <br />
    Password: <input type="password" name="pass" />
    <br />
    Password Again: <input type="password" name="2" />
    <br />
    Sex:
    <input type="radio" name="sex" value="1" /> Male
    <input type="radio" name="sex" value="2" /> Female
    <br />
    Age: <input type="text" name="age" />
    <br />
    Location: <input type="text" name="location" />
    <br />
    <?php
    require('config.php');
    $name = $_SESSION['login'];
    if(isset($_SESSION['login']))
    {
    mysql_select_db("cms",$connection);
    $query="SELECT * FROM users WHERE name = '$name' and level = '1' LIMIT 1";
    mysql_query($query) or die ("Query error:" .  mysql_error());  
    if(mysql_num_rows($query) == 1)
        {
        print 'Level: <br />
    <select name="level">
    <option value="1">Admin</option>
    <option value="2">Poster</option>
    <option value="3">User</option>
    </select> <br />';
        }
        else
        {
            print"";
            
        }
    }
    else
    {
        print "";
    }
    ?>
    <input type="submit" value="Submit" />
    </form>
    </body>
    </html>
    

  • User Attivo

    Non hai inserito l'ultima correzione...


  • Super User

    Hai ragione... ora funziona 😄 Grazie 1,000 questa parte è essenziale per il mio progetto visto che devo limitare alcune opzioni delle pagine ai soli admin (o superusers...)


  • Super User

    Ma ogni volta che voglio verificae se un'utente è loggato come admin devo scrivere tutta 'sta pappardella? :bho:


  • User Attivo

    Ciao,
    in alternativa, in fase di login, potresti memorizzare in una variabile di sessione il "level" di quell'utente ed effettuare il controllo solo su quel dato.

    Alessandro