Visualizzazione risultati 1 fino 12 di 12

Discussione: problemi con la sessione

  1. #1
    Guest

    Predefinito problemi con la sessione

    buonasera , avrei bisogno di aiuto.. dunque ho creato una pagina dove mettere il nome per poter accedere , dalla index si passa alla homepage tranquillamente, poi una volta che si cambia pagina esi tenta di riaccedere alla homepage , mi riporta alla index e devo rimettere il nome , cosa mi consigliate ddi fare? ora posto il php per farvi capire meglio ... questa è la index.php
    Codice PHP:
    <HTML>
    <
    HEAD>
    <
    TITLE>start session</TITLE>
    </
    HEAD>
    <
    BODY><form action="homepage.php"method="POST">
    Inserire un nome <input type="text"name="name">
    <
    input type="submit"value="Entra"><br><div align="center">lavori in corso <img src="/upload/sorrisone.gif">

    </
    BODY>
    </
    HTML>
    ,, questa la homepage
    Codice PHP:
    <?php
    session_start
    ();
    $name = htmlspecialchars($_POST['name']);
    if(
    $name != ""){
    $_SESSION['name'] = $name;}
    else {
    echo (
    'Attenzione dovete inserire un nome valido<br/>');
    echo(
    '<a href="index.php">Indietro</a>');
    exit();}

    ?>
    che blocca nel caso il nome sia nullo , come potrei risolvere il problema?

  2. #2
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,230

    Predefinito

    In poche parole non vuoi che se l'utente sia già "loggato" debba reinserire il suo nick giusto?

    Se è così basta fare un controllo:

    Codice PHP:
    <?php if(empty($_SESSION['name'])){ ?>
    <HTML>
    <HEAD>
    <TITLE>start session</TITLE>
    </HEAD>
    <BODY><form action="homepage.php"method="POST">
    Inserire un nome <input type="text"name="name">
    <input type="submit"value="Entra"><br><div align="center">lavori in corso <img src="/upload/sorrisone.gif">

    </BODY>
    </HTML>
    <?php }else{
    // Qui codice homepage
    } ?>
    In poche parole questo codice fa in modo che se la sessione name è vuota mostra il form se invece non è vuota ti mostra l'homepage...naturalmente devi personalizzare tu questo codice modificandone la seconda parte...
    Apprezzi l'aiuto? Offrimi un caffè!

  3. #3
    Guest

    Predefinito

    no.. allora.. io sulla index metto il nome ed entro sulla homepage , poi dalla homepage clicco sulla pagina upload.php entro , ma dopo quando rivado sulla homepage mi fa rimettere il nome , capito? diciamo che la '' sessione '' sta solo sulla homepage , io vorrei fare in modo che la sessione stia su tutte le pagine , esempio , con il metodo GET viene http://www.miosito.altervista.org/ho...php?name=fabio , in teoria se il tutto funzionasse bene dovrebbe venire http://www.miosito.altervista.org/up...php?name=fabio , invece non lo fa , non so se mi sono spiegato bene ..

  4. #4
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,230

    Predefinito

    Aspetta non sto capendo, innanzitutto sai che quando inserisci un valore in una sessione dopo sarà disponibile ovunque (richiamandola nell'apposito modo) fino a quando non viene interrotta o fino a quando il browser non viene chiuso?

    Cioè se io faccio:

    Pagina a.php
    Codice PHP:
    <?php session_start(); $_SESSION['prova'] = "Contenuto di prova"; ?>
    Pagina b.php
    Codice PHP:
    <?php session_start(); echo $_SESSION['prova']; ?>
    Pagina b.php mostrerà "Contenuto di prova" perchè è memorizzato nella sessione...se poi tu vuoi semplicemente inviare il nome utente scelto tramite GET la storia cambia...ma se io non ho capito male tu vuoi che se un utente abbia già inserito il suo nome non c'è bisogno di reinserirlo ed inoltre vuoi che il nome utente inserito sia valido per tutto il sito giusto?
    Apprezzi l'aiuto? Offrimi un caffè!

  5. #5
    Guest

    Predefinito

    si si voglio che l'utente debba mettere il nome solo una volta e che sia valido per tutte le pagine del sito

  6. #6
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,230

    Predefinito

    Bene allora te l'ho detto basta eseguire un semplice controllo con le sessioni...quando tu avvii una sessione essa rimarrà valida finchè non scade, non viene fatta scadere o fino a quando il browser non viene chiuso...quando tu hai memorizzato il nome utente in una sessione se vai nel form di upload file e nel codice inserisci:

    Codice PHP:
    echo $_SESSION['name'];
    Tu visualizzerai il valore che l'utente ha inserito nella tua home...poi per inserire il nome una sola volta potresti anche far così:
    Codice PHP:
    <?php if(empty($_SESSION['name'])){ ?>
    <HTML>
    <HEAD>
    <TITLE>start session</TITLE>
    </HEAD>
    <BODY><form action="homepage.php"method="POST">
    Inserire un nome <input type="text"name="name">
    <input type="submit"value="Entra"><br><div align="center">lavori in corso <img src="/upload/sorrisone.gif">

    </BODY>
    </HTML>
    <?php }else{
    Header("Location: homepage.php");
    }
    ?>
    Apprezzi l'aiuto? Offrimi un caffè!

  7. #7
    Guest

    Predefinito

    ok.. e se volessi mettere il PHPSESSID come dovrei fare ? del tipo http://www.sito.altervista.org/homep...=r345fg7thgngj ecc
    Ultima modifica di fabio29 : 24-01-2009 alle ore 22.53.19 Motivo: correzzione

  8. #8
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,230

    Predefinito

    Beh a questo punto dovresti ad ogni pagina aggiungere
    Codice PHP:
    echo SID;

    /* Oppure */

    echo "?PHPSESSID=".session_id();
    Esempi:

    Codice PHP:
    <a href="pagina.php?<?php session_start(); echo SID; ?>">LINK</a>

    /* Oppure */

    <a href="pagina.php<?php session_start(); echo "?PHPSESSID=".session_id(); ?>
    Natrualmente come avrai ben capito la via più semlice è la prima...
    Apprezzi l'aiuto? Offrimi un caffè!

  9. #9
    Guest

    Predefinito

    a me piace più la seconda , cmq quello che mi hai dato è quello che devo mettere per ogni pagina , nel form della index come lo metto ?

  10. #10
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,230

    Predefinito

    Con il tuo codice:
    Codice PHP:
    <HTML>
    <HEAD>
    <TITLE>start session</TITLE>
    </HEAD>
    <BODY><form action="homepage.php?<?php session_start(); echo SID; ?>"method="POST">
    Inserire un nome <input type="text"name="name">
    <input type="submit"value="Entra"><br><div align="center">lavori in corso <img src="/upload/sorrisone.gif">

    </BODY>
    </HTML>
    Con il mio codice:
    Codice PHP:
    <?php if(empty($_SESSION['name'])){ ?>
    <HTML>
    <HEAD>
    <TITLE>start session</TITLE>
    </HEAD>
    <BODY><form action="homepage.php?<?php session_start(); echo SID; ?>"method="POST">
    Inserire un nome <input type="text"name="name">
    <input type="submit"value="Entra"><br><div align="center">lavori in corso <img src="/upload/sorrisone.gif">

    </BODY>
    </HTML>
    <?php }else{
    session_start();
    Header("Location: homepage.php?PHPSESSID=".session_id(););
    }
    ?>
    P.S. Forse non hai capito che:

    Codice PHP:
    <a href="pagina.php?<?php session_start(); echo SID; ?>">LINK</a>
    E
    Codice PHP:
    <a href="pagina.php<?php session_start(); echo "?PHPSESSID=".session_id(); ?>">LINK</a>
    Visualizzeranno entrambi lo stesso risultato, è cioè: pagina.php?PHPSESSID=codice_sessione
    Apprezzi l'aiuto? Offrimi un caffè!

  11. #11
    Guest

    Predefinito

    funziona tutto , grazie mille , un ulrtima cosa , per fargli stampare il phpsessid nel link come devo fare?

  12. #12
    Guest

    Predefinito

    ah no no niente :D grazie di tutto

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •