Aiuto per le sessioni

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Salve a tutti,

Ho una grande confusione in testa senza aver concluso niente. Mi servirebbe una mano per le sessioni. So come funzionano ecc ecc. Però in pratica, non riesco a fare un codice decente. Ho preparato una pagina chiamata iscrizione, dove in teoria dovrebbe inviare un'email di conferma (ma purtroppo non la invia), per motivi che lavoro tutto su nas. Ora mi manca creare per l'appunto, la sessione. Una volta loggati, dovrebbe comparire la seguente scritta: "benvenuto pinco pallino". Ripeto non so da che parte iniziare. Se qualcuno mi potrebbe dare una mano, ne sarei grato.

Io ho provato questo codice, preso da qualche esempio sui siti tanto per provarlo. Maovviamente non va. Premetto che non mi servono i cookie. Eccolo qua:

PHP:
<?php
require_once("connetti.php");

 

//gestione della sessione nel caso in cui i cookie sono disabilitati 

if(IsSet($_POST['PHPSESSID']) && !IsSet($_COOKIE['PHPSESSID'])) 

{ 

  $PHPSESSID=$_POST['PHPSESSID']; 

  header("Location: $redirect?PHPSESSID=$PHPSESSID"); //si ricarica la pagina di login 

} 

 

session_start(); //si inizia o continua la sessione 

 

//controllo user e passwd da login 

if(IsSet($_POST['posted_username']) && IsSet($_POST['posted_password'])) 

{ 

  if($login_user==($_POST['posted_username']) && $pass_user==md5($_POST['posted_password'])) 

    $_SESSION['user']=$_POST['posted_username']; 

} 

 

//creazione cookie per login automatico 

if(IsSet($_POST['ricorda']) && IsSet($_SESSION['user'])) 

{ 

  $cok=md5($login_user)."%%".$pass_user; 

  setcookie("sav_user",$cok,time()+31536000); 

} 

 

//logout 

if($_GET['logout']==1) 

{ 

  $_SESSION=array(); // Desetta tutte le variabili di sessione. 

  session_destroy(); //DISTRUGGE la sessione. 

  if(IsSet($_COOKIE['sav_user'])) //se presente si distrugge il cookie di login automatico 

    setcookie("sav_user",$cok,time()-31536000); 

  header("Location: $redirect"); //si ricarica la pagina di login 

  exit; //si termina lo script in modo da ritornare alla schermata di login 

} 

 

//controllo user e passwd da cookie 

if(IsSet($_COOKIE['sav_user'])) 

{ 

  $info_cok=$_COOKIE['sav_user']; 

  $cok_user=strtok($info_cok,"%%"); 

  $cok_pass=strtok("%%"); 

  setcookie("sav_user",$info_cok,time()+31536000); 

 

  if($cok_user==md5($login_user) && $cok_pass==$pass_user) 

    $_SESSION['user']=$login_user; 

} 

 

//caso in cui si vuole ricordare il login, ma i cookie sono off 

if(!IsSet($_COOKIE['PHPSESSID']) && IsSet($_POST['ricorda'])) 

  header("Location: $redirect?nocookie=1"); 

?> 

<HTML> 

<HEAD> 

</HEAD> 

<BODY> 

<?php 

 

$PHPSESSID=session_id(); 

 

if(!IsSet($_SESSION['user'])) //non siamo loggati, pagina di login 

{ 

  if($_GET['nocookie']==1) //i cookie sono off e si vuole ricordare il login 

    print("Spiacente, ma con i cookie disabilitati non posso fare i miracoli ;)<BR> 

Attivali se vuoi ricordare il tuo login.<BR>"); 

  print("<BR><BR> <FORM METHOD=POST ACTION=\"login.php\"> 
      username: 

<INPUT TYPE=TEXT SIZE=20 NAME=posted_username><BR> 

password: 

<INPUT TYPE=PASSWORD SIZE=20 NAME=posted_password><BR> 

ricordami: <INPUT TYPE=CHECKBOX NAME=ricorda VALUE=1><BR><BR> 

<INPUT TYPE=SUBMIT NAME=SUBMIT VALUE=\"Loggami\"><BR>"); 

 

  if(!IsSet($_COOKIE['PHPSESSID'])) //i cookie sono off, dobbiamo propagare noi il PHPSESSID 

    print("<INPUT TYPE=HIDDEN NAME=PHPSESSID VALUE=$PHPSESSID>"); 

  print("</FORM>"); 

} 

else //siamo loggati pagina riservata 

{ 

  $username=$_SESSION['user']; 

  print("Il tuo ID ?: $PHPSESSID <BR><BR>"); 

  print("Sei loggato come: $login_user<BR><BR>"); 

  print("<A HREF=\"login.php?logout=1\">logout</A>"); 

} 

?> 

</BODY> 

</HTML>

Considerate che nel db del modulo d'iscrizione, c'è 0 che corrisponde ad accettato e 1 che corrisponde a non accetato. Grazie e spero di avere al più presto qualche vostra risposta.
 
Ciao

Grazie,

Lo sto guardando ora e fra poko spero di metterlo in pratica. Grazie ancora e buonja giornata.

P.S.: Per caso mi sai darq ualche consiglio per inviare email dal synology (nas) con php ????

Un'altra cosa scusa, io ho il seguente esempio che mi hai dato:

session_start ();
$nome_utente = "NOMEUTENTE";
$password = "PASSWORD";

Come me li procuro il nome_utente e password inseriti dall'utente e memorizzati in un db ????
 
Ultima modifica:
Ciao

Ciao,

Mi servirebbe il tuo aiuto. Il punto è questo: ho eseguito il codice di esempio, modificandolo alle mie esigenze. La password, nel db è criptata con il metodo md5. Come faccio per fargliela riconoscere??? Io ho fatto così:

La riga che cripta la password è la seguente:

PHP:
//crittografa la passowrod

 $pass = mysql_real_escape_string(md5(trim($_POST['password'])))

E il codice che ho eseguito, modificandolo è il seguente

PHP:
<?php
require_once("connetti.php");

 session_start ();    
$username = $_POST['username'];     
$password = $_POST['pass'];

 if ((!isset($_POST['username'])) && (!isset($_POST['pass']))) 
 { 
  echo "<form method=\"post\" action=\"".$_SERVER['PHP_SELF']."\"> 
 
 <center>
  <h1> PREGO INSERIRE I DATI PER LOGGARSI </h1>
  
  UserName: <input type=\"text\" name=\"username\"><br> <br> <br> 
  Password: <input type=\"password\" name=\"password\"><br>  <br> 
  
   <input type=\"submit\" value=\"Invia\"></form>
  </center>";
  }
 else
  { 
  if (($_POST['username']==$username)&&($_POST['password']==$pass))
  {
  $_SESSION['username']=$_POST['username']; 
  $_SESSION['password']=$_POST['pass']; 
  header("Location: paginaris.php");
  }
 else {echo "Login errato";} 
  }
?>

Dove sbaglio ????? MI puoi dare una mano grazie ????
 

Discussioni simili