Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    302

    Php Notice su file di sessione

    Buongiorno a tutti,
    ho un problema con un file di sessione. Le pagine funzionano perfettamente e la sessione viene creata, mantenuta e distrutta correttamente. Il problema è che il
    Codice PHP:
    <?php session_start()?>
    viene creato direttamente dal form di login e viene utilizzato per la sessione l'id dell'utente presente in una tabella denominata utenti

    Questo il codice che genera la sessione qualora i dati inseriti per il logion siano corretti:

    codice:
    <?php
    if(!$record) { $messaggio = urlencode('Nome utente o password errati');        
    header("location: $_SERVER[PHP_SELF]?msg=$messaggio");    } 
    else {session_start(); $_SESSION['user_id'] = $record['id'];       
    $messaggio = urlencode('Login avvenuto con successo');        
    header("location: home.php");    }
    }
    ?>
    Questo invece il file session.php che utilizzo in tutte le pagine per mantenere la sessione:

    Codice PHP:

    <?php session_start();
    if (empty(
    $_SESSION['user_id'])){
    echo 
    "<h1>Area riservata, accesso negato.</h1>";  
    echo 
    "Per effettuare il login clicca <a href='index.php'><font color='blue'>qui</font></a>";  die; 
    }
    $record $_SESSION['id'] = $_REQUEST['id'];?>
    ora il problema affligge l'ultima riga

    Codice PHP:

    $record 
    $_SESSION['id'] = $_REQUEST['id']; 
    In realtà se provo ad eliminarla, non mi funzionano più le sessioni.

    questo l'errore:

    codice:
    PHP Notice:  Undefined index: id in /test/session.php on line 7
    Ultima modifica di condor_uk; 08-07-2015 a 10:00
    Se volete che la funzione di un programma non venga scoperta dall'utente, descrivetela nella documentazione...

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,448
    Così funziona?

    $_SESSION['id'] = $_REQUEST['id'];
    $record = $_SESSION['id'];

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    302
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Così funziona?

    $_SESSION['id'] = $_REQUEST['id'];
    $record = $_SESSION['id'];

    Buongiorno Alhazred,
    purtroppo no, continua a dare errore Notice PHP Notice: Undefined index: id alla riga

    codice:
    $_SESSION['id'] = $_REQUEST['id'];

    Se volete che la funzione di un programma non venga scoperta dall'utente, descrivetela nella documentazione...

  4. #4
    Ma $_REQUEST['id'] contiene qualcosa? Hai provato a stamparla?

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    302
    Quote Originariamente inviata da fdisotto Visualizza il messaggio
    Ma $_REQUEST['id'] contiene qualcosa? Hai provato a stamparla?
    Ciao fdisotto,
    la $_REQUEST['id'] in fase di login è vuota, ma se la cancello non mi funziona più l'applicazione.

    Per meglio spiegarmi la query che ti riporto sotto con la $_REQUEST['id'] presente nella session funziona perfettamente, mentre se la elimino, come puoi vedere si ferma su WHERE id="

    in sostanza non prende l'id

    codice:
    La query eseguita è: SELECT * , DATE_FORMAT(commesse.data,'%d/%m/%Y') as data FROM commesse WHERE id=''
    Se volete che la funzione di un programma non venga scoperta dall'utente, descrivetela nella documentazione...

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,448
    Beh, certo che non prende l'id, nella clausola where specifichi che vuoi le entry SENZA id

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    302
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Beh, certo che non prende l'id, nella clausola where specifichi che vuoi le entry SENZA id
    Scusa Alhazred,
    ma quello postato precedentemente è il risultato di questa query:

    Codice PHP:

    $query 
    "SELECT * , DATE_FORMAT(commesse.data,'%d/%m/%Y') as data_it FROM commesse WHERE 1";

    if (!empty(
    $campo10)) {    $query .= " AND `cliente` LIKE '%$campo10%'";}
    if (!empty(
    $campo11)) {    $query .= " AND `targa` LIKE '%$campo11%' ORDER BY id";}
    if (!empty(
    $campo12)) {    $query .= " AND `veicolo` LIKE '%$campo12%'";}
    if (!empty(
    $data)) {    $query .= " AND `data` = '$data'";}
    if (!empty(
    $campo14)) {    $query .= " AND `pagamento` LIKE '%$campo14%'";}}


    // ESEGUO LA QUERY

    $cerca mysql_query($query);
    ... ... 
    Se volete che la funzione di un programma non venga scoperta dall'utente, descrivetela nella documentazione...

  8. #8
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,448
    Intanto sistema la query, perché non puoi mischiare clausole where e order by, prima tutte le where, poi la order by.

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    302
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Intanto sistema la query, perché non puoi mischiare clausole where e order by, prima tutte le where, poi la order by.

    Sistemato

    Codice PHP:

    $query 
    "SELECT * , DATE_FORMAT(commesse.data,'%d/%m/%Y') as data_it FROM commesse WHERE 1";

    if (!empty(
    $campo10)) {    $query .= " AND `cliente` LIKE '%$campo10%'";}
    if (!empty(
    $campo12)) {    $query .= " AND `veicolo` LIKE '%$campo12%'";}
    if (!empty(
    $data)) {    $query .= " AND `data` = '$data'";}
    if (!empty(
    $campo14)) {    $query .= " AND `pagamento` LIKE '%$campo14%'";}}
    if (!empty(
    $campo11)) {    $query .= " AND `targa` LIKE '%$campo11%' ORDER BY id";}


    // ESEGUO LA QUERY

    $cerca mysql_query($query);
    ... ... 
    Se volete che la funzione di un programma non venga scoperta dall'utente, descrivetela nella documentazione...

  10. #10
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,448
    E se $campo11 è vuoto non ti serve ordinare per id?
    Alla fine metti una riga a parte per l'order by se ti serve in ogni caso.

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.