Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17

Discussione: [PHP Sessioni e Mysql]

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2013
    Messaggi
    6

    [PHP Sessioni e Mysql]

    Ciao ragazzi, mi serve aiuto per risolvere un paio di problemi, magari anche qualche dritta per ottenere migliori risultati, premetto che sono agli inizi sia con PHP che con Mysql, quindo se il mio approccio fosse del tutto errato non esitate a suggerirmene uno nuovo.

    Sto realizzando un db che sarà riempito online, uso PHP e MySQL su un server Ubuntu.
    Tutte le info nel database riguardano una sola entità, diciamo un immobile, ho diviso tutto su più tabelle, ed utilizzo l'identificativo univoco dell' immobile come foreign key in ciascuna tabella, per ogni immobile ci sarà una ed una sola riga in ogni tabella, tutte le tabelle sono INNODB.

    Questo approccio è corretto? O mi suggerite altro?

    Nell' inserire i dati uso delle FORM ed il PHP, diciamo una pagina per ogni tabella, nella prima inserisco un po' di dati e l'identificativo dell' immobile da un menù a tendina che richiama gli identificativi su db (sono preinseriti come enum, sono quelli e solo quelli gli immobili da trattare e non cambieranno mai) , sono tanti, esce una tendina enorme, dritte per fare meglio?

    Dato che devo inserire l'id dell' immobile anche nelle tabelle successive, ho deciso di usare le sessioni, ma dopo il primo inserimento, la sessione CAMBIA (ho verificato con session_id() ) e quindi non ho più l'id da insesire nella altre tabelle. Come faccio a non far cambiare sessione?

    Spiego meglio:

    index.php
    session_start();
    form di inserimento
    (in cui scelgo l'id immobile)
    action=insert.php

    insert.php
    session_start();
    session_id uguale a quello della pagina chiamante (OK)
    Inserisco i dati e passo alla pagina successiva
    $url="http://localhost/due.php";
    header("Location: $url");

    due.php
    session_start();
    e qui il session id non è più lo stesso, e non ho l'id da inserire per mantenere la coerenza dei dati.

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2013
    Messaggi
    6

    Il problema è Location:?

    Credo il redirect che faccio alla fine di insert.php il problema, ma non riesco a trovare una soluzione.
    Ho aggiornato il DB con una nuova tabella in cui metto solo gli indici relativi alle tabelle di ciascun immobile.

    Nessuno ha suggerimenti?

  3. #3

    Re: Il problema è Location:?

    Originariamente inviato da TitusI
    Credo il redirect che faccio alla fine di insert.php il problema, ma non riesco a trovare una soluzione.
    Ho aggiornato il DB con una nuova tabella in cui metto solo gli indici relativi alle tabelle di ciascun immobile.

    Nessuno ha suggerimenti?
    La sessione, se esistente, viene letta dal cookie di sessione inviato al browser. Con il redirect non passi dal browser ma stai a livello del server http. Quindi non trovando il cookie di sessione verra' aperta una nuova sessione. Dovresti passare l'id di sessione nell'url e recuperarlo in pag2 prima del session start.

    Codice PHP:
    <?php
    insert
    .php
    session_start
    ();
    // session_id uguale a quello della pagina chiamante (OK)
    // Inserisco i dati e passo alla pagina successiva
    $id session_id();
    $url="http://localhost/due.php?id=$id";
    header("Location: $url");

    due.php
    <?php
    session_id
    ($_GET['id']);
    session_start();

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

  4. #4
    Con il redirect non passi dal browser ma stai a livello del server http.
    Ne sei sicuro?
    Per quanto ne so il server invia un'intestazione e il browser invia una nuova richiesta get, e anche il sessid viene mantenuto
    semplicità ... al sol nominarla sembra svanire

  5. #5
    Originariamente inviato da biagiopas
    Ne sei sicuro?
    Per quanto ne so il server invia un'intestazione e il browser invia una nuova richiesta get, e anche il sessid viene mantenuto
    Mi pare che il parser php interpreti l'header a livello del server http e che il server invii al browser la pagina richiesta dal redirect. Infatti non viene letto alcun cookie di sessione e ne viene inizializzata una nuova. Direi proprio il problema lamentato da TitusI.

    Comunque nel mio testamento biologico non ho previsto l'accanimento terapeutico per cui ok. Come credi.

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

  6. #6
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120

    Re: Re: Il problema è Location:?

    Originariamente inviato da piero.mac
    Con il redirect non passi dal browser ma stai a livello del server http.
    Ma anche no

  7. #7

    Re: Re: Re: Il problema è Location:?

    Originariamente inviato da luca200
    Ma anche no
    ripeto che presumo quanto meno non venga processato come una solita pagina html.
    Allora come mai non viene letto il cookie di sessione? di questo ne ho/abbiamo la prova.

    @ Luca200 mi fa piacere risentirti. (nel senso di sentirti nuovamente)...

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

  8. #8

    Re: Re: Re: Re: Il problema è Location:?

    Originariamente inviato da piero.mac
    ripeto che presumo quanto meno non venga processato come una solita pagina html.
    Allora come mai non viene letto il cookie di sessione? di questo ne ho/abbiamo la prova.
    Ok. Ho visto. Viene spedito il codice redirect 302 al browser. Quindi il successivo session_start() della pagina rediretta non ha alcun cookie di sessione da leggere sul browser. Cosi' almeno ho creduto di interpretare.

    Per TitusI: dovresti aggiungere exit() dopo l'header per impedire che venga continuata l'elaborazione della pagina.

    Ma tutto cio' non ha alcun riferimento con il thread nel forum database. Andrebbe in php.

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

  9. #9
    Utente bannato
    Registrato dal
    Dec 2012
    Messaggi
    679
    Originariamente inviato da piero.mac
    Comunque nel mio testamento biologico non ho previsto l'accanimento terapeutico per cui ok. Come credi.
    Protervo.

  10. #10
    Originariamente inviato da franzauker2.0
    Protervo.
    Grazie per il tuo solito contributo risolutivo.

    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.