Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875

    login, vedere pagina solo se loggato

    ho creato le pagine dell'area riservata ed ora sto creando il login.

    per far si che le pagine si vedessero solo agli utenti loggati, devo mettere nel sito un codice tipo
    Codice PHP:
    if loggato==1
    vedi tutto il codice
    else
    vai alla pagina del login 
    dovrebbe essere questo il modo giusto, no?

    C'e' un problema, ho una pagina con scritto gia' il codice html e php, e se metto un codice di questi mi da sicuramente il parse error con tutte le virgolette presenti nella pagina.
    Come posso bypassarle in automatico??

  2. #2
    Utente di HTML.it L'avatar di costi31
    Registrato dal
    Nov 2007
    Messaggi
    345
    Ciao. Se in php crei un blocco if puoi chiudere il tag php e riaprirlo dopo e tutto il codice incluso (anche fuori dai tag php) è considerato parte del blocco if finchè non lo chiudi successivamente con la parentesi graffa.
    Esempio:

    Codice PHP:
    <?php
    if ($loggato == 1) {
    // ho aperto il blocco if, ora posso anche chiudere il tag php volendo
    ?>

    codici html, php o quello che vuoi.............

    <?php
    // chiudo il blocco if ora
    }
    // apro un altro blocco con else
    else {
    // chiudo tag php
    ?>

    codice vario................

    <?php
    // chiudo il blocco else
    }
    ?>
    In questo modo non devi preoccuparti di modificare il codice che avevi già scritto.


  3. #3
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    si ma io nel codice if devo inserire proprio tutta la pagina che avevo creato in precedenza

    cioe', tutto il codice php ed html dovra' essere nel blocco if.

    e quindi fare qualcosa tipo
    Codice PHP:
    if ($loggato == 1) { 
    <
    body style="background-color:#2e98ca;background-image:     url(../../fig/bg_container_hotel.jpg);background-position: top left;background-repeat: repeat-x;margin: 0px 0px;">
    <
    div align="center">
      <
    table width="1000" height="80" border="0" cellpadding="0" cellspacing="0" class="contorno_lati">
        <
    tr>
          <
    td width="300" bgcolor="#22303b"><div align="left">[url="../../offerte/index.php"][img]../../fig/logo_ok.gif[/img][/url]</div></td>
          <
    td bgcolor="#22303b"></td>
        </
    tr>
      </
    table>

    questa e' solo una parte del codice... ora mi chiedo, come posso velocizzare il tutto visto che quelle virgolette danno fastidio?
    c'e' un codice che mi bypassa tutto?

  4. #4

  5. #5
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    Originariamente inviato da seokey
    sì usando le sessioni
    non ho mai fatto un login con le sessioni... hai qualche guida semplice?

  6. #6
    Utente di HTML.it L'avatar di costi31
    Registrato dal
    Nov 2007
    Messaggi
    345
    Originariamente inviato da allin81
    si ma io nel codice if devo inserire proprio tutta la pagina che avevo creato in precedenza

    cioe', tutto il codice php ed html dovra' essere nel blocco if.

    e quindi fare qualcosa tipo
    Codice PHP:
    if ($loggato == 1) { 
    <
    body style="background-color:#2e98ca;background-image:     url(../../fig/bg_container_hotel.jpg);background-position: top left;background-repeat: repeat-x;margin: 0px 0px;">
    <
    div align="center">
      <
    table width="1000" height="80" border="0" cellpadding="0" cellspacing="0" class="contorno_lati">
        <
    tr>
          <
    td width="300" bgcolor="#22303b"><div align="left">[url="../../offerte/index.php"][img]../../fig/logo_ok.gif[/img][/url]</div></td>
          <
    td bgcolor="#22303b"></td>
        </
    tr>
      </
    table>

    questa e' solo una parte del codice... ora mi chiedo, come posso velocizzare il tutto visto che quelle virgolette danno fastidio?
    c'e' un codice che mi bypassa tutto?
    Allora non hai capito quello che ho detto prima. Dopo che hai aperto la parentesi graffa dell'if puoi chiudere i tag php e lo stesso tutto quello che c'è scritto dopo (di qualsiasi linguaggio) è considerato incluso nell'if. Non devi preoccuparti di nessuna virgoletta così!

    Per esempio per il codice che hai scritto devi fare così:
    Codice PHP:
    <?php
    if ($loggato == 1) {
    ?>

    QUI PUOI COPIARE DIRETTAMENTE TUTTO IL CODICE DELLA PAGINA E NON CI SARA' NESSUN PROBLEMA CON VIRGOLETTE O ALTRO

    <body style="background-color:#2e98ca;background-image:     url(../../fig/bg_container_hotel.jpg);background-position: top left;background-repeat: repeat-x;margin: 0px 0px;">
    <div align="center">
      <table width="1000" height="80" border="0" cellpadding="0" cellspacing="0" class="contorno_lati">
        <tr>
          <td width="300" bgcolor="#22303b"><div align="left">[url="../../offerte/index.php"][img]../../fig/logo_ok.gif[/img][/url]</div></td>
          <td bgcolor="#22303b"></td>
        </tr>
      </table>

    <?php
    }
    ?>

  7. #7
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    ahh si si scusa hai ragione, ora ho capito.
    Ma a sto punto, parlandoci chiaro, e' meglio usare le sessioni o il modo che stavo usando io?

  8. #8
    Utente di HTML.it L'avatar di costi31
    Registrato dal
    Nov 2007
    Messaggi
    345
    Stiamo parlando di due cose diverse. Io ti ho spiegato come inserire del codice in un blocco if senza usare echo.
    Le sessioni servono a tenere in memoria delle variabili anche se l'utente cambia pagina, quindi puoi memorizzare che ha effettuato correttamente l'accesso al sito con username e password.

    Puoi usare le sessioni in questo modo:

    Nella pagina di login, una volta controllato se i dati sono corretti, fai:
    Codice PHP:
    session_start();
    $_SESSION = array();
    session_regenerate_id();
    $_SESSION['username'] = $username// nome utente inviato dal form di login
    $_SESSION['password'] = $password// password. Prima però ti conviene criptarla con md5() per sicurezza 
    Quando controlli se l'utente è loggato:
    Codice PHP:
    session_start();
    if (isset(
    $_SESSION['username']) && isset($_SESSION['password'])) {
    // l'utente è loggato....
    }
    else {
    // l'utente non è loggato....

    Quando vuoi effettuare il logout:
    Codice PHP:
    // elimini le sessioni
    session_start();
    $_SESSION = array();
    session_regenerate_id();
    session_destroy(); 

  9. #9
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    ok perfect, solo un'ultima domanda, la sessione dura finche' non chiudo il browser, vero?

  10. #10
    Utente di HTML.it L'avatar di costi31
    Registrato dal
    Nov 2007
    Messaggi
    345
    Originariamente inviato da allin81
    ok perfect, solo un'ultima domanda, la sessione dura finche' non chiudo il browser, vero?
    Sì esatto, dura finchè non chiudi il browser, a meno che non venga cancellata in caso l'utente sia inattivo, cioè se non carica più una pagina del tuo server per un tot tempo.
    Se invece vuoi stabilire tu per quanto tempo tenere in memoria dei dati puoi usare i cookie.

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.