Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Forum e sessioni

  1. #1

    Forum e sessioni

    Buongiorno,

    All'interno di una webapp in php vorrei implementare un forum. Quello che mi rimane ostico è capire come gestire le sessioni a partire da un login. Quello che vorrei ottenere è un risultato che mi permettesse di identificare, al caricamento della pagina desiderata, una sessione che mi stampi qualcosa del tipo "Benvenuto donpelajo", perchè sul resto (costruzione del forum) penso di aver capito cosa fare.

    Vi descrivo un attimo la situazione

    login.php

    <form method="post" action="">
    </form>

    login_statements.php

    if (isset($_POST['submit'])) {

    require ('connect.php');

    $sql = $db->prepare("SELECT * FROM dipendenti WHERE username = :username AND password = assword") or die ('Ciao1');
    $sql->execute(array(':username'=>$_POST['username'],'assword'=>$_POST['password']));

    if ($sql->rowCount() > 0) {
    $_SESSION['username'] = $_POST['username'];
    $_SESSION['password'] = $_POST['password'];
    header('Location: personale_page.php');
    echo 'Reindirizza alla pagina personale';
    } else {
    header('Location: login_form.php');
    }
    }

    ora correggetemi se sbaglio... io in questo modo sto dicendo che i parametri della sessione sono quelli che ho inserito, quindi se nel db sono presenti entri e gli associ le rispettive variabili di sessione. Fin qui funziona così?

    Se è Ok allora entro in

    personale_page.php

    <ul class="personalUl">
    [*]Buongiorno dipendente, accedi alla sezione di tuo interesse[*]Entra nel forum[*]Connettiti alla chat[/list]

    Se è forum.php

    echo "Buongiorno ". $_SESSION['username'];

    if (isset($_GET['discu'])) {

    $sql = $db->prepare("INSERT INTO threads (discu) VALUES (:discu)") or die ('Ciao1');
    $sql->execute(array(':discu'=>$_GET['discu']));

    }

    $sql = $db->prepare("SELECT discu FROM threads") or die ('Ciao1');
    $sql->execute();
    $result = $sql->fetchAll();

    foreach($result as $value) {
    echo "<div style='width:200px; height:50px; border:1px solid black;'>";
    echo "

    {$value['discu']}</p>";
    echo "</div>";
    }

    Domanda: Perchè in forum.php 'username' è un undefined index? Come si risolve?

    Grazie,

    Alessandro

  2. #2
    Utente di HTML.it L'avatar di homerbit
    Registrato dal
    Dec 2005
    residenza
    Roma
    Messaggi
    1,380
    ciao, sinceramente non ho letto tutto il codice con attenzione ma il messaggio di errore che ti restituisce puoi risolverlo inserendo un isset come hai fatto con le altre global ($_POST e $_GET)
    If you think your users are idiots, only idiots will use it. DropBox

  3. #3
    Grazie, ma credo che il problema principale sia che, poichè se faccio una cosa del genere

    if (isset($_SESSION['username'])) then...

    non mi dà nulla quindi questa variabile non gli viene passata, vorrei chiederti secondo te il perchè

  4. #4
    Utente di HTML.it L'avatar di Fractals87
    Registrato dal
    Apr 2008
    Messaggi
    1,202
    prima di istanziare le varibili di sessione devi utilizzare
    Codice PHP:
    session.start(); 
    idem quando le vai a richiamare nella pagina_personale.php

    http://php.net/manual/en/function.session-start.php
    Che mestiere difficile.....essere da soli ancora di più

  5. #5
    Fractals, questa funzione viene già dichiarata. Penso che il problema potrebbe essere nel fatto che cambiando pagina, anche se non viene richiamata la funzione session_destroy(), la sessione in qualche modo si perde. Tu che ne pensi?

    Perchè se nel file di login.php scrivo che se mi trova record corrispondenti nel db mi deve stampare lo username della sessione me lo stampa. Dovrei cercare di fare arrivare quello username in tutte le pagine...

  6. #6
    Utente di HTML.it L'avatar di Fractals87
    Registrato dal
    Apr 2008
    Messaggi
    1,202
    hai abilitato gli errori di php?
    Magari nella pagina_personale.php
    hai un errore tipo Cannot send session cache limiter - headers already sent
    che ti impedisce di caricare le session.

    Altrimenti dovresti controllare il php.ini e vedere se c'è qualche incoerenza nei settaggi delle sessioni.
    Che mestiere difficile.....essere da soli ancora di più

  7. #7
    Mi pare niente del genere...

  8. #8
    Utente di HTML.it L'avatar di Luke70
    Registrato dal
    Jul 1999
    Messaggi
    767
    Hai controllato che session.start(); sia dichiarata all'inizio di tutte la pagine chiamate? Altrimenti perdi i valori delle sessione.

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.