Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 23

Discussione: Sessione PHP

  1. #11
    guarda che tu salvi l'utente in 'userid' non "user" in $_SESSION (almeno da quel che ho capito dalle immagini che hai postato)
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  2. #12
    Sisi, ti chiedo scusa, ma fu un errore di battitura... Ho provato a rischrivere il codice, ma nulla stesso problema non avvia la sessione, ho provato a scriverlo prima in un modo e mi faceva vedere home.php, ma non era in sessione, e se eseguo il login (sia col codice che di adesso) mi rimane sulla pagina login.php e sparisce anche il form di inserimenti dati. Ho il dubbio su 3 possibili errori, secondo la tua esperienza quale sarà:

    - Sbaglio il controllo;
    - Sbaglio l'avvio sessione;
    - Sbaglio la connessione al Database MySQL;

    Non so più che fare... Mi sto consultando anche con un libro che ho di sviluppo PHP con MySQL e il sito ufficiale di PHP, ma non trovo l'errore riposto il codice?
    Aj Webmaster

  3. #13
    DEMO:

    login.php:
    Codice PHP:
    <?php

    session_start
    ();

    if(isset(
    $_SESSION['userid']) && $_SESSION['userid'])
    {
      
    header('Location: home.php');
      exit;
    }

    $loginError false;

    if(isset(
    $_POST['login']))
    {
      
    $username $_POST['username'];
      
    $password $_POST['password'];

      
    //autenticazione fake, usare quella che ritieni opportuna
      
    if($username == 'test' && $password == 'test')
      {
        
    $_SESSION['userid'] = $username;
        
    header('Location: home.php');
        exit;
      }else{
        
    $loginError true;
      }
    }
     
    ?>
     <html>
     <head><title>Login</title></head>
     <body>
       <?php if($loginError): ?>
         <h3>Username or password invalid</h3>
       <?php endif; ?>
       <form action="login.php" method="post">
         <div>username: <input type="textbox" name="username" /></div>
         <div>password: <input type="password" name="password" /></div>
         <input type="submit" name="login" />
       </form>

     </body>
     </html>
    home.php:

    Codice PHP:
    <?php
      session_start
    ();

      if(!isset(
    $_SESSION['userid']) || !$_SESSION['userid'])
      {
        
    header('Location: login.php');
        exit;
      }
      
    $username $_SESSION['userid'];

     
    ?>
     <html>
     <head>
       <title>Homepage</title>
     </head>
     <body>
       Hello <?php echo $username?>
     </body>
     </html>
    se li metti in una cartella (e utilizzi php >= 5.4 ), puoi lanciare il comando:

    codice:
    php -S localhost:8000
    e se nel browser vai in http://localhost:8000/home.php dovresti vedere che funziona correttamente
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  4. #14
    Perfetto, grazie mille, solo due domande per capire e imparare meglio
    lo stesso userid del mio esempio o tu lo usi con altro scopo, perchè poi ho visto che usi username, e nel mio esempio userid sareb
    1. in $_SESSION hai usato userid, in questo caso sarebbebe username (non so se è ben chiaro)

    2. //auntazione fake, usare quella che ritieni opportuna <- subito sotto ci sono le due variabili 'test' sarebbe a a dire che li devo mettere tipo username (o userid) e password, in base a come li ho nominati io nel database?

    Grazie di tutto scusa per tante domande, sono alle prime armi con PHP è desidero poterlo capire bene e impararlo alla perfezione mi piace molto questo linguaggio
    Aj Webmaster

  5. #15
    Aspetta AJB88, il mio non era un codice per dirti "guarda che si fà così con le variabili e tutto il resto", il mio era un esempio che cercava di ricalcare il tuo codice, per farti capire dove andare a fare i controlli. Che cosa fosse il tuo userid, o cosa contenesse, nel tuo codice, non l'ho neanche guardato, ci ho messo il primo valore che ho avuto sottomano nei 5 minuti che ho dedicato a scrivere quel codice.

    1) usa $_SESSION come ti pare e mettici dentro quello che vuoi, basta che fai i controlli "logicamente" fatti bene
    2) da $_POST ricavi username e password che poi dovrai validare in qualche modo (es: query ad un database). Per farti una demo, ho messo una login statica, cioè che il sistema ti loggava solo se inserivi la combinazione test/test.

    Cmq, io prendo le distanze da quello che ho scritto, saranno 3 anni che non scrivevo codice del genere

    qualche link:

    http://www.bignerdtheory.it/2016/08/...n-php-e-mysql/
    http://moodle.isisfacchinetti.it/fil...ssioni-php.pdf
    http://www.mrwebmaster.it/php/sessioni_9507.html
    http://php.net/manual/en/function.session-start.php
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  6. #16
    Sisi, che era un esempio l'avevo capito cercavo di capire se tipo username e userid, sono dei valori impostati da me, in base al form e al database, quindi cosi da capire come calcolare test e test...
    Aj Webmaster

  7. #17
    immagino che ora abbia capito
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  8. #18
    Ah Santino83_02, una domanda su cui ho sempre avuto una curiosità, una volta mi dissero che per il web è sconsigliato usare Database Microsoft Access, ma non mi hanno mai spiegato il motivo, è un problema di compatibilità con PHP o di Sicurezza nella Rete, o qual altro motivo, si sceglie Microsoft SQL o MySQL?
    Aj Webmaster

  9. #19
    Ho provato il codice e credo di averne capito la logica, praticamente dove tu metti test e test, io dovrei inserire una stringa che si collega al database richiamandomi i dati di accesso che faccio verificare se sono esistenti e:

    - Nel caso non esistano faccio un redirect che porta alla pagina di iscrizione,
    - Se uno dei due è errato, redirecta alla pagina di login dicendo che uno dei due dati è sbagliato;
    - Se esistono mi autentica, facendo un redirect alla pagina desiderata.

    quindi nel controllo dopo == anzichè test devo impostare una stringa di connessio al database, giusto?
    Aj Webmaster

  10. #20
    Santino83_02 Ti ringrazio tantissimo, ne ho capito la logica, son riuscito a prelevare userid dal Database Grazie infinitamente

    Solo un altra domanda mentre facevo ricerche nei giorni scorsi ho trovato in un codice un operatore di ? a cosa serve il ? come operatore, cosa gli dice al PHP, tipo ! indica la funzione di negazione NOT, mentre && Indica la funzione logica AND e || indica la funzione di negazione OR, ma ? che funzione svolge nel codice PHP?
    Aj Webmaster

Tag per questa discussione

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.