Visualizzazione risultati 1 fino 1 di 1

Discussione: Aiuto sessioni

  1. #1
    Guest

    Predefinito Aiuto sessioni

    Allora, illustro il mio problema:

    ho questo codice di login:

    Codice PHP:
    <HTML>
    <
    HEAD>
    </
    HEAD>
    <
    BODY>
    <
    table border="0" cellspacing="1" cellpadding="0" width="300" align="center" bgcolor="#cccccc"><tbody>
    <
    tr><form action="INCLUDE/checklogin.php" method="post"> <td>
    <
    table border="0" cellspacing="2" cellpadding="3" width="100%" bgcolor="#ffffff"><tbody>
    <
    tr>
    </
    tr>
    <
    tr>
    <
    td width="78">Username:</td>
    <
    td width="6">&nbsp;</td>
    <
    td width="294"><input id="myusername" name="myusername" type="text" /></td>
    </
    tr>
    <
    tr>
    <
    td>Password:</td>
    <
    td>&nbsp;</td>
    <
    td><input id="mypassword" name="mypassword" type="password" /></td>

    </
    tr>
    <
    tr>
    <
    td>Server:</td>
    <
    td>&nbsp;</td>
    <
    td><select id="server" name="server">
    <
    option value="s1" selected="selected">Server 1</option>
    </
    select></td>

    </
    tr>
    </
    tbody></table>
    </
    td>
    <
    tr>
    <
    td colspan="3"><label>.
    <
    input name="Submit" type="submit" value="Login" />
    </
    label></td>
    <
    tr>
    </
    form></tr>
    </
    tbody></table>

    <
    p>&nbsp;</p>
    </
    BODY>
    </
    HTML>
    che dipende dal file checklogin.php:
    Codice PHP:
    <?php

    require ("config.inc.php");

    $myusername=$_POST['myusername'];
    $mypassword=$_POST['mypassword'];
    $server=$_POST['server'];

    $sql="SELECT * FROM ".$server."_utenti WHERE username='$myusername' and password='$mypassword'";
    $result=mysql_query($sql);
    // Mysql_num_row is counting table row
    $count=mysql_num_rows($result);
    // If result matched $myusername and $mypassword, table row must be 1 row
    if($count==1){
    // Register $myusername, $mypassword and redirect to file "login_success.php"
    session_register("myusername");
    session_register("mypassword");
    header("location: http://".$server.".enkantar2.altervista.org/index.php");
    }
    else {
    echo
    "Attenzione: username o password errati";
    }
    ?>
    Adesso vorrei fare che se l'utente che ha effettuato il login ha un certo attributo (valore "attivazione nel db superiore a 0) visualizzerà la pagina normale, altrimenti visualizzerà la richiesta di fondare una città. Perciò ho buttato giù questo:
    Codice PHP:
    <?php
    session_start
    ();
    $server = $_SESSION['server'];
    $myusername = $_SESSION['myusername'];

    switch(
    $_GET['view']) {
    case
    'nuovacitta':
    $città = $_POST['citta'];
    $x=rand(0,320);//genero x
    $y=rand(0,320);//genero y
    mysql_query("INSERT INTO ".$server."_città (nome,proprietario,x,y,legno,marmo,grano,ferro) VALUES ('$citta','$db_utente[id]','$x,'$y','200','100','100','100')",$db) || die(mysql_error());
    $query = "SELECT nome, proprietario, x, y, legno, marmo, ferro, grano FROM ".$server."_città WHERE username='$myusername'";
    $result = mysql_query($query, $db);
    $db_città = mysql_fetch_array($result);
    if (
    $db_utente[attivazione] == "0")
    {

    echo
    "Complimenti, ".$db_città[nome]." è stata fondata";
    break;
    default:

    $query = "SELECT username, razza, attivazione FROM ".$server."_utenti WHERE id='$id'";
    $result = mysql_query($query, $db);
    $db_utente = mysql_fetch_array($result);
    if (
    $db_utente[attivazione] == "0")
    {
    echo
    "Ancora non hai fondato nessuna città! Fonda la tua capitale";
    ?>
    <html>
    <tr><form action="index.php?view=nuovacitta" method="post">
    <table width="101%" border="0">
    <tr>
    <td width="15%">Nome della citt&agrave;e:</td>
    <td width="20%"><input type="text" name="citta" id="città" size="30" /></td>
    <td>&nbsp;</td>
    </tr>
    </table>
    <input name="Submit" type="submit" value="Fonda" />
    </form>
    </tr>
    </form>
    </html>
    <?php
    break;
    }
    }
    ?>
    Come chiaramente vedrete effettuando il login con un utente (prova, prova) non succederà nulla.

    http://enkantar2.altervista.org/login.php.

    Cosa devo fare? Grazie mille!
    Ultima modifica di enkantar2 : 23-02-2010 alle ore 21.11.03

Regole di scrittura

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