Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    150

    cookies, problema alla creazione

    ciao a tutti.
    Sto cercando di creare un cookie al login del mio db.
    Il codice e':

    <?php

    setcookie ("cookie",$valore);
    include "config.php";

    $user=$_POST['username'];
    $pwd=$_POST ['pwd'];

    $db=mysql_connect ($db_host, $db_user, $db_password);

    if ($db==FALSE)
    die ("Errore nella connessione del database.");

    mysql_select_db ($db_name,$db);

    $query="SELECT id,nome,password,livello FROM utenti WHERE nome='$user' AND password='$pwd'";

    $result=mysql_query ($query,$db);

    if($num_righe = mysql_num_rows($result))//restituisce il numero di righe in un risultato
    {
    while($row=mysql_fetch_array($result))
    if ($row[nome]=="Admin" && $row[password]=="root")
    {$valore ="$row[id]|$row[livello]";
    Header("Location: admin.php");
    }

    else
    {
    $query="SELECT nome,password,livello FROM utenti WHERE nome='$user' AND password='$pwd' AND livello='0'";
    $result=mysql_query ($query, $db);
    if ($num_righe=mysql_num_rows($result))
    {
    echo ("Spiacente, in attesa dell'autorizzazione dell'admin.Riprova piu tardi.
    ");
    echo ("<a href=\"home.php\">Torna alla home page</a>
    ");

    }
    else
    {

    header("location:login_utente_succ.php");


    }
    }

    }
    else
    echo ("Non sei registrato");





    mysql_close($db);
    ?>

    in top_foot.php ho 2 funzioni, top() e foot() che contengono it ag htmol di apertura e chiusura pagina.
    Quindi siccome setcookie deve essere fatto prima dei tag html, e' corretto dove lo metto io a inizio pagina?
    Cookie sara' il suo nome, e valore lo voglio impostare successivamente , anche perche inizialmente non so chi sta loggando.
    Quindi eseguo questo pezzo:

    $query="SELECT id,nome,password,livello FROM utenti WHERE nome='$user' AND password='$pwd'";

    $result=mysql_query ($query,$db);

    if($num_righe = mysql_num_rows($result))//restituisce il numero di righe in un risultato
    {
    while($row=mysql_fetch_array($result))
    if ($row[nome]=="Admin" && $row[password]=="root")
    {$valore ="$row[id]|$row[livello]";
    Header("Location: admin.php");
    }
    e dovrei estrapolare in row[nome] Admin e $row[password] root giusto?
    le query mi sembra esatte.
    E se tutto funziona come dovrebbe perche' non mi imposta il cookie?

    infatti nella pagina admin.php inizio cosi:

    <?php
    include "config.php";
    include "top_foot.php";
    echo ("A");
    if (isset ($_COOKIE["cookie"])) {
    echo top();

    echo ("Tabella degli utenti
    ");

    ...faccio le operazioni se il cookie esiste e quindi se l'utente e' loggato in modo corretto..
    }

    else
    {
    echo ("Utente non registrato.");
    }


    eseguendo il tutto, loggando come admin e root mi stampa "Utente non registrato"

    E quindi l'unica cosa e' che ho sbagliato a impostare il cookie, se no non avrebbe senso che non mi entri nell'if.

    Dove ho sbagliato in poche parole?


  2. #2
    Utente di HTML.it L'avatar di Il_Drugo
    Registrato dal
    May 2006
    Messaggi
    1,220
    Sai che i cookies una volta "scritti" possono essere letti solamente al reload o cambio pagina successivo? Detto questo prova cosi:

    Codice PHP:
    <?php

    include "config.php";

    $user=$_POST['username'];
    $pwd=$_POST ['pwd'];

    $db=mysql_connect ($db_host$db_user$db_password);
    if (
    $db==FALSE)
    die (
    "Errore nella connessione del database.");
    mysql_select_db ($db_name,$db);

    $query="SELECT id,nome,password,livello FROM utenti WHERE nome='".$user."' AND password='".$pwd."'";
    $result=mysql_query($query,$db);
    $num_righe mysql_num_rows($result);
    if(
    $num_righe 0)
    {
        
    $row=mysql_fetch_array($result);
        if (
    $row['nome']=="admin" && $row['password']=="root")
        {
            
    $valore $row['id']."|".$row['livello'];
            
    setcookie ("cookie",$valore);
            
    header("location: admin.php");
        }
        else
        {
            
    $query="SELECT nome,password,livello FROM utenti WHERE nome='".$user."' AND password='".$pwd."' AND livello='0'";
            
    $result=mysql_query ($query$db);
            
    $num_righe mysql_num_rows($result);
            if (
    $num_righe 0)
            {
                echo (
    "Spiacente, in attesa dell'autorizzazione dell'admin.Riprova piu tardi.
    "
    );
                echo (
    "<a href=\"home.php\">Torna alla home page</a>
    "
    );
            }
            else
            {
                
    header("location: login_utente_succ.php");
            }
        }
    }
    else
    {
        echo (
    "Non sei registrato");
    }

    mysql_close($db);
    ?>

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 © 2024 vBulletin Solutions, Inc. All rights reserved.