Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Sesso e sessioni

  1. #1

    Sesso e sessioni

    Cari signori, per diletto mi stavo avvicinando al php...girando ho trovato un sistema di login semplicissimo che mi ha incuriosito. Io ho solo scritto una pagina di registrazione che inserisce i dati nel database mysql..ora: c'è una schermata di login che invia i dati per la verifica a un managecheck:

    managecheck.php:
    Codice PHP:
    <?php
    include_once("config.php");
    include_once(
    "open-db.php");

    // username and password sent from signup form
    $myusername=$_POST['myusername'];
    $passwordHash sha1(strip_tags($_POST['mypassword']));

    $sql="SELECT * FROM members WHERE username='$myusername' and password='$passwordHash'";
    $rs mysql_query($sql) or die ("Query failed");

    // Mysql_num_row is counting table row
    $numofrows mysql_num_rows($rs);
    // If result matched $myusername and $mypassword, table row must be 1 row

    if($numofrows==1){
    // Register $myusername, $mypassword and redirect to file success file
    // Yes
    session_register("myusername");
    header("location:index.php?title=go");
    }
    else {
    // No
    header("location:index.php?title=deny");
    }
    ?>
    e qui fa il controllo del login, successivamente registra la sessione 'myusername' e reindirizza il tutto nella pagina giusta, sennò ritorna al login.

    Ora, quello che mi interessa principalmente è portarmi dietro proprio l'username dell'utente che ha effettuato il login. Stavo provando a creare una semplice pagina che stampasse su schermo "il tuo username è $username"

    stampa.php
    Codice PHP:
    <?php
    // per mantenere la sessione attiva, nello script è specificato questo codice
    session_start();
    if(!
    session_is_registered(myusername)){
    header("location:index.php");
    }
    ?>
    <HTML>
    <BODY>
    <CENTER>[B]<H3> Username</H3>[/B]</CENTER>
    <?
    $_SESSION 
    ['myusername'] = "$nome";
    echo 
    "$nome";

    session_destroy();
    ?>
    </body>
    </html>
    solo che naturalmente non funziona. Dove sta la cavolata?

    Grazie mille!

  2. #2
    io farei più semplicemente così, una volta controllato il dbase avii la sessione e assegni letteralmente il nome utente ad una variabile di sessione che da quel momento conterrà ciò che ti interressa.

    • session_start();
      session_register ('nome_utente');
      $nome_utente=$usernameinseritodallutente;


    io utilizzo $PHPSESSID per verificare se la sessione è ok

    ciao, APSoft

  3. #3
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    Originariamente inviato da apsoft
    io farei più semplicemente così, una volta controllato il dbase avii la sessione e assegni letteralmente il nome utente ad una variabile di sessione che da quel momento conterrà ciò che ti interressa.

    • session_start();
      session_register ('nome_utente');
      $nome_utente=$usernameinseritodallutente;


    io utilizzo $PHPSESSID per verificare se la sessione è ok

    ciao, APSoft
    dalla pagina man di session_register

    Caution

    If you want your script to work regardless of register_globals, you need to instead use the $_SESSION array as $_SESSION entries are automatically registered. If your script uses session_register(), it will not work in environments where the PHP directive register_globals is disabled.
    quindi meglio :

    codice:
    $_SESSION['nome_utente'] = $variabile;
    ciao

  4. #4
    Utente di HTML.it L'avatar di jeppox
    Registrato dal
    Mar 2007
    Messaggi
    436
    controlla un pò con phpinfo(); se register_globals è disattivato, session_register (); funziona solo con register_globals disattivo. Quindi è meglio usare $_SESSION['nome_utente'] = 'nome_utente'; che funziona indipendetemente da come è impostato register_globals.

  5. #5
    Non ho mica capito.
    Lo script non registra l'username in managecheck.php con

    Codice PHP:
    session_register("myusername"); 
    poi nella pagina stampa.php avvia la sessione e fa una verifica sull'esistenza della stessa

    Codice PHP:
    session_start();
    if(!
    session_is_registered(myusername)){
    header("location:index.php");

    come faccio a mettermi quel myusername in una variabile partendo da quel pezzo di codice?

  6. #6
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    rileggiti gli ultimi 2 messaggi.

    ciao

  7. #7
    Tempo che riflettevo e rispodevo alla risposta di apsoft che c'erano altre due reply, quindi il "non ho mica capito" non era rivolto al tuo post, gianiaz

    ho risolto, grazie miiiiile a tutti!

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.