Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    509

    [php]autenticati per vedere parti di pagine?

    Ciao a tutti,
    torno a rompervi le scatole per l'ennesimo problema.
    sto provando a realizzare una pagina dove se sei registrato ti viene visualizzata completamente, altrimenti vedi solo alcune parti.

    inizialmente l'avevo fatta ricreando due volte la stessa pagina e in base se sei autorizzato o meno accedi ad una sessione o all'altra.

    per far le cose un po più carina (e meno ingombrante) volevo riunire tutto ma mantenedo il tutto in "sicurezza"

    in pratica un sito di GDR dove i giocatori vedono il propio personaggio (caratteristiche,descrizione,equipaggiamento) se il master si logga vede le stesse pagina più la variabile $secret,che contiene altre descrizioni che non devono essere mostrati ai giocatori.

    per "proteggere" le pagine ero partito da questo:
    codice:
    <?php
    
    function authenticateUser($connection, $username, $password)
    {
        if (!isset($username) || !isset($password))
        return false;
    
        $password_digest = md5(trim($password));
    
        $query = "SELECT password FROM users WHERE user_name = '{$username}'
                AND password = '{$password_digest}'";
    
       if (!$result = @ mysql_query ($query, $connection))
        showerror();
    
     
      if (mysql_num_rows($result) != 1)
        return false;
      else
        return true;
    }
    function sessionAuthenticate()
    {
        if (!isset($_SESSION["loginUsername"]))
      {
        
        $_SESSION["message"] = "HA HA HA Non sei autorizzato!
                                {$_SERVER["REQUEST_URI"]}";
    
        header("Location: home.php"); //questo devo toglierlo
        exit;
      }
    ?>
    solo che se faccio cosi, o sei loggato o giustamente mi rimanda alla home.
    pensavo di aggiungere in qualche modo una stringa al link tipo: s=1
    www.provagdr.com/pg/prova.php?s=1
    e mettere nella pagina visualizza se $s=1
    ma sinceramente mi pare un sistema orribile.sono certo che un sistema esista senza far apparire nulla nella url
    sapreste darmi qualche consiglio? grazie

  2. #2
    Non sono sicuro di aver capito bene, ma non ti sarebbe sufficiente fare un controllo sulla sessione nel momento in cui ti serve?
    Cioè, tu mostri la pagina con le parti di html che vuoi mostrare sempre, poi, nella posizione giusto dell'html, inserisci i blocchi html delle parti che devono comparire solo se l'utente è loggato, racchiuse in un controllo if del tipo

    Codice PHP:
    if (isset($_SESSION["loginUsername"])) {
        echo 
    'Codice HTML che mostri solo se è loggato...';

    ... o forse ho capito male il problema?

    Ciao,
    Gabriele.
    Gabriele Fabbri
    http://www.overzero.it

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    509
    cosi sarebbe perfetto è che non volevo ripetermi.

    file authenticate.inc
    -------------------------------
    // codice per l'autenticazione che comprende la stringa
    codice:
    if (isset($_SESSION["loginUsername"])) { 
        // permetti la visualizzazione della varibile $secret
    }
    ---------------------------------


    file pg1.php
    ------------------------
    nome: prova
    forza: 18/100 $secret
    dest: 12 $secret
    int: 9 $secret
    cost: 15 $secret

    desc: asdasdas asdad asdasd asdas
    ----------------------------------

    dove la variabile $secret la devo visualizzare solo se loggato, questo è quello che vorrei fare.

    essendo su tabelle diverse dovrei riportare per ogni tabella la stringa.
    avevo fatto qualcosa di simile tempo fa con java, ma vorrei creare un sito con solo php questa volta

  4. #4
    Esattamente qual'è la parte che non ti è chiara?
    Quello che non ho capito io è se $secret ti serve solo per verificare se l'utente è loggato o se contiene i valori che elenchi tipo forza, cost o altro...
    Gabriele Fabbri
    http://www.overzero.it

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    509
    mi hai fatto venire in mente un idea
    i valori del personaggio li recupero da un db mysql assieme alla rispettiva variabile $secret
    e uso un ciclo per riprodurre i campi(faccio vedere piu' personaggi nella stessa pagina)
    quindi probabilmente farò come mi suggerivi te

    salvo soluzioni alternative penso che faro' così
    mettendo questi spezzoni di codice
    codice:
    if (!empty($result)){
    while ($row = mysql_fetch_array($result)) { 
    ............
    
    if (isset($_SESSION["loginUsername"])) { 
        echo "$row[xx]";
    }
    ........
    anche se so già che la query sarà molto pesante

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    509
    le varibili forza, destrezza etcc sono valori che i giocatori sanno di avere.
    la variabile $secret che esiste per ogni variabile è un valore effettivo che il pg ha (che a volte potrebbe essere diverso)

    la variabile $secret deve essere visibile solo se ci si logga con nome utente e psw (che sono in possesso dei soli master)

    in questo caso ongi giocatore puo' vedere il propio personaggio, mentre gli amministratori del gioco possono vedere i dati effetivi o aggiungere descrizioni che i pg non possono vedere.

    non c'è nulla che non mi è chiaro solo che nel metodo che sto usando, per ogni varibile viene verificata l'esistenza o meno della sessione.
    significa che se in una pagina visualizzo 10 pg e ci sono 8 variabili per pg verranno fatte 80 verifiche sulla sessione
    anche perchè non potrò creare tutte le variabili con lo stesso nome ma se sono 8 variabili nascoste penso che docrò creare 8 variabili nascoste tipo $sfor $sdes $scost $sdesc etcc

    volevo evitare tutto ciò cercando di minimizzare il tutto

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.