Visualizzazione dei risultati da 1 a 4 su 4

Discussione: sessioni

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    69

    sessioni

    ciao a tutti
    ho fatto un sistema di login per un area riservata
    un form invia user e pass alla pagina login.php che crea una sessione e carica riservata.php

    login.php

    Codice PHP:
    <?
    $nome 
    $_POST['nome'];
    if (
    is_numeric($_POST['password'])) {
    settype($_POST['password'], 'int');
    $password $_POST['password'];
    }
    if (
    preg_match("/^[a-z0-9]{4,12}$/i"$nome) and preg_match("/^[a-z0-9]{4,12}$/i"$password)) {
    $pagina "riservata.php";
    $connectionmysql_connect("xxxxxxxx","xxxxxx","xxxxxxxxxxx");
    $db=mysql_select_db("xxxxxxxxx",$connection);
    $query "SELECT * FROM area_riservata WHERE nome = '$nome' AND password = '$password'";
        
    $result mysql_query($query) or die (mysql_error());
        
    $totalrows mysql_num_rows($result);
        if(
    $totalrows == 1){
        
    session_start();
            
    $_SESSION['nome'] = $nome;
            print(
    "<script>window.location='".$pagina."'</script>");
        }
    else{
    echo 
    "I dati inseriti non sono presenti nel database.";
    }
    mysql_close($connection);
    }
    else {
    echo 
    "i dati inseriti non corrispondono ai requisiti richiesti";
    }
    ?>
    riservata.php

    Codice PHP:
    <?php
    if(session_id() == "") {
     
    session_start();
     }
    if(!isset(
    $_SESSION['nome']) || $_SESSION['nome'] != $nome){
        print(
    "<script>window.location='index.php'</script>");
    }
    ?>
    <html><head><boby>contenuto dela pagina</boby></head></html>
    nel mio hosting (PHP Version 4.4.6 e register_globals ON ON) funziona tutto alla perfezione.
    sul hosting del cliente (PHP Version 4.3.11 e register_globals OFF OFF) non mi mantiene la sessione durante il passaggio tra login.php e riservata.php.
    sapete come posso risolvere?
    ciao e grazie

  2. #2
    Prima di tutto devi utilizzare il tag php esteso <?php "sempre".

    Potrebbe essere che la variabile $nome non sia valorizzata, Con il register_globals in off dovresti recuperare la variabile con POST o GET come fai nella prima pagina.

    A che pro controlli se session_id() e' valorizzato???? Se viene lasciato vuoto rende il valore dell'id della sessione corrente, ma se lo richiami prima del session_start() ... non ci sono sessioni disponibili.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    69
    avevo gia provato con
    Codice PHP:
    <?php
    $nome 
    $_POST['nome'];
    if(
    session_id() == "") {
     
    session_start();
     }
    if(!isset(
    $_SESSION['nome']) || $_SESSION['nome'] != $nome){
        print(
    "<script>window.location='index.php'</script>");
    }
    ?>
    ma mi rimanda lo stesso all index.
    il controllo su session_id() è frutto di un altra richiesta su questo forum qualche mesetto fa.

  4. #4
    Il dato che tu cerchi ($nome) qualcuno/qualcosa da qualche parte lo deve scrivere perche' ti possa arrivare.... non sperare nei miracoli. Era questo il senso di chiederti se $nome era valorizzato.... chi e come.

    Stampa la variabile ottenuta, tanto per vedere che non hai nulla la dentro.

    un'occhiata al manuale... http://www.php.net/manual/it/ref.session.php

    ed a session_id() ... http://www.php.net/manual/it/function.session-id.php

    in pratica serve per verificare se la sessione e' gia' stata aperta, oppure per cambiare l'id di sessione o attribuirne uno proprio. Ma se la pagina inizia con session_id() va da se che sara' vuoto. Va bene se e' a seguito di altri controlli, oppure con la sessione in auto_start per non ricevere l'errore di sessione gia' aperta.

    Era per pura curiosita'.... sul perche' ne facevi uso in quel punto.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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.