mantenere sessione login?

  • Creatore Discussione Creatore Discussione yesno
  • Data di inizio Data di inizio

yesno

Nuovo Utente
13 Feb 2013
30
0
6
Ciao a tutti, premetto che non sono molto forte con PHP/MySQL.
Io faccio effettuare un login che permette di accedere in un'area riservata. Il problema è che quando ad esempio l'utente va in un'altra pagina, per poter ritornare nella zona riservata richiede il login. Non so come fare a mantenere la sessione di login aperta.:crying:
Qualcuno può aiutarmi?
Grazie in anticipo!
 
Ultima modifica:
Ciao.
Prova così:
PHP:
<?php 
   @session_start();
  if(isset($_POST['nickname'])&&($_POST['nickname']!="")){
    include '../config.php';
    $_SESSION['username'] = $_POST['nickname'];
    $user = $_SESSION['username'];
    @header('Location:tuapagina.php');
  }else{
?>
<html>
<head>
<title>Login</title>
 </head>
  <body>
  <p>
  <form method="post" action="../login.php">
    Scegli il tuo nickname<br><br>
   <input type="text" name="nickname" maxlength="10">
   <input type="submit" value="ENTRA">
 </form>
 </p>
  </body>
</html>
 <?
 }
?>

ovviamente nel file config.php vanno inseriti i parametri per la connessione.
Nella pagina di benvenuto fai l'echo di user echo($user);
 
Ultima modifica:
Ciao.
Prova così:
PHP:
<?php 
   @session_start();
  if(isset($_POST['nickname'])&&($_POST['nickname']!="")){
    include '../config.php';
    $_SESSION['username'] = $_POST['nickname'];
    $user = $_SESSION['username'];
    @header('Location:tuapagina.php');
  }else{
?>
<html>
<head>
<title>Login</title>
 </head>
  <body>
  <p>
  <form method="post" action="../login.php">
    Scegli il tuo nickname<br><br>
   <input type="text" name="nickname" maxlength="10">
   <input type="submit" value="ENTRA">
 </form>
 </p>
  </body>
</html>
 <?
 }
?>

ovviamente nel file config.php vanno inseriti i parametri per la connessione.
Nella pagina di benvenuto fai l'echo di user echo($user);
Piccoli suggerimenti:
-Non usare <? ma sempre <?php
-Non utilizzare la chiocciola se non in caso di inutili notice
-Puoi fare direttamente cosi $user = $_SESSION['username'] = $_POST['nickname'];
-Era sufficiente utilizzare empty nell'if if(!empty($_POST['nickname'])){ ....
 
Concordo! peccato pero' che non abbia scritto io quel codice
ma l'abbia reperito al volo da un esempio online e che me ne sia accorto
troppo tardi quando i tempi di edit erano terminati.
Se l'avvessi scritto io non solo non avrei commesso quegli errori
ma avrei anche aggiunto la password con
tanto di MD5 per la codifica hash.
Tuttavia hai ragione, buon suggerimento! :)
 
Ultima modifica:
Concordo! peccato pero' che non abbia scritto io quel codice
ma l'abbia reperito al volo da un esempio online e che me ne sia accorto
troppo tardi quando i tempi di edit erano terminati.
Se l'avvessi scritto io avrei comunque non solo non avrei commesso quegli errori ma avrei anche aggiunto la password con
tanto di codifica hash MD5.
Tuttavia hai ragione buon suggerimento! :)
Concordo per la codifica md5, ma l'importante è ripeterla più volte sulla stessa variabile perché cosi è molto più difficile da trovare un hash di un hash nel caso di violazione illecita del database(es. puo evitare attacchi brute-force di tipo dizionario, o scansare molti di quei siti 'decrypter' di md5 che usano lo stesso principio di combinazione) oppure eventualmente combinare sha1 a md5
 
Ho finito da poco di leggere un libro sulla criptazione e la pratica di creare una criptazione di un dato criptato è altamente sconsigliata perché in genere si indebolisce.
Però ci ho pensato su, come dice nefyt ci sono molti decrypter online e magari criptando due volte lo stesso dato si potrebbe fuorviare qualcuno che non è esperto. Uno esperto in questo ambito sa bene anche quali algoritmi di criptazione sono stati utilizzati avendo il dato criptato.
Quindi diciamo che criptare due volte funziona per utenti inesperti ma ha un limite anche questa pratica ovviamente.
 
Ultima modifica:

Discussioni simili