Visualizzazione risultati 1 fino 19 di 19

Discussione: sessioni

  1. #1
    Guest

    Predefinito sessioni

    salve , qualcuno può aiutarmi sulle sessioni ? io proprio non le capisco.. esempio , se ho un form di login con un form dove vanno inserite Nickname e password , poi nella pagina index.php cosa devo mettere? spero in un vostro aiuto grazie e buon pomeriggio
    sono arrivato a mettere il controllo , che nel caso il nick e la password non siano nel database non faccia entrare , nel caso esistesse ti fa entrare , però poi dopo un aggiornamento cade , perchè non c'è nulla di sessioni e nemmeno di cokie
    Ultima modifica di babilonia6 : 21-02-2009 alle ore 16.12.04

  2. #2
    L'avatar di mythologia
    mythologia non è connesso Moderatore
    Data registrazione
    05-01-2004
    Messaggi
    2,614

    Predefinito

    Già provato con una buona guida al PHP e qualche ricerchina nel forum? :)

  3. #3
    Guest

    Predefinito

    fatta questa ricerca , qualcosina l'ho trovata :D ed ho fatto così
    Codice PHP:
    <?php
    session_start
    ();
    include(
    "database.php");
    $dbconnect = mysql_connect($dbhost,$dbuser,$dbpassword)or die("Impossibile stabilire una connessione con il database");
    mysql_select_db($dbname,$dbconnect) or die("Impossibile selezionare il database");
    $nickname= $_POST['nickname'];
    $password= $_POST['password'];
    $q=mysql_query("SELECT * FROM registrazioni WHERE nickname='".$nickname."' AND password='".$password."' LIMIT 1;",$dbconnect);
    if(
    mysql_num_rows($q)>0){
    $nickname=true;
    }else{
    $nickname=false;
    }
    if(
    $nickname){ $_SESSION['nickname']=$nickname; ?> continua codice della index.php}else{echo"Non sei loggato"; } ?>
    però continua a cadere ,, suppongo che manchino parecchie cose , esempio la durata della sessione ,, e altre cose che non so

  4. #4
    Guest

    Predefinito

    1° sono vietati gli up quindi ti conviene eliminare il messaggio prima che un mod ti metta un infrazione
    2° hai messo in tutte le pagine session_start();?
    3° le sessioni sono di default 20 minuti di durata non serve dire quanto devono durare
    4° metti un ?> troppo presto: controlla l'ultima riga del codice

    ciao ciao

  5. #5
    Guest

    Predefinito

    ho chiuso con ?> perchè faccio così io, esempio
    Codice PHP:
    <?php switch($page){
    case
    "esempio": ?>codice html e/o CSS <?php //esempio qua metto altro codice php // ?>
    qua ancora altro codice html e/o CSS <?php break; ?>
    così evito molti errori , comunque , non so cosa mettere e dove metterlo , qualcuno potrebbe farmi un esempio ? grazie e buona serata

  6. #6
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,686

    Predefinito

    session_start(); lo devi mettere in ogni pagina che usa l'array $_SESSION[]

  7. #7
    Guest

    Predefinito

    si ho capito molti fanno cosi compreso io ma nell'ultima riga del codice chiudi senza aprire
    ecco:
    Codice PHP:
    if($nickname){ $_SESSION['nickname']=$nickname; ?> continua codice della index.php}else{echo"Non sei loggato"; } ?>
    invece se fai una cosa corretta scrivi cosi:
    Codice PHP:
    if($nickname){ $_SESSION['nickname']=$nickname; ?> continua codice della index.php<? }else{echo"Non sei loggato"; } ?>
    capito?

  8. #8
    Guest

    Predefinito

    no e che non l'ho messo qua io :D sennò sulla pagina c'è tutto , comunque il codice che ho postato nel primo messaggio
    Codice PHP:
    <?php
    session_start
    ();
    include(
    "database.php");
    $dbconnect = mysql_connect($dbhost,$dbuser,$dbpassword)or die("Impossibile stabilire una connessione con il database");
    mysql_select_db($dbname,$dbconnect) or die("Impossibile selezionare il database");
    $nickname= $_POST['nickname'];
    $password= $_POST['password'];
    $q=mysql_query("SELECT * FROM registrazioni WHERE nickname='".$nickname."' AND password='".$password."' LIMIT 1;",$dbconnect);
    if(
    mysql_num_rows($q)>0){
    $nickname=true;
    }else{
    $nickname=false;
    }
    if(
    $nickname){ $_SESSION['nickname']=$nickname; ?> continua codice della index.php}else{echo"Non sei loggato"; } ?>
    è buono solo che devo mettere session_start(); sulle pagine dove è contenuto SESSION [] ? solo questo è il problema ? ora riprovo e vi faccio sapere Non funziona comunque
    Ultima modifica di babilonia6 : 21-02-2009 alle ore 21.17.30

  9. #9
    Guest

    Predefinito

    ragazzi leggendo una guida php ho notato ke bisogna creare una classe che gestisce il sistema delle sessioni e di creare un apposita tabella nel db...

    ma servono tutte e due le cose???

  10. #10
    Guest

    Predefinito

    no, quelle sono le sessioni sicure senza cookie,
    te devi sistemare il primo così:
    Codice PHP:
    <?php
    session_start
    ();
    include(
    "database.php");
    $dbconnect = mysql_connect($dbhost,$dbuser,$dbpassword)or die("Impossibile stabilire una connessione con il database");
    mysql_select_db($dbname,$dbconnect) or die("Impossibile selezionare il database");
    if(isset(
    $_POST['nickname']) && isset($_POST['password']) && !empty($_POST['nickname']) && !empty($_POST['password'])){
    $nickname= $_POST['nickname'];
    $password= $_POST['password'];
    $q=mysql_query("SELECT * FROM registrazioni WHERE nickname='".addslashes($nickname)."' AND password='".$password."' LIMIT 1;",$dbconnect);
    if(
    mysql_num_rows($q)>0){
    $_SESSION['user']=array();
    while(
    $riga=mysql_fetch_array($q)){
    $_SESSION['user']=$riga;
    }
    unset(
    $_SESSION['user']['password']); // per sicurezza rimuovo la variabile di sessione con la password
    }else{
    ?><div class="error">Errore! Nome utente e password non coincidono!</div><?
    }
    if(isset(
    $_SESSION['user'])){?> Messaggio di benvenuto<? }else{?>
    <div class="error">Errore! Non sei loggato!</div>
    <?
    }
    }else{
    ?>
    <div class="error">Errore! Non hai compilato i campi!</div>
    <?
    }
    ?>
    pagina2.php
    Codice PHP:
    <?
    session_start
    (); // prima di tutto

    if(isset($_SESSION['user'])){ ?>Bentornato <b><?= $_SESSION['user']['nickname'] ?>!<? }else{echo"Non sei loggato"; } ?>

  11. #11
    Guest

    Predefinito

    dato che non funziona ho provato a fare una cosa semplice , un form che manda con il post il nickname alla pagina2 , ed ho fatto
    Codice PHP:
    <?php session_start();
    $nickname= $_POST['nickname']; // POI //
    $_SESSION[]=$nickname;
    echo
    "Benvenuto ".$_SESSION['nickname'].""; ?>
    dove sbaglio ?

  12. #12
    Guest

    Predefinito

    semmai devi fare così:

    Codice PHP:
    <?php session_start();
    $nickname= $_POST['nickname']; // POI //
    $_SESSION['nickname']=$nickname;
    echo
    "Benvenuto ".$_SESSION['nickname'].""; ?>

  13. #13
    Guest

    Predefinito

    provato anche così però come aggiorni la pagina scompare il nome , questa cosa vale solo per una pagina
    Ultima modifica di babilonia6 : 22-02-2009 alle ore 15.51.16

  14. #14
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,686

    Predefinito

    Citazione Originalmente inviato da babilonia6 Visualizza messaggio
    provato anche così però come aggiorni la pagina scompare il nome
    Certo, perché non ha più il $_POST['nickname']. (di solito a me IE mi chiede se voglio riavere i dati di prima, ma se a te non lo chiede )

    Dovresti fare una pagina intermedia fatta di solo php (in questo modo, sul browser non la vedi nemmeno ).


    in definitiva:
    pagina "temporanea":
    Codice PHP:
    <?php session_start();
    $_SESSION['nickname']= $_POST['nickname'];
    header("Location: pagina1.php"); //mandi nella pagina di benvenuto
    ?>
    e poi pagina di benvenuto (pagina1.php) :
    Codice PHP:
    <?php session_start();
    echo
    "Benvenuto ".$_SESSION['nickname'].""; ?>

    CIAO!
    Ultima modifica di alemoppo : 22-02-2009 alle ore 20.12.05

  15. #15
    Guest

    Predefinito

    nemmeno questo funziona ho fatto come tu mi hai detto anche io avevo fatto una cosa simile , ma niente continua sempre a cadere

  16. #16
    Guest

    Predefinito

    A questo punto è impossibile, ci ho provato anche io e funziona perfettamente come dice alemoppo!
    Ti faccio un esempio:
    form.html
    Codice HTML:
    <form action="elabora.php" method="post">
    <input type="text" name="nick" />
    </form>
    elabora.php

    Codice PHP:
    <?php
    session_start
    ();
    $nick = $_POST['nick'];
    $_SESSION['user'] = $nick;
    Header("Location: protetta.php");
    ?>
    protetta.php

    Codice PHP:
    <?php
    session_start
    ();
    echo
    "Benvenuto " . $_SESSION['user'];
    ?>
    Così l'username dovrebbe essere visualizzato fino alla chiusura del browser...

  17. #17
    L'avatar di Xsescott
    Xsescott non è connesso AlterGuru
    Data registrazione
    08-02-2004
    Messaggi
    1,413

    Predefinito

    scusate ma serve proprio l'assegnamento alla variabile prima di passarla alla variabile di sessione?
    "Quando il potere dell'amore supererà l'amore per il potere il mondo conoscerà la pace" Jimmy Hendrix


    [ Richiesta: http://www.unibologna.eu/ ] --> [Risposta: http://www.magazine.unibo.it/Magazin...al_Portale.htm Morale] -->[ http://www.anti-phishing.it/news/art...s.13062007.php ]
    consoliwebsite.altervista.org

  18. #18
    Guest

    Predefinito

    beh si solo questo funziona però io lo avevo messo in una pagina di chat , ovvero index.php e su invia.php ho messo un header , però ora faccioqualche modifica e vi faccio sapere sposto il controllo dei nick su invia.php sperando che funzioni , grazie // è proprio un bel casino , metto la sessione , mi annulla il controllo dei nick presenti nel database , metto il controllo mi annulla le sessioni n, tutto insieme non lo può fare no
    Ultima modifica di babilonia6 : 23-02-2009 alle ore 16.43.45

  19. #19
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,686

    Predefinito

    Citazione Originalmente inviato da Xsescott Visualizza messaggio
    scusate ma serve proprio l'assegnamento alla variabile prima di passarla alla variabile di sessione?
    No: non è necessaria. Infatti se guardi il mio post, non l'ho messa .

    Diciamo che mettendola si capisce meglio (in verità per me è uguale ), ma non mettendola è un ottimizzazione
    [ot]
    Anzi, non so se è un ottimizzazione: io ho "imparato"{che parolona!} a programmare con il C. In quel caso, il compilatore elimina la variabile "temporanea". Nel nostro caso, visto che è un linguaggio interpretato, sinceramente non so se il server la ottimizza (eliminandola). Comunque, con o senza, il server non la sente nemmeno una variabile in più e quindi si tratta soltanto di chiarezza del codice per il lettore
    [/ot]
    CIAO!
    Ultima modifica di alemoppo : 23-02-2009 alle ore 23.53.47

Regole di scrittura

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